Exemple d'algorithme asymétrique : Diffie-Hellman


Pourquoi un autre algorithme ?

Jusqu'en septembre 2002, RSA était - aux Etats-Unis - breveté, donc non utilisable librement.

Les internautes ont donc rapidement adopté Diffie-Hellman en remplacement.

 

Comment ça marche ?

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
   échange de données chiffrées avec  

(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.

 

Exemple


Chez Alice Publique (internet) Chez Bob
  On choisit un nombre premier arbitraire commun:
= 419
 
  On choisit un nombre aléatoire commun inférieur à p:
= 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
   échange de données chiffrées avec  

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).

 

Mais Diffie-Hellman seul ne suffit pas

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