Introduction à la cryptographie à clé publique

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
2.1 Cryptage
On suppose qu’un message est un nombre mcompris entre 1et n. Pour crypter le message m, Bob calcule m0=mc
dans Z=nZet l’envoie à Alice.
2.2 Décryptage
Alice calcule '(n)=(p1) (q1). Elle calcule ensuite l’inverse de cdans Z='(n)Zpar l’algorithme d’Euclide, on
note dce nombre appelé l’exposant de déchi¤rement.
Il faut pour cela que csoit inversible dans Z='(n)Zet donc premier avec '(n), si ça n’était pas le cas Alice aurait
choisi une autre valeur pour c. (Notons qu’en particulier d’après le résultat du partiel : '(n)pair, il faut choisir c
impair).
Pour décrypter m0Alice calcule m0d.
En e¤et par dé…nition de don a
cd 1 ['(n)]
donc il existe un entier ktel que
cd = 1 + k' (n)
donc
m0d= (mc)d=mcd =m1+k'(n)
On utilise alors le résultat suivant :
Proposition 2 Si n=pq pet qsont deux nombres premiers, alors pour tout entier ket tout nombre mde Z=nZ
on a
m1+k'(n)=m
Proof. Si mest inversible alors on a vu que dans Z=nZ
m'(n)= 1
donc
m1+k'(n)=mm'(n)k
=m1k=m
Si mn’est pas inversible, alors mn’est pas premier avec ndonc mest un multiple de pou de q. Supposons par
exemple que msoit un multiple de p, donc on va avoir
m0 [p]
donc
m1+k'(n)0 [p]
notons xle reste de la division euclidienne de mpar qc’est à dire
mx[q]
comme xest inversible dans Z=qZon a
xq11 [q]
donc dans Z=qZ
x'(n)=x(p1)(q1) xq1p1(1)p1= 1
donc
x1+k'(n)=x
donc
m1+k'(n)x[q]
donc met m1+k'(n)sont égaux modulo pet modulo qils sont donc égaux modulo pq =nd’après le théorême des
restes chinois.
Exemple 3 Si Alice a choisie p= 101 et q= 113 donc n= 11413. Alors '(n) = 112 100 = 11200. Supposons
qu’Alice ait choisi c= 3533 (on véri…e facilement que pgcd(3533;11200) = 1). On calcule dpar l’algorithme d’Euclide,
on trouve d= 6597.
Bob veut transmettre le message 9726 à Alice, il calcule 97263533 mod 11413 = 5761 et envoie ce résultat.
Alice reçoit 5761 et calcule 57616597 mod 11413 = 9726
2
2.3 Une mauvaise utilisation de RSA
Supposons que Bob et Ted utilisent la même clé RSA :n=pq avec deux exposants de chi¤rements di¤érents : c1et
c2. On suppose que c1et c2sont premiers entre eux.
Si Alice envoie le même message mà Bob et Ted qu’elle crypte en utilisant RSA et que Charlie intercèpte les
messages cryptés, alors Charlie peut calculer m:
On voit donc la nécéssité de générer une nouvelle clé RSA pour chaque nouvel utilisateur.
Comment procède Charlie ?
Il connait m1=mc1[n]et m2=mc2[n], il connait aussi n,c1et c2qui sont publics et il doit calculer m.
Avec l’algorithme d’Euclide il calcule aet btel que ac1+bc2= 1, en suite il calcule ma
1mb
2=mac1+bc2=m.
3 Chi¤rement de Rabin
Tout d’abord donnons les résultats mathématiques nécéssaires pour comprendre cet algorithme.
Dé…nition 4 Soit x2Z=nZon dit que xest un carré si et seulement si il existe y2Z=nZtel que y2=x:
Proposition 5 Soit pun nombre premier et soit xun carré de Z=pZalors on a
xp1
2= 1
Proof. Comme x=y2on a xp1
2=yp1= 1 car '(p) = p1.
Proposition 6 Soit pun nombre premier congru à 3modulo 4. Alors si aest un carré de Z=pZalors les solutions
de x2=asont ap+1
4et ap+1
4. On notera ap+1
4=pa.
Proof. Soit aun carré de Z=pZ, on a
ap+1
42=ap+1
2=aap1
2=a
D’autre part si yet zsont deux solutions distinctes de x2=aalors on a y2=z2donc y2z2=0=(yz) (y+z)
comme Z=pZest un corps, tout élément non nul est inversible donc soit y=z, soit y=z. Donc on a bien donné
toutes les solutions.
Exemple 7 On pose p= 19. Dans Z=19Zon a p16 = 165= (3)5= (9)2(3) = 15 = 4 et p6=65=
(2)26 = 5.
On a 25= 32 = 6mais (6)2=2, cela montre que 2nest pas un carré sans Z=19Z.
Décrivons maintenant l’algorithme de chi¤rement de Rabin.
Alice choisit deux grands nombres premiers pet qtous deux congrus à 3modulo 4et calcule n=pq, ensuite elle
choisit un nombre B,0Bn1.
Alice publie net B(pet qsont secrets).
3.1 Cryptage
Un message est un nombre mcompris entre 1et n. Pour crypter le message m, Bob calcule m0=m(m+B)dans
Z=nZet l’envoie à Alice.
3.2 Décryptage
Alice doit résoudre dans Z=nZl’équation x2+Bx =m0, on procède comme pour l’équation du second degré classique,
on a x+1
2B21
4B2=m0(comme nest impair 2et 4sont inversibles modulo net on a noté leur inverse 1
2et
1
4) donc x+1
2B2=m0+1
4B2. Comme l’équation a forcément une solution (le message d’origine), m0+1
4B2est
forcément un carré dans Z=nZet donc on a
x+1
2B=rm0+1
4B2
x=B
2rm0+1
4B2
3
Toute la di¢ culté consiste à calculer la racine carrée d’un carré de Z=nZ, on ne connait pas d’algorithme polynomial
pour y parvenir si nn’est pas un nombre premier congru à 3modulo 4. Donc personne ne peut calculer le message de
Bob, sauf Alice...
En e¤et, pour résoudre x2=cdans Z=nZ, Alice va résoudre
x2=c[p]
x2=c[q]
ces deux équations sont faciles à résoudre puisque pet qsont choisis pour ça ;-) et grace au théorème des restes chinois
Alice va pouvoir en déduire une solution modulo n.
Exemple 8 Supposons que n= 77 et que B= 9. Alice reçoit le message m0= 22 de Bob. Dans Z=77Zl’inverse de
2est 39 et l’inverse de 4est 58. Donc
m0+1
4B2= 22 + 58 81 = 4720 = 23
Alice va donc résoudre x2= 2 [7]
x2= 1 [11]
Donc x=4 [7]
x=1 [11]
Alors on a x=411 237 = 88 21 [77] donc les racines carrés de m0+1
4B2dans Z=77Zsont 10 et 32,
comme B
2=39 9 = 34 [77] les di¤érents messages clairs possibles sont
34 32 = 2
34 + 32 = 66
34 10 = 24
34 + 10 = 44
On peut véri…er que tous ces messages donne bien par cryptage le message 22.
Remarque 9 Comme on vient de le voir plusieurs messages clair ( 4en fait) donnent le même message chi¤ré. Dans
la pratique, seul un des 4messages aura un sens donc il ny aura pas d’ambiguité. anmoins cela peut poser problême
pour automatiser le déchi¤rement, pour contourner cette di¢ culté on va introduire de la redondance dans le message
clair. Il y a de multiples façons de le faire, par exemple on peut décider que les messages clairs en binaire doivent se
terminer par une série de 10 zéros ce qui donnera une chance sur 1000 que cela arrive pour un autre résultat que le
message clair.
4
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !