Introduction à la cryptographie à clé publique
1 Protocole d’échange de Clé de Di¢ e-Hellmann
Alice et Bob veulent s’échanger des informations de façon con…dentielle en utilisant un système de communication
non sécurisé (téléphone, internet,...), Charlie quant à lui désire savoir ce qu’ils veulent se dire. Alice et Bob vont donc
devoir crypter (ou chi¤rer) leur messages. La plupart des algorithmes de chi¤rement des messages nécéssitent l’accord
préalable d’Alice et Bob sur une clé qu’ils seront les seuls à connaitre (dite clé secrète). Cela pose évidemment un
problême si Alice et Bob sont très éloignés et ne disposent pas de moyens de communication sûrs. Bob et Alice doivent
donc se mettre d’accord sur un chi¤re (qui leur servira de clé secrète) de telle sorte que même si Charlie entend toute
la conversation il ne puisse pas le connaitre. En 1976, Di¢ e et Hellmann ont proposé une solution pour y parvenir.
Tout d’abord Alice et Bob se mettent d’accord sur un grand nombre premier (environ 200 chi¤res) p, et sur un
nombre gqui sert de générateur en pratique on peut prendre g= 3. Charlie connait lui aussi pet g.
Le protocole repose sur l’hypothèse que dans Z=pZl’application
f0; : : : ; p 1g ! Z=pZ
x! gx
est à sens unique. Pour tout nombre x, on a vu comment calculer rapidement gxmodulo p, mais à partir de cette
valeur on ne sait pas calculer rapidement x(on ne sait pas non plus prouver que c’est impossible !). Si on prend x
assez grand (plus de 100 chi¤res), la méthode consistant à essayer tout les nombres jusqu’à tomber sur xprendrait
plusieurs miliards d’années avec les ordinateurs actuels.
Alice choisit alors secrêtement un nombre x(plus d’une centaine de chi¤res) et calcule gxdans Z=pZelle envoie le
résultat à Bob.
Calculer xest quasiment impossible pour Charlie (pour Bob également).
Bob choisit lui aussi secrêtement un nombre y, calcule gydans Z=pZet l’envoie à Alice. Charlie ne sait pas en
déduire y.
Finalement Alice éléve à la puissance xle nombre que Bob lui a envoyé elle obtient : (gy)xmodulo p
Bob, de même, élève à la puissance yle résultat que lui a envoyé Alice et obtient (gx)ymodulo p, comme
(gy)x= (gx)y=gxy
ce nombre : gxy peut leur servir de clé secrête, et Charlie ne peut pas le calculer à partir de gxet gy.
Exemple 1 Supposons qu’Alice et Bob choisissent le nombre premier p= 1259 et g= 3.
Alice choisit x= 144 et calcule
3144 = 572 [1259]
Alice envoie 572 à Bob.
Bob choisit y= 731 et calcule
3731 = 900 [1259]
Bob envoie 900 à Alice.
Alice calcule
900144 = 572731 = 26 [1259]
Donc Alice et Bob peuvent utiliser la clé K= 26.
2 RSA
C’est l’algorithme cryptologique à clé publique le plus connu et le plus utilisé (plus de 2 millions de clés en circulation
en 2002). Il tire son nom des initiales de ses inventeurs : Rivest, Shamir et Adlemann.
Il repose sur l’hypothèse que la factorisation des grands nombres est un problême di¢ cile.
Cet algorithme est asymmétrique, si Alice l’utilise elle va donner des informations permettant à Bob (et à tout le
monde) de crypter des messages à son intention qu’elle pourra décrypter, mais elle ne pourra en aucun cas crypter des
messages à l’intention de Bob.
Alice choisit deux grands nombres premiers pet q(160 chi¤res) et calcule n=pq, ensuite elle choisit un nombre c
(d’au moins 100 chi¤res) , appelé exposant de chi¤rement.
Alice publie net c(et garde pet qsecrets !).
1