
DIFFIE-HELLMANN : LA CRYPTOGRAPHIE A CLE PUBLIQUE
Depuis les origines de la cryptographie, et jusqu'à récemment, tous les procédés étaient basés sur une
même notion fondamentale: chaque correspondant était en possession d'une clef secrète, qu'il utilisait
pour chiffrer et déchiffrer. Cela a un inconvénient majeur : comment communiquer la clef au
correspondant ? Il faut pour cela utiliser un canal sûr, par exemple une valise diplomatique. De toute
manière, il faut un contact préalable avec la personne qui devra (dé)chiffrer nos messages.
Le milieu des années 70 a vu l'avènement d'une nouvelle méthode de cryptage : le système à clefs
publiques. L'idée de ce système a été proposée en 1976 par Diffie et Hellman, qui ont proposé une
méthode totalement nouvelle: une clef pour chiffrer et une autre pour déchiffrer.
Bien entendu, il existe un lien mathématique entre ces deux clefs, mais ce lien est constitué par ce que les
deux inventeurs appellent une « fonction trappe à sens unique ». Cette fonction permet de calculer
aisément la clef de chiffrement en connaissant la clef de déchiffrement. En revanche, l'opération inverse
est pratiquement impossible.
L'intérêt de ce système est considérable. En effet, toute personne ou toute entreprise disposant de moyens
informatiques peut élaborer sa clef de déchiffrement - qu'elle garde secrète pour son usage exclusif - puis
en déduire la clef de chiffrement correspondante. Tous les utilisateurs de ce système agissant de même,
les clefs de chiffrement peuvent ensuite être groupées dans une sorte d'annuaire mis à la disposition du
public. Ainsi deux correspondants peuvent-ils communiquer secrètement sans aucun contact préalable.
Alice Bob Eve
1ère étape
Echange de deux valeurs publiques, Y et P.
Nous prendrons dans notre exemple Y=7 et P=11. Ces valeurs peuvent être
transmises sur un réseau non sur.
(gx mod P = Y mod P / P est premier et Y < P)
Eve peut intercepter les
valeurs de Y et de P, et on
admet qu’elle les connaît.
2ème
étape
Choix d’un nombre A, gardé secret.
(A=3).
Choix d’un nombre, B, gardé
secret. (B=6).
Eve peut aussi choisir son
nombre secret C, également
gardé secret (C=9).
3ème
étape
Alice applique à A la fonction à sens
unique, soit :
YA[P] ⇔ 73[11] = 343[11] =2
Bob applique à B la fonction à
sens unique, soit :
YB[P] ⇔ 76[11] = 343[11] = 4
Eve peut aussi faire ce que
font les deux autres applique
à C la fonction à sens
unique, soit :
YC[P]
⇔ 79[11] = 40 353 607[11]
= 8
4ème
étape
Alice appelle ce dernier résultat a (soit
a=2), et l’envoie à Bob.
Bob appelle ce dernier résultat b
(soit b=4), et l’envoie à Alice.
Eve peut encore intercepter a
et b, et on suppose qu’elle
connaît donc a et b.
5ème
étape
Alice calcule maintenant :
bA[P] ⇔ 43[11] = 64[11] = 9
⇔ clé = 9
Bob calcule maintenant :
aB[P] ⇔ 26[11] = 64[11] = 9
⇔ clé = 9
Eve peut aussi calculer :
aC[P] et bC[P]
⇔ 43[11] = 64[11] =9 et
43[11] = 64[11] =9
⇔ clé1 = 3 et clé2 = 6
6ème
étape
Bob et Alice ont la même clé et peuvent donc communiquer, alors que Eve qui a deux clés dont aucune n’est
la bonne…ne peut rien faire !