Attaque de RSA par fractions continuées
On rappelle le principe de l’algorithme RSA. Soient p, q Ndeux nombres premiers, et soit
n=pq. On choisit e(Z(n)Z)×, que l’on rend public ainsi que n, et on calcule un inverse
dde emodulo ϕ(n), que l’on garde secret ainsi que pet q. Si une personne veut transmettre
nous un message mZ/nZ, elle calcule meZ/nZ, qu’elle nous transmet. Il nous suffit de
calculer (me)dpour retrouver m. On va présenter une méthode due à Wiener pour attaquer ce
cryptosystème, efficace quand dest petit.
1 Fractions continuées.
Définition 1. Soient (an)nNune suite de nombres entiers naturels. On pose pour tout n0,
[a0:a1, a2, . . . , an] = a0+1
a1+1
a2+1
···+1
an
La suite [a0],[a0;a1], . . . est convergente.
Proposition 1. Soit xR. Il existe une unique suite (an)nNd’entiers naturels telle que
x= limn+[a0:a1, a2, . . . , an]. De plus, la suite anest nulle à partir d’un certain rang si et
seulement si xQ(on utilise la convention 1/0 = +,1/+= 0).
On dit que (an)est le développement en fraction continuée de x, on appelle les [a0:
a1, a2, . . . , an] (n0) les réduites de x.
Proposition 2. Soit xR, de développement en fraction continuée [a0:a1, a2, . . . , an]. On
pose p2= 0,q2= 1,p1= 1,q1= 0. ¨On définit pour n0,pn=anpn1+pn2,
qn=anqn1+qn2. Alors, pour tout n0,pnet qnsont premiers entre eux, et pn/qn= [a0:
a1, a2, . . . , an].
Les rationnels pn/qns’appellent les convergentes de x.
Théorème 1. Soit xR, et soit pn/qnune convergente de x. Si qest un entier tel que qqn,
alors |xp/q|≥|xpn/qn|, pour tout pZ. De plus, si |xp/q|<1/2q2, alors p/q est une
convergente de x.
1
2 Attaque de RSA
Soit n=pq, avec pet qpremiers, soit e<ϕ(n)inversible modulo ϕ(n), et soit dun inverse
de emodulo ϕ(n). On veut calculer dconnaissant eet n. Par définition, il existe un entier
kZtel que ed = 1 + kϕ(n). Comme e<ϕ(n), on a k < d. Si on suppose que q < p < 2q,
alors q < net nϕ(n)<3n. On écrit :
e
nk
d
=|1k(nϕ(n))|
nd <3k
dn.
Proposition 3. Si d < 1
3n1/4, alors on peut retrouver d.
Démonstration. Dans ce cas, l’inégalité précédente donne
e
nk
d
<1
2d2car k < d. Ainsi, k
dest
une réduite de e
n.
Pour déterminer de quelle réduite il s’agit, on peut calculer les premières réduites de e/n,
jusqu’à en trouver une dont le dénominateur soit bien d. Pour cela, on remarque que la relation
ed = 1 + kϕ(n)devrait fournir la valeur de ϕ(n)si on a trouvé la bonne réduite. Questions.
1. Démontrer la proposition 1.
2. Implémenter le calcul des réduites d’un xR
3. À la fin du texte, comment s’assurer que l’on a la bonne valeur de ϕ(n)?
4. Évaluer le temps de calcul pour l’attaque proposée.
5. Implémenter l’attaque et l’appliquer avec n= 53849827354264842453628575584921,e=
49394906641974585153683647525463.
2
1 / 2 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 !