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 m∈Z/nZ, elle calcule me∈Z/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)n∈Nune suite de nombres entiers naturels. On pose pour tout n≥0,
[a0:a1, a2, . . . , an] = a0+1
a1+1
a2+1
···+1
an
La suite [a0],[a0;a1], . . . est convergente.
Proposition 1. Soit x∈R. Il existe une unique suite (an)n∈Nd’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 x∈Q(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] (n≥0) les réduites de x.
Proposition 2. Soit x∈R, de développement en fraction continuée [a0:a1, a2, . . . , an]. On
pose p−2= 0,q−2= 1,p−1= 1,q−1= 0. ¨On définit pour n≥0,pn=anpn−1+pn−2,
qn=anqn−1+qn−2. Alors, pour tout n≥0,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 x∈R, et soit pn/qnune convergente de x. Si qest un entier tel que q≤qn,
alors |x−p/q|≥|x−pn/qn|, pour tout p∈Z. De plus, si |x−p/q|<1/2q2, alors p/q est une
convergente de x.
1