Chapitre 5 : Cryptographie à clé publique
Les cryptosystèmes vus jusqu’à présent sont dit classiques ou à clef secrète ou encore symétrique en ce sens
que toute personne qui peut chi¤rer des messages (et donc qui connait la clef secrète) peut également en
déchi¤rer. Un tel cryptosystème se comporte comme une boite fermée par une serrure, les deux personnes qui
veulent l’utiliser pour s’envoyer des messages doivent chacun en posséder une clé mais ils peuvent tous deux
ouvrir et fermer cette boite.
Un cryptosystème à clef publique se comporte comme un co¤re fort dont seul une personne possède la
clef. Il laisse son co¤re ouvert à disposition de toute personne désirant lui envoyer un message, celle ci referme
alors la porte et seul le destinataire peut ensuite l’ouvrir. En pratique, le destinataire publie à l’intention de
ceux qui veulent lui envoyer des messages une méthode de chi¤rement que lui seul est capable de déchi¤rer.
On voit donc bien pourquoi ces systèmes sont dits asymétriques.
I nitions et principes généraux
Dans ce paragraphe on va tenter d’expliciter une méthode générale de constrution de cryptosystèmes à clef
publique. On rappelle que Inest l’ensemble des chaines de nbits.
Dé…nition I.1 Soit uet vdeux applications de Ndans R, on dit que uest négligeable par rapport à vet on
note uvsi lim
n!+1
u(n)
v(n)= 0.
Dé…nition I.2 Une suite d’applications (fr)avec fr:Ir!Irest dite à sens unique si
Il existe un polynôme Pet un algorithme déterministe qui permet pour toute valeur a2Irde calculer
fr(a)en moins de P(r)opérations.
Pour tout b2Im (fr)et pour tout algorithme déterministe qui calcule une valeur a2Irtel que
fr(a) = b,C(r): le nombre d’opérations faites par lors de son éxécution véri…e QCpour tout
polynôme Q.
En pratique, si on dispose d’une suite d’applications à sens unique, cela signi…e que l’on peut choisir un
rang nassez grand pour que le calcul de tout antécédent de fnsoit infaisable en pratique (i.e. nécéssite un
nombre d’opérations supérieur à 280 (en 2004)). On veillera à choisir la plus petite valeur de npossible pour
ne pas augmenter inutilement le calcul des valeurs de fet la taille de la description de f. Par raccourci on
appellera une telle fonction une fonction à sens unique.
Remarque I.1 On ne sait pas si il existe une suite d’applications à sens unique, on a quelques fonctions
candidates, dont on va voir des exemples ci dessous, mais on a jamais réussi à démontrer qu’elles le sont.
Prouver qu’il existe une suite d’application à sens unique prouverait une grande conjecture d’informatique
théorique : P6=NP; conjecture qui a été énoncée en 1971:
Dé…nition I.3 Soit (fn)une suite d’application à sens unique, on dit que cette suite est munie d’une trappe
ou qu’elle est trapdoor si pour tout nla connaisance d’un "secret" (une donnée mathématique supplémentaire)
permet d’inverser la fonction navec un nombre de calculs polynomial.
Remarque I.2 Une conséquence des dé…nitions c’est que la donnée de fne doit pas permettre de calculer le
"secret" avec un nombre de calculs polynomial en n; sinon fne serait plus à sens unique !
Supposons qu’Alice dispose d’une fonction f:Ir!Irà sens unique munie d’une trappe, elle la rend
publique (sur sa page web par exemple). Alors si Bob veut lui envoyer un message m2Irde façon sûre, il
calcule f(m)et l’envoie à Alice. Supposons de plus que f(m)à un seul antécédent (donc m) alors Alice est
la seule qui peut le calculer à partir de f(m)et ainsi déchi¤rer le message de Bob.
Si on a un moyen de construire des bijections à sens unique munie d’une trappe ( permutations one-way,
trapdoor) alors il est aisé de faire de la cryptographie à clef publique. En fait, on a trouvé une méthode qui
semble nous donner de telles fonctions en 1978 et on va la décrire sans plus attendre. Notons que depuis 1978
on en a pas trouvé d’autres !
1
II 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 Adleman. Il date de
1977.
Ron Rivest
(1947-...)
Adi Shamir
(1952-...)
Leonard Adleman
(1945-...) L’équipe RSA en 1977
Il repose sur la suite d’applications :
fn:Z=nZ!Z=nZ
:x!xc
c2N; c (n)et n=pq pet qsont des nombres premiers.
Notons tout d’abord que le nombre d’éléments de Z=nZest net donc qu’on peut représenter tous ces
éléments par des chaines de rbits où r=E(log2(n)) + 1.
Le calcul de fnest une exponentiation modulaire, l’algorithme classique nécéssite un nombre de calcul qui
vaut Cr3Cest une constante. Par ailleurs, on va voir ci-dessous qu’inverser f(si cest bien choisi) est aussi
di¢ cile que de factoriser n. Donc la suite (fn)est à sens unique sous l’hypothèse que la factorisation de n
est un problême di¢ cile, c’est à dire qu’il n’existe pas d’algorithme déterministe pour y arriver de complexité
P(r)avec P:polynôme (ce qui n’est bien sûr pas prouvé).
En pratique Alice choisit deux grands nombres premiers pet q(plus de 100 chi¤res), on verra à la …n de
ce chapitre comment on peut y parvenir en pratique. Alice calcule n=pq, ensuite elle choisit un nombre c
(d’au moins 50 chi¤res) , appelé exposant de chi¤rement. Alice publie net c. Bien sûr le "secret" d’Alice
consiste en la factorisation de net donc elle garde pet qsecrets.
a) Cryptage
Pour crypter le message m2Z=nZ, Bob calcule m0=mcet l’envoie à Alice.
b) Décryptage
Il faut montrer que la suite (fn)est à trappe, plus précisément on va donner un algorithme qui permet à Alice
de calculer rapidement mà partir de m0grâce à la connaissance de pet q:
Alice calcule '(n)=(p1) (q1). Elle calcule ensuite l’inverse de cdans Z='(n)Zpar l’algorithme
d’Euclide (le nombre de calculs e¤ectués par cet algorithme est Cr2C:constante), 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 il faut choisir cimpair).
Pour décrypter m0Alice calcule m0d.
2
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 II.1 Si n=pq pet qsont deux nombres premiers, alors pour tout entier ket tout nombre
mde Z=nZon a
m1+k'(n)=m
Démonstration. On utilise le théorème des restes chinois et l’isomorphisme Z=nZ!Z=pZZ=qZ:On a
donc m= (x; y)avec x2Z=pZet y2Z=qZ.
On va montrer que dans Z=pZon a
x1+k(p1) =x
pour tout entier k: En e¤et si x= 0 c’est évident et sinon d’après le petit théorème de Fermat on a xp1= 1
et donc x1+k(p1) =x. Comme '(n)est multiple de p1on a dans Z=pZ
x1+k'(n)=x
Le même raisonnement avec qmontre que
y1+k'(n)=y
dans Z=qZ. Donc m1+k'(n)=x1+k'(n); y1+k'(n)= (x; y) = m.
Exemple II.1 Si Alice a choisi 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
Il reste donc à voir qu’il n’est pas possible d’inverser RSA sans factoriser n:
Proposition II.2 Si quelqu’un réussit à calculer dà partir de net calors il peut factoriser n:
Démonstration. Décomposons cd1sous la forme 2kravec rimpair pour tout m2(Z=nZ)on a mcd1= 1
on a alors trois possibilités :
1. mr= 1
2. il existe l,0l < k tel que m2lr=1
3. il existe l,0l < k tel que m2lr6=1et m2l+1 r= 1.
En fait, le troisième cas se produit pour la moitié des messages m, dans ce cas m2lrest une racine carrée
de 1autre que 1. Notons x=m2lr, on a donc x2= 1 dans Z=nZet donc (x1) (x+ 1) = 0 et donc
pgcd(x1; n)est soit psoit q!
En fait on peut aussi montrer que si quelqu’un peut déterminer pour tout message mson premier bit
(position de mpar rapport à n
2) ou son dernier bit (sa parité) à partir de mcalors il peut factoriser n.
Par conséquent, une cryptanalyse totale de RSA revient à factoriser n. Mais il n’est pas prouvé que cette
factorisation est nécéssaire pour une cryptanalyse partielle (déchi¤rer un message). Pour le cryptosystème
que l’on va voir maintenant il est montré que le décryptage d’un message est aussi di¢ cile que la factorisation.
3
III Chrement de Rabin
Cet algorithme fut publié en 1979 par Michael Rabin, décrivons le maintenant
Michael O. Rabin
(1931-...)
Il repose sur la suite d’applications
fn:Z=nZ!Z=nZ
:x!x(x+B)
n=pq est un entier de Blum (i.e. pet qsont congrus à 3modulo 4) et Best un entier, 0Bn1.
Les données net Bsont publiques (pet qsont secrets).
a) Cryptage
Pour crypter le message m, Bob calcule m0=m(m+B)dans Z=nZet l’envoie à Alice.
b) 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+ 21B241B2=m0(comme nest impair 2et 4sont inversibles modulo net on a
noté leur inverse 21et 41) donc x+ 21B2=m0+ 41B2. Comme l’équation a forcément une solution
(le message d’origine), m0+1
4B2est forcément un carré dans Z=nZon note x1et x2ses quatres racines
carrées et donc on a
x=8
<
:
21Bx1
ou
21Bx2
Comme on l’a vu dans le chapitre précédent si l’on connaît pet qil est facile de déterminer les racines carrées
dans Z=nZ.
Exemple III.1 Supposons que n= 77 et que B= 9. Alice reçoit le message m0= 22 de Bob. Dans Z=77Z
l’inverse de 2est 39 et l’inverse de 4est 58. Donc
m0+ 41B2= 22 + 58 81 = 23 [77]
Alice va donc résoudre x2= 2 [7]
x2= 1 [11]
Donc x=4 [7]
x=1 [11]
Alors on a x=411 2137 = 88 21 [77] donc les racines carrés de m0+ 41B2dans Z=77Z
sont 10 et 32, comme 21B=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 donnent bien par cryptage le message 22.
4
On va voir par contre que si l’on ne sait pas factoriser nalors on ne peut calculer les quatres racines carrés
pour aucun carré de (Z=nZ). En e¤et, soit aun carré de (Z=nZ)on peut donc écrire a=x2supposons que
l’on sache trouver les racines carrées de a, on sait donc calculer une racine carrée yde adi¤érente de xet de
x. Et donc on aura x2=y2[n]et donc
(xy) (x+y) = 0 [n]
et comme xyet x+yne sont pas multiples de non a pgcd(xy; n)nous donnera pou qet donc on pourra
factoriser n.
Donc avec l’algorithme de Rabin la sécurité de chi¤rement de tous les messages est assurée, si la factorisa-
tion de nest di¢ cile. Mais il y a un défaut, c’est que cet algorithme n’est pas injectif, pour un message chi¤
reçu il y a quatres messages clairs dont il peut provenir ! Dans la pratique, seul un des 4messages aura un
sens donc il n’y aura pas d’ambiguité. Né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 redoubler les 64 derniers bits, avec une très grande probabilité une
seule des quatres solutions respectera cette redondance.
IV Le cryptosystème ElGamal
La sécurité de RSA comme celle de l’algorithme de Rabin
sont liées à la factorisation. Celle du cryptosystème que l’on
va voir maintenant repose sur un autre problème réputé dif-
-…cile : le problème du logarithme discret. Il a été présenté
en 1985 par Taher Elgamal
Taher Elgamal
Problème du logarithme discret : Soit pun (grand) nombre premier et soit gun générateur de
(Z=pZ). Le problème consiste à trouver, étant donné x2(Z=pZ)l’entier atel que
ga=xavec 0ap2
autrement dit de trouver l’index de xpar rapport à g.
Dire que ce problème est di¢ cile est équivalent à dire que la famille d’applications :
fp: (Z=pZ)!(Z=pZ)
:k!gk
pest un nombre premier et où gest un générateur de (Z=pZ)est à sens unique.
Contrairement aux deux familles d’applications à sens unique vu dans les paragraphes précédents, celle ci
n’est pas à trappe. On ne va donc pas pouvoir l’utiliser comme précédemment pour chi¤rer des messages.
Décrivons maintenant l’algorithme, tout d’abord Alice choisit un grand nombre premier p; un élément
primitif modulo p:get un entier b, elle calcule A=ga[p]. Alice publie p; g et Amais garde asecret.
a) Cryptage
Pour chi¤rer le message m2(Z=pZ), Bob choisit un entier ket calcule K=gk[p], il calcule ensuite c=mAk
et envoie le couple m0= (K; c).
Notons que ce calcul dépend du choix de ket donc que pour un message clair donné, il y a plusieurs
messages chrés correspondants.
5
1 / 9 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 !