Introduction à l'algorithme d'échange de clés Diffie Hellman

L'algorithme d'échange de clés Diffie Hellman est l'une des premières implémentations pratiques de l'échange de clés publiques dans le domaine de la cryptographie. L'algorithme d'échange de clés Diffie Hellman est l'un des moyens qui peuvent générer une clé partagée et partager des secrets entre deux parties de manière à ce que personne ne puisse espionner la communication. Il y a un fait important à garder à l'esprit à propos de l'algorithme, c'est que nous ne partageons pas les informations dans l'échange, nous créons plutôt une clé qui peut ensuite être utilisée pour échanger des informations. Comme cette technique nous permet de créer une clé de cryptage avec l'autre partie, nous pouvons alors commencer à crypter les messages en cours et à recevoir. Un établi, même si quelqu'un enregistre les données de transmission, il n'y a aucun moyen de décrypter les données.

Algorithme d'échange de clés Diffie Hellman pour la génération de clés

L'algorithme est basé sur la cryptographie à courbe elliptique qui est une méthode de cryptographie à clé publique basée sur la structure algébrique des courbes elliptiques sur des champs finis. Le DH utilise également la fonction de trappe comme de nombreuses autres façons de faire de la cryptographie à clé publique. L'idée simple de comprendre l'algorithme DH est la suivante

1. Le premier correspondant choisit deux nombres premiers g et p et les indique au second correspondant.

2. Le deuxième correspondant choisit ensuite un numéro secret (appelons-le a) puis calcule g un mod p et renvoie le résultat au premier correspondant, appelons le résultat A. Gardez à l'esprit que le numéro secret n'est pas envoyé à personne, seul le résultat est.

3. Ensuite, le premier correspondant fait de même, il sélectionne un nombre secret b et calcule le résultat B similaire au

4. étape 2. Ensuite, ce résultat est envoyé à la deuxième partie.

5. La deuxième partie prend le nombre reçu B et calcule B a mod p

6. Le premier correspondant prend le nombre A reçu et calcule A b mod p

C'est là que cela devient intéressant, la réponse à l'étape 5 est la même que la réponse à l'étape 4. Cela signifie que les deux parties obtiendront la même réponse, quel que soit l'ordre d'exponentiation.

(g a mod p) b mod p = g ab mod p
(g b mod p) a mod p = g ba mod p

Le numéro que nous avons atteint dans les étapes 4 et 5 sera considéré comme la clé secrète partagée. Maintenant, cette clé peut être utilisée pour effectuer tout cryptage des données qui seront transmises, telles que Blowfish, AES, etc.

Algorithme Diffie Hellman

1. clé = (Y A ) XB mod q -> c'est le même que calculé par B

2. Éléments publics mondiaux

  • q: q est un nombre premier
  • a: a <q et α est la racine primitive de q

3. Génération de clés pour l'utilisateur A

  • Sélectionnez une clé privée X A ici, X A

Maintenant, calcul de la clé publique Y A Y A = a XA mod q

4. Génération de clés pour l'utilisateur B

  • Sélectionnez une clé privée X B ici, X B
  • Maintenant, calcul de la clé publique Y B Y B = a Xb mod q

5. Calcul de la clé secrète par A

  • clé = (Y B ) XA mod q

6. Calcul de la clé secrète par B

  • clé = (Y A ) XB mod q

Exemple

1. Alice et Bob utilisent tous les deux des nombres publics P = 23, G = 5

2. Alice a sélectionné la clé privée a = 4 et Bob a sélectionné b = 3 comme clé privée

3. Alice et bob calculent maintenant la valeur de x et y comme suit:

  • Alice: x = (5 4 mod 23) = 4
  • Bob: y = (5 3 mod 23) = 10

4. Désormais, Alice et Bob échangent ensemble des numéros publics.

5. Alice et Bob calculent maintenant les clés symétriques

  • Alice: k a = y a mod p = 10 4 mod 23 = 18
  • Bob: k b = x b mod p = 4 3 mod 23 = 18

6. 18 est la clé secrète partagée.

Utilisations de l'algorithme Diffie Hellman

Outre l'utilisation de l'algorithme pour générer des clés publiques, il existe d'autres endroits où l'algorithme DH peut être utilisé:

  • Cryptage: l' algorithme d'échange de clés Diffie Hellman peut être utilisé pour effectuer le cryptage, l'un des premiers schémas à le faire a été le cryptage ElGamal. Un exemple moderne de celui-ci est appelé schéma de cryptage intégré qui offre une sécurité contre le texte brut choisi et les attaques du presse-papiers choisies.
  • Accord authentifié par mot de passe: lorsque deux parties partagent un mot de passe, un accord de clé authentifié par mot de passe peut être utilisé pour empêcher l'attaque de l'homme au milieu. Cet accord clé peut prendre la forme de Diffie-Hellman. Secure Remote Password Protocol est un bon exemple basé sur cette technique.
  • Transfert de secret: les protocoles basés sur le secret de transfert peuvent générer de nouvelles paires de clés pour chaque nouvelle session, et ils peuvent également les éliminer automatiquement à la fin de la session. Dans ces protocoles de secret avancé, le plus souvent, l'échange de clés Diffie Hellman est utilisé.

Avantages de l'algorithme Diffie Hellman

  • L'expéditeur et le destinataire n'ont besoin d'aucune connaissance préalable l'un de l'autre.
  • Une fois les clés échangées, la communication des données peut se faire via un canal non sécurisé.
  • Le partage de la clé secrète est sûr.

Inconvénients de l'algorithme Diffie Hellman

  • L'algorithme ne peut être poursuivi pour aucun échange de clé asymétrique.
  • De même, il ne peut pas être utilisé pour signer des signatures numériques.
  • Puisqu'il n'authentifie aucune partie dans la transmission, l'échange de clés Diffie Hellman est susceptible d'être attaqué par l'homme du milieu.

Conclusion

En raison de ses avantages, l'échange de clés Diffie Hellman s'est révélé être un système d'échange de clés utile. Bien qu'il soit très difficile pour quelqu'un d'espionner le réseau de déchiffrer les données et d'obtenir les clés, il est toujours possible que les nombres générés ne soient pas entièrement aléatoires. De plus, le système d'échange de clés permet de faire un homme au milieu de l'attaque, pour l'éviter, les deux parties doivent être très prudentes au début de l'échange.

Article recommandé

Cela a été un guide pour l'algorithme d'échange de clés Diffie Hellman. Nous discutons ici des utilisations, des différents algorithmes, des avantages et des inconvénients. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Algorithmes d'apprentissage automatique
  2. Algorithme de cryptage
  3. Algorithmes de classification
  4. Types d'algorithmes