-
Maintenant, voilà notre solution.
-
Tout d'abord, Alice et Bob choisissent, publiquement,
-
un module premier et un générateur.
-
Ici, ce sera 17 et 3.
-
Ensuite, Alice choisit un nombre secret, au hasard, disons 15,
-
et calcule : 3 puissance 15 modulo 17
-
et envoie le résultat publiquement à Bob.
-
Ensuite Bob choisit son propre nombre secret, par exemple 13,
-
et calcule : 3 puissance 13 modulo 17,
-
et envoie le résultat publiquement à Alice.
-
C'est maintenant que se passe le "truc".
-
Alice prends le résultat publié par Bob, et
-
l'élève à la puissance de son nombre secret
-
pour obtenir la clé secrète et partagée, qui est, dans ce cas, 10.
-
Bob prends à son tour le résultat publié par Alice, et
-
l'élève à la puissance de son nombre secret, ce qui produit
-
le même résultat, secret et partagé.
-
Il faut noter qu'ils ont fait le même calcul, bien que ce ne soit pas évident à priori.
-
Regardons Alice. Le 12 qu'elle a reçu de Bob
-
était 3 puissance 13 modulo 17.
-
Et son calcul était 3 puissance 13, puissance 15 modulo 17.
-
Maintenant regardons Bob. Le 6 qu'il a reçu d'Alice
-
était le résultat de 3 puissance 15 modulo 17.
-
Et son calcul fut 3 puissance 15, puissance 13.
-
Il faut noter qu'il ont fait le même calcul avec les exposants dans un ordre différent.
-
Or quand on échange les exposants, le résultat ne change pas.
-
Ils ont en fait élevés 3 à la puissance de leurs nombres secrets.
-
Sans connaitre l'un des nombres secrets, 15 ou 13,
-
Eve ne pourra pas trouver la solution.
-
Et c'est comme ça que ça marche.
-
Tandis qu'Eve s'escrime sur le problème du logarithme discret,
-
et avec des nombre suffisamment grands, nous pouvons dire
-
qu'il est impossible en pratique, pour elle, de casser l’encryption
-
dans un temps raisonnable.
-
Cette méthode résout le problème de l'échange de clés.
-
On peut l'utiliser conjointement avec un générateur de nombres pseudo-aléatoires
-
pour encrypter des messages entre des personnes qui ne se sont jamais rencontrées.