Échange de clés Diffie-Hellman

To the non-french speaker, note that you can translate the articles using the Google Trad widget situated at the bottom of all pages.


L’échange de clés Diffie-Hellman désigne un ensemble de calculs qui permettent de créer un secret commun entre deux communicants qu’aucune personne tierce ne pourra découvrir. Ce secret leur permettra par la suite à sécuriser leurs échanges.

Cet ensemble de calculs mathématiques est extrêmement simple à comprendre et pourtant il suffit à apporter une sécurité suffisante pour que presque personne ne soit capable de déchiffrer les échanges des deux communicant.

Comme d’habitude en cryptographie, nous avons deux communicants : Alice et Bob.

aliceetbob.png

Les parties en rose représentent les zones privées. Seuls Alice et Bob ont accès à leurs zones privées. La partie en bleu représente la zone publique. Tout le monde y a accès.

Pour commencer quatre nombres vont être choisis : A, B, p et g. Le nombre p est un nombre premier, g est un nombre quelconque plus petit que p quant à A et B, ce sont les nombres privés secrets d’Alice et Bob. Bob ne connaît pas le nombre A et Alice ne connaît pas le nombre B.

valeurbase.png

A partie de A et B on va créer deux nouveaux nombres : A’ et B’. Pour obtenir ces nombres on va tout simplement élevé à la puissance A (ou B suivant si on traite le cas d’Alice ou de Bob) le nombre g modulo p :

valeurdeux.png

Puis les deux nombres A’ et B’ vont être envoyés respectivement à Bob et Alice en clair via le réseau Internet.

echange.png

A ce stade là, Bob et Alice possèdent chacun les deux nombres A’ et B’ dérivés de leurs nombres secrets. Hors pour obtenir ces nombres ils ont du se les envoyer via le réseau donc pour le moment il n’existe aucun secret partagé.

En revanche si on effectue un dernier calcul on va pouvoir créer ce fameux nombre secret commun mais pour cela il faut connaître la règle mathématique de l’associativité !

Une opération est dite associative si, quelle que soit la manière dont on regroupe les termes, le résultat est le même. L’exemple le plus couramment donné pour expliquer cette règle est celui de l’addition :

(a + b) + c = a + (b + c)

Pour l’addition c’est vrai. En revanche pour la soustraction ce n’est pas le cas.

Donc en effectuant un dernier calcul et grâce aux propriétés de l’associativité on va pouvoir créer ce secret connu par Alice et Bob. Le calcul encore une fois est simple, on élève le nombre B’ (ou A’ suivant si on traite le cas d’Alice ou de Bob) à la puissance A (ou B) modulo p :

secret.png

Le calcul pour Alice sera donc S=B’A % p. Et là vous allez sûrement vous demandez où est utilisée l’associativité dont je vous ai parlé plus tôt. En fait pour répondre à cette question il faut en poser une autre : comment a t’on obtenu B’ ?

La réponse est : en appliquant cette équation : B’=gB % p. Du coup si dans l’équation du secret d’Alice on remplace B’ par son équation on obtient l’équation suivante : S=(gB)A % p.

Dans le cas de Bob on obtiendra l’équation suivante : S=(gA)B % p.

Et justement l’opération x puissance z le tout à la puissance w est associative ce qui veut dire que (gB)A = (gA)B donc au final Bob et Alice auront le même secret alors qu’à la base ni l’un ni l’autre ne connaissait le secret de l’autre.

Voilà pour la partie théorique, une représentation souvent utilisée et celle du colorant alimentaire :

peinture.png

Et pour que vous ayez une idée de ce que ça donne en pratique je vous laisse cet exemple. Notez cependant qu’ici j’utilise des nombres très petits alors que dans la réalité on utilise des nombres gigantesques (avec plusieurs centaines de chiffres par nombre).

exemple.png

Le seul problème avec l’algorithme Diffie-Helman c’est qu’il ne permet pas de signer un document (comme nous l’avons fait lorsque nous avons monté la messagerie chiffrée sous Thunderbird) alors que RSA, lui, le permet via l’usage des clés publiques/privées.

De plus Diffie-Hellman n’est pas vulnérable si l’attaquant est passif. J’entends par là qu’un attaquant qui ne fait qu’écouter les trames réseaux envoyées ne pourra pas trouver la clé secrète.

En revanche un attaquant actif pourra tout à fait intercepter les communications, modifier les valeurs de A’ et B’ et les envoyer respectivement à Bob et à Alice. Dans ce cas là, l’attaquant aura empoissonné Diffie-Hellman et sera capable de déchiffrer le contenu des communications envoyées entre Alice et Bob.

3 commentaires

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s