Accueil

26/12/2023 - Modifié le 03/03/2024

L'échange de clés Diffie-Hellman

Présentation du protocole

L'échange de clés Diffie-Hellman est un protocole qui permet à deux entités de convenir d'une clé de chiffrement sur Internet sans qu'une troisième entité puisse la connaître, même en ayant écouté les échanges.

Le protocole Diffie-Hellman se base pour cela sur l'hypothèse calculatoire de Diffie-Hellman (CDH) qui stipule qu'en connaissant g, ga et gb, il ne serait calculatoirement pas possible de calculer gab[1]. Elle se base pour cela sur l'hypothèse du logarithme discret selon laquelle il serait calculatoirement impossible de calculer a à partir de g et ga grâce au logarithme, pour des valeurs de ga suffisamment élevées[2].

Détail de l'échange de clés

Nommons par convention Alice et Bob deux agents qui souhaitent communiquer via Internet. Pour se communiquer une clé de chiffrement avec la méthode Diffie-Hellman, l'échange se passera ainsi[3] : Ainsi, Alice et Bob obtiennent une même clé gb.a [p].

Imaginons maintenant qu'un troisième agent Ève intercepte les échanges, il disposera de g, p, A et B, mais ne pourra pas calculer gb.a [p]. En effet, il faudrait pour cela calculer a (ou b) puis calculer Ba [p] (ou Ab [p]). Cependant, pour calculer a, il faudrait calculer le logarithme discret de A, mais A étant une très grande valeur[4] (2048 bits, soit plus de 10600 en décimal) et le logarithme ne pouvant être calculé efficacement[2], le calcul de a est considéré comme impossible.

Exemple d'échange de clé

On présente ici un échange de clé en utilisant des petits nombres : Alice et Bob obtiennent bien la même clé 310x7 [17] = 15

Pourquoi utiliser le modulo ?

Réaliser toutes les opérations de l'échange de clé en modulo p permet :

Asymétrique ou symétrique ?

La méthode Diffie-Hellman permet de convenir d'une même clé pour le chiffrement et déchiffrement, il s'agit donc d'une clé symétrique. Pourtant, la méthode Diffie-Hellman est considérée comme un algorithme asymétrique car elle permet de produire la clé symétrique à partir de données publiques g, p, A et B et de données privées a et b.

L'utilisation de l'échange de clés Diffie-Hellman aujourd'hui

Aujourd'hui, certains protocoles cryptographiques comme le cryptosystème de ElGamal[5] (utilisé par GPG[6]) et le cryptosystème de Cramer-Shoup[7] reposent sur l'hypothèse décisionnelle Diffie-Hellman (DDH, variante de la CDH) basée sur la difficulté calculatoire du logarithme discret.

Le protocole TLS, utilisé aujourd'hui principalement pour sécuriser les connexions HTTPS[8][9] supporte également l'échange de clés Diffie-Hellman[10].

Sources