Vous êtes sur la page 1sur 5

Échange de clés Diffie-Hellman

En cryptographie, l'échange de clés Diffie-Hellman, du nom de ses auteurs Whitfield Diffie et Martin
1
Hellman, est une méthode , publiée en 1976, par laquelle deux agents, nommés par convention Alice et
Bob, peuvent se mettre d'accord sur un nombre (qu'ils peuvent utiliser comme clé pour chiffrer la
conversation suivante) sans qu'un troisième agent appelé Ève puisse découvrir le nombre, même en ayant
écouté tous leurs échanges. Cette idée valut en 2015 aux deux auteurs le prix Turing.

Principe

Principe expliqué avec des couleurs

Donnons d'abord une explication intuitive en faisant une analogie


avec des couleurs. L'objectif est qu'Alice et Bob se mettent d'accord
sur une couleur secrète, sans qu'Ève ne puisse la connaître. Cette
explication est imagée et n'a pas de sens pratique, mais permet de
comprendre l'essence de l'échange de clés Diffie-Hellman. On
suppose que les agents peuvent mélanger des couleurs, mais qu'il
est difficile (notamment pour Ève !) d'extraire les couleurs utilisées
pour réaliser un mélange. Le principe est le suivant.

1. Alice et Bob choisissent au préalable une peinture


commune, ici le jaune. Cette couleur est connue de tous,
y compris de l'intrus Ève.
2. Alice choisit une autre couleur secrète (ici du rouge). Elle
mélange la peinture commune et sa couleur secrète et
obtient de l'orange. Alice envoie la couleur orange à
Illustration conceptuelle d'un
Bob. La couleur orange est connue d'Ève.
échange de clés Diffie-Hellman
3. Bob fait de même : il choisit une couleur secrète (ici du
cyan) qu'il mélange à la peinture commune et il obtient
du bleu. Bob envoie sa couleur bleu à Alice. La couleur bleue est connue d'Ève.
4. Alice prend la couleur reçue (le bleu) qu'elle mélange avec sa couleur secrète rouge. Elle
obtient une couleur brune.
5. Bob prend la couleur reçue (le orange) qu'il mélange avec sa couleur secrète cyan. Il obtient
la même couleur brune.

A la fin du protocole, Alice et Bob possèdent la même couleur brune, qui représente la couleur secrète
partagée. En supposant qu'il est difficile pour Ève d'extraire les couleurs utilisées pour obtenir les couleurs
publiques orange et bleue, Ève ne connaît pas la couleur brune finale.
Dans le principe original décrit plus bas, un nombre premier p est choisi. Les « couleurs » sont des nombres
modulo p. Le mélange de deux couleurs consiste à élever un nombre à une certaine puissance modulo p.
Retrouver les couleurs utilisées dans un mélange correspond à inverser l'exponentiation, qui est un
problème algorithmique difficile.

Principe original
1
Nous décrivons le principe original .

1. Alice et Bob ont choisi un nombre premier et un générateur


du groupe Z/pZ strictement plus petit que (ils peuvent
aussi, comme montré sur la figure, ne décider de ce choix
qu'au moment de l'échange et se le communiquer en clair,
Principe d'un échange de clés Diffie-
ce qui n'améliore pas les chances d'Ève) ;
Hellman (le groupe choisi est ici 2. Alice choisit un nombre au hasard, et envoie à Bob le
Z/pZ) nombre (« g puissance a modulo p ») ;
3. De même, Bob choisit un nombre au hasard, et transmet le
nombre , ;
4. Alice, avec le nombre reçu de Bob, calcule . Elle obtient donc le nombre  ;
5. Bob fait le calcul analogue avec le nombre reçu d'Alice : . Il obtient , ce qui est
le même nombre que celui obtenu par Alice.

À la fin du protocole, Alice et Bob obtiennent tous les deux le nombre mais pas Ève. Puisqu'il est
difficile d'inverser l'exponentiation dans un corps fini (ou sur une courbe elliptique), c’est-à-dire de calculer
le logarithme discret, Ève ne peut pas découvrir ni calculer . Alice et Bob ont donc trouvé une clé
secrète commune sans jamais se l'échanger et sans que personne ne puisse la calculer.

Dans la description ci-dessus, Alice et Bob travaillent dans le corps fini Z/pZ, ils échangeront les nombres
modulo p. De manière générale, l'échange de clés Diffie-Hellman se généralise à un groupe fini cyclique
2
quelconque (au lieu de se mettre d'accord sur un nombre premier p, ils se mettent d'accord sur un groupe
fini). Ce groupe fini peut être un corps fini, dont ils n'utilisent que la multiplication, ou une courbe
elliptique.

Exemple

Alice Bob
Secret Calcul Public Public Calcul Secret

p, g p, g

a b

A (reçoit)

(reçoit) B

1. Alice et Bob ont choisi un nombre premier p et une base g. Dans notre exemple, et
.
2. Alice choisit un nombre secret , Bob choisit aussi un nombre secret
3. Alice envoie à Bob la valeur
4. Bob envoie à Alice la valeur
5. Alice peut maintenant calculer la clé secrète :
6. Bob fait de même et obtient la même clé qu'Alice :

Dans la pratique, on pourra prendre un premier p de Sophie Germain (tel que q = 2p + 1 premier lui aussi)
de grande taille et un générateur g dans Z/pZ (g est donc premier avec p-1).

Fondement mathématique
La méthode utilise la notion de groupe, par exemple le groupe multiplicatif des entiers modulo p, où p est
un nombre premier  : dans ce cas, les opérations mathématiques (multiplication, puissance, division) sont
effectuées modulo p, c'est-à-dire en ne conservant que le reste de la division euclidienne par p. Les groupes
ayant la propriété de l'associativité, l'égalite (gb)a = (ga)b est valide et les deux parties obtiennent bel et bien
la même clé secrète.

La sécurité de ce protocole réside dans la difficulté du problème du logarithme discret  : pour que Ève
retrouve gab à partir de ga et gb, elle doit élever l'un ou l'autre à la puissance b ou à la puissance a
respectivement. Mais déduire a (resp. b) de ga (resp. gb) est un problème que l'on ne sait pas résoudre
efficacement dans le cas général. Ève est donc dans l'impossibilité (calculatoire) de déduire des seules
informations ga, gb, g et p, la valeur de gab .

Il faut toutefois que le groupe de départ soit bien choisi et que les nombres utilisés soient suffisamment
grands, pour éviter par exemple une attaque par recherche exhaustive. À l'heure actuelle, on utilise
généralement des nombres premiers p de taille 2048 bits (de l'ordre de 600 chiffres en écriture décimale),
3
pour lesquels la résolution du logarithme discret n'est pas considérée comme réalisable . Si une solution
pratique pour résoudre un logarithme discret venait à apparaître, d'autres systèmes cryptographiques
pourraient tomber, notamment le système de ElGamal, qui repose sur le même principe.

L'attaque de l'homme au milieu


Ce protocole est vulnérable à « l'attaque de l'homme au milieu », qui implique un attaquant capable de lire
et de modifier tous les messages échangés entre Alice et Bob et le fait qu'Alice ne s'assure pas qu'elle parle
effectivement à Bob ainsi que le fait que Bob ne s'assure pas qu'il parle effectivement à Alice (absence
d'authentification).

Cette attaque repose sur l'interception de ga et gb, ce qui est faisable puisqu'ils sont échangés en clair  ;
l'élément g est connu par tous les agents. Pour retrouver les nombres a et b et ainsi casser complètement
l'échange, il faudrait calculer le logarithme discret de ga et gb, ce qui est impossible en pratique.

Mais un attaquant peut se placer entre Alice et Bob, intercepter la clé ga envoyée par Alice et envoyer à
Bob une autre clé ga', se faisant passer pour Alice. De même, il peut remplacer la clé gb envoyée par Bob à
Alice par une clé gb', se faisant passer pour Bob. L'attaquant communique ainsi avec Alice en utilisant la clé
partagée gab' et communique avec Bob en utilisant la clé partagée ga'b, Alice et Bob croient communiquer
directement. C'est ce que l'on appelle « attaque de l'homme au milieu ».
Alice et Bob croient ainsi avoir échangé une clé secrète alors qu'en réalité ils ont chacun échangé une clé
secrète avec l'attaquant, l'homme au milieu.

Solution

La parade classique à cette attaque intègre dans chaque message une authentification, qui peut, par exemple
consister à signer les échanges de valeurs à l'aide d'une paire de clés asymétriques certifiées par une tierce
partie fiable, ou dont les moitiés publiques ont été échangées auparavant par les deux participants. Alice
peut ainsi être assurée que la clé qu'elle reçoit provient effectivement de Bob, et réciproquement pour Bob.

Références
1. W. Diffie et M. Hellman, « New directions in cryptography », IEEE Transactions on
Information Theory, vol. 22, no 6,‎1976, p. 644–654
(DOI 10.1109/TIT.1976.1055638 (https://dx.doi.org/10.1109/TIT.1976.1055638), lire en ligne
(https://ee.stanford.edu/%7Ehellman/publications/24.pdf))
2. Johannes A. Buchmann, Introduction to Cryptography, Springer Science+Business Media,
2013, Second éd., 190–191 p. (ISBN 978-1-4419-9003-7, lire en ligne (https://books.google.c
om/books?id=BuQlBQAAQBAJ&pg=PA190))
3. « Groupes, logarithmes et confidentialité persistante » (https://lipsum.dev/2020-11-1-groupes-
logarithme/), sur lipsum.dev (consulté le 8 décembre 2020)

Voir aussi

Bibliographie
(en)David Adrian, Karthikeyan Bhargavan, Zakir Durumeric, Pierrick Gaudry, Matthew
Green, J. Alex Halderman, Nadia Heninger, Drew Springall, Emmanuel Thomé, Luke
Valenta, Benjamin VanderSloot, Eric Wustrow, Santiago Zanella-Béguelin et Paul
Zimmermann, Imperfect Forward Secrecy : How Diffie-Hellman Fails in Practice, Denver,
22nd ACM Conference on Computer and Communications Security, octobre 2015, 13 p.
(ISBN 978-1-4503-3832-5, ISSN 1543-7221 (https://www.worldcat.org/issn/1543-7221&lang=fr),
OCLC 5979157254 (https://worldcat.org/fr/title/5979157254),
DOI 10.1145/2810103.2813707 (https://dx.doi.org/10.1145/2810103.2813707), lire en ligne (https://weakdh.org/
imperfect-forward-secrecy-ccs15.pdf) [PDF])

Articles connexes
Complexité algorithmique
Cryptographie asymétrique
Ralph Merkle
Chiffrement RSA
Chiffrement El Gamal
Keyed-Hash Message Authentication Code (HMAC)

Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Échange_de_clés_Diffie-


Hellman&oldid=198254330 ».

Vous aimerez peut-être aussi