![]() |
Exemple d'algorithme asymétrique : Diffie-Hellman |
Jusqu'en septembre 2002, RSA était - aux Etats-Unis - breveté, donc non utilisable librement.
Les internautes ont donc rapidement adopté Diffie-Hellman en remplacement.
Le but de l'algorithme Diffie-Hellman est de créer un secret commun aux personnes qui veulent communiquer et d'utiliser ce secret pour chiffrer les données échangées.
Imaginons qu'Alice et Bob veuillent communiquer.
Tout ce qui est en vert est publique (diffusé sur internet). Tout ce qui est en rouge est privé.
Chez Alice | Publique (internet) | Chez Bob |
p = nombre premier arbitraire | ||
g = nombre aléatoire inférieur à p | ||
Ax = nombre aléatoire (privé) | Bx = nombre aléatoire (privé) | |
Ay = gAx modulo p | By = gBx modulo p | |
Ay | ![]() ![]() |
Ay |
By | ![]() ![]() |
By |
s = ByAx modulo p | s = AyBx modulo p | |
![]() ![]() ![]() ![]() |
(Modulo est le reste de la division entière.)
s est le secret commun d'Alice et Bob.
Un espion sera incapable de calculer s à partir de p et g, car il ne connait ni le nombre aléatoire Ax choisi par Alice, ni le nombre aléatoire Bx choisi par Bob. Ay et By échangés entre Alice et Bob ne l'aideront pas non plus à calculer s.
Chez Alice | Publique (internet) | Chez Bob |
On choisit un nombre premier arbitraire commun: p = 419 |
||
On choisit un nombre aléatoire commun inférieur à p: g = 7 |
||
Alice choisit un nombre aléatoire secret: Ax = 178 |
Bob choisit un nombre aléatoire secret: Bx = 344 |
|
Ay = 7178 modulo 419 = 208 | By = 7344 modulo 419 = 49 |
|
Ay = 208 | ![]() ![]() |
Ay = 208 |
By = 49 | ![]() ![]() |
By = 49 |
s = 49178 modulo 419 = 107 | s = 208344 modulo 419 = 107 | |
![]() ![]() ![]() ![]() |
Alice et Bob on calculé le même secret commun: 107. On se sert de 107 pour chiffrer les données échangées (Dans la pratique, on utilise des nombres beaucoup plus grands).
Diffie-Hellman permet de crée un secret commun (et donc de chiffrer des communications) mais contrairement à RSA, il ne permet pas de signer des documents.
C'est pour cette raison que Diffie-Hellman est souvent associé à DSS (Digital Signature Standard, un autre algorithme). DSS permet de signer les documents.
On voit donc souvent le sigle DH associé à DSS: DH/DSS.
DH/DSS est l'algorithme par défaut de Gnu Privacy Guard (gpg).
Pour poursuivre:
Le contenu de cette page est placé sous les termes de la licence suivante : CC Attribution-Noncommercial 4.0 International |
h t t p : / / s e b s a u v a g e . n e t |