Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 1525|Répondre: 3

Algorithme de chiffrement Curve25519

[Copié le lien]
Publié le 12-02-2025 à 17:05:02 | | | |
urve25519 est le niveau le plus élevé de fonction Diffie-Hellman disponible pour une large gamme de scénarios, conçu par le professeur Daniel J. Bernstein. En cryptographie, Curve25519 est une courbe elliptique qui offre une sécurité sur 128 bits et est conçue pour être utilisée avec le schéma de négociation de clés Diffie-Hellman (ECDH) à courbe elliptique. C’est l’une des courbes ECC les plus rapides et elle n’est couverte par aucun brevet connu.

Étant donné la clé de 32 octets de l’utilisateur, curve25519 calcule la clé publique de 32 octets de l’utilisateur. Étant donné la clé de 32 octets de cet utilisateur et celle de 32 octets d’un autre, curve25519 calcule une clé partagée de 32 octets pour les deux utilisateurs. Ce secret peut ensuite être utilisé pour authentifier et chiffrer des informations pour les deux utilisateurs.

2. Télécharger et compiler Curve25519

La bibliothèque curve25519 calcule la fonction curve25519 à une très grande vitesse. La bibliothèque possède un large éventail d’applications. Vous pouvez et devez l’appliquer dans votre propre programme au lieu de lier à une bibliothèque partagée ; Le code compilé fait environ 16 Ko, selon le processeur.

Télécharger et compiler

Télécharger

compiler


3. Utiliser Curve25519

Pour tout programme C qui utilisera curve25519, modifiez le programme pour inclure curve25519.h, puis modifiez le makefile pour lier le programme à curve25519.a et indiquer que le programme dépend de curve25519.a et curve25519.h.

Clés de calcul

En interne, pour générer une clé curve25519 de 32 octets, générez d’abord un secret de 32 octets aléatoires à partir d’une source de sécurité cryptographique : mysecret[0], mysecret[1], ..., mysecret[31]. Faites alors comme suit :
mysecret[0] &= 248 ;
mysecret[31] &= 127 ;
mysecret[31] |= 64 ;
Générer une clé Curve25519 de 32 octets mysecret[0], mysecret[1], ..., mysecret[31].

À l’avenir, la version de la bibliothèque prendra en charge une fonction de compression curve25519_ qui compresse 128 octets de hachage en 32 octets, ajoutant une certaine protection contre l’insuffisance des générateurs de nombres aléatoires ; Une fonction de curve25519_ clamp qui convertit 32 octets en clé ; et une combinaison la plus facile à utiliser de curve25519_ fonctions de génération de clés, qui convertissent directement 128 octets en clés.

Calculer les clés publiques

Pour générer une clé publique de 32 octets correspondant à la clé de 32 octets mypublic[0], mypublic[1], ..., mypublic[31], appelez la fonction
curve25519(monpublic, monsecret, basepoint) ;
où le point de base constant est :

const point de base non signé char[32] = {9} ;
Les futures versions de la bibliothèque permettront des fonctions publiques curve25519_ plus concises.

Générer une clé partagée

Étant donné la clé publique hispublic[0], hispublic[1], ..., hispublic[31], d’un autre utilisateur

curve25519 (partagé, monsecret, son public) ;
Générer des clés partagées de 32 octets partagées[0], partagées[1], ..., partagées[31]. Une autre personne peut générer la même clé partagée à partir de sa propre clé privée ainsi que de votre clé publique.
Ensuite, vous pouvez tous les deux hacher cette clé partagée et utiliser le résultat comme clé, par exemple pour Poly1305-AES.
Les futures versions de la bibliothèque prendront en charge une fonction d’extension curve25519_ qui hache directement une clé de 32 octets pour générer 128 octets en tant que clé, et qui est la plus facile à utiliser, une combinaison curve25519_ fonction partagée.

4. Référence

[Ed25519 et Curve25519 expliqués]La connexion hyperlientérée est visible.
[Curve25519 chiffrement, déchiffrement et utilisation ED25519 signatures]La connexion hyperlientérée est visible.
[ED25519]La connexion hyperlientérée est visible.
[Implémentation ED25519 Android]La connexion hyperlientérée est visible.
[[ED25519 C]La connexion hyperlientérée est visible.
[ed25519 Implémentation Java]La connexion hyperlientérée est visible.

Langue source:La connexion hyperlientérée est visible.




Précédent:Plugin d’assistance au développement de code VS Angular 18 Series (Trente-et-un)
Prochain:Superordinateur personnel d’IA du projet NVIDIA DIGITS
 Propriétaire| Publié le 12-02-2025 à 17:07:50 |
Code d’implémentation .NET/C# :


Test




Curve25519.cs (31 KB, Nombre de téléchargements: 1, 售价: 10 粒MB)
Publié le 13-02-2025 à 16:26:18 |
Ça a l’air bien, soutiens-le.
Publié le 14-02-2025 à 09:51:22 |
Ça a l’air bien, soutiens-le
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com