Fabriquer un secret en public
Diffie-Hellman avec des nombres
L'opération qui joue le rôle du mélange s'appelle l'exponentiation modulaire : élever un nombre à une puissance, modulo un grand nombre premier.
Le protocole
Alice et Bob conviennent publiquement de deux nombres : un grand nombre premier p et une base g.
(public : p, g)
Alice Bob
a (secret) b (secret)
A = g^a mod p
------------- A ------------->
<------------ B -------------- B = g^b mod p
s = B^a mod p s = A^b mod p
Les deux calculs aboutissent au même nombre :
B^a = (g^b)^a = g^(ab) mod p
A^b = (g^a)^b = g^(ab) mod p
L'ordre des exposants ne change rien — exactement comme l'ordre des peintures.
Un exemple minuscule
Prenons p = 23 et g = 5. Alice choisit a = 6, Bob choisit b = 15.
A = 5^6 mod 23 = 15625 mod 23 = 8
B = 5^15 mod 23 = 19
s = 19^6 mod 23 = 2 (cote Alice)
s = 8^15 mod 23 = 2 (cote Bob)
Les deux trouvent 2. Eve, elle, a vu passer 23, 5, 8 et 19.
Pourquoi Eve est bloquée
Pour retrouver a, Eve doit résoudre 5^a mod 23 = 8. Avec des nombres aussi petits, elle essaie toutes les valeurs et gagne en quelques instants.
Mais en pratique p fait 2048 bits ou plus, soit plus de 600 chiffres décimaux. Le nombre de valeurs à tester dépasse alors de très loin ce que toute machine pourra jamais parcourir.
Note bien l'asymétrie : Alice calcule g^a mod p instantanément par exponentiation rapide, alors que remonter de A vers a reste hors de portée. Facile dans un sens, infaisable dans l'autre — le mélange de peintures, en arithmétique.

