Navigation

A propos

IV. La cryptographie à clé publique

1. Diffie et Hellman

Clé "publique" et fonctions à sens unique

C'est en 1976 que Whitfield Diffie et Martin Hellman, de l'Université Stanford, proposent un principe de chiffrement entièrement nouveau : la cryptographie à clé publique, ou asymétrique.

Expliquons leur procédé de façon imagée :

Alice doit recevoir un message de Bob, mais elle ne fait pas confiance au facteur qui pourrait ouvrir sa lettre. Comment peut-elle être sûre de recevoir ce message sans qu'il soit lu ?...
Alice va d'abord envoyer à Bob un cadenas ouvert, dont elle seule possède la clé. Ensuite, Bob va placer son message dans une boîte, qu'il fermera à l'aide de ce cadenas, avant de l'envoyer à Alice. Le facteur ne pourra donc pas ouvrir la boîte, puisque seule Alice possède la clé !

Ainsi, un système cryptographie à clé publique est en fait basé sur deux clés :

C'est la raison pour laquelle on parle de chiffrement asymétrique.

En résumé, on dispose d'une fonction P sur les entiers, qui possède un inverse S. On suppose qu'on peut fabriquer un tel couple (P,S), mais que connaissant uniquement P, il est impossible (ou au moins très difficile) de retrouver S. Autrement dit, il faut déterminer mathématiquement des fonctions difficilement inversibles, ou "à sens unique".

Trouver de telles fonctions semblait ardu aux mathématiciens. En effet, comment imaginer une fonction qui soit à sens unique pour tout le monde, excepté pour son créateur qui peut l'inverser grâce à la connaissance d'une information particulière (la clé) ? Ce sont Diffie et Hellman qui ont les premiers donné une réponse à cette question.

Le protocole de Diffie et Hellman

Parallèlement à leur principe de cryptographie à clé publique, Diffie et Hellman ont proposé un protocole d'échanges de clés totalement sécurisé, basé sur des fonctions difficiles à inverser.

( 1 ) Alice et Bob se mettent d'accord publiquement sur un très grand nombre premier "p" et sur un nombre "n" inférieur à "p".

( 2 ) Alice engendre une clé secrète "a" et Bob une clé secrète "b".

( 3 ) Alice calcule l'élément public ka et Bob l'élément public kb :

ka = na mod p
kb = nb mod p

( 4 ) Alice transmet sa clé publique ka à Bob, et Bob transmet sa clé publique kb à Alice.

( 5 ) Alice et Bob profitent ensuite de la commutativité de la fonction exponentielle pour établir leur secret commun :

KAlice = (kb) a = (n b) a mod p
KBob = (ka) b = (n a) b mod p
=> KAlice = KBob = nab mod p

Sécurité du système

A priori, il n'y a pas moyen, à partir des informations transmises publiquement (p,n,na,nb), de trouver nab sans caculer un logarithme modulo p, ou faire un quelconque calcul d'une complexité exagérée.
Ainsi, la sécurité du système est dite calulatoire et repose sur deux hypothèses :

Remarque 1 : malgré tout cela, en 2001, des experts français ont réussi à inverser la fonction exponentielle modulaire pour un nombre p de 120 chiffres ! La sécurité d'un système dépend donc des progrès constants dans le domaine de la complexité algorithmique.

Remarque 2 : les fonctions à sens unique sont souvent issues de l'arithmétique modulaire, car elles se comportent de manière très irrégulières.

Les limites du système

Le schéma de Diffie-Hellman, bien qu'astucieux, reste un schéma de principe et souffre d'un inconvénient majeur : il n'assure pas les services de sécurité classiques que sont l'authentification mutuelle des deux intervenants, le contrôle de l'intégrité de la clé et l'anti-rejeu (vérifier qu'une information déjà transmise ne l'est pas à nouveau). L'ennemi peut donc facilement usurper l'identité d'Alice, en remplaçant son élément public par le sien.

<< Chapitre précédent - Chapitre suivant >>

Page exécutée en 0.015269 secondes.