Licence 3 N1MA6W31 Université Bordeaux 1 2012/2013
Feuille 3 : RSA
Exercice 1. Complexité de l'algorithme d'Euclide
Si x est un entier, on note L(x) = E(log2(x)) + 1 le nombre de bits de x. Soient a et b deux entiers tels que a > b > 0. On note r0 = a et r1 = b. On applique l'algorithme d'Euclide à a etb de la manière suivante :
a=r0 =r1q1+r2 r1 =r2q2+r3
...
rn−2 =rn−1qn−1 +rn
rn−1 =rnqn
oùrn = pgcd(a, b).
1. La suite des nombres de Fibonacci est dénie par F0 = 0, F1 = 1, Fi = Fi−1 +Fi−2
pour i ≥ 2. Calculer pgcd(Fn+2, Fn+1). Combien fait on d'étapes, que valent les quotients ?
2. Montrer que si le calcul de pgcd(a, b) utilise n divisions euclidiennes alors b ≥Fn+1 (indication : remonter l'algorithme).
3. Vérier que pour tout n ≥ 2, Fn ≥ Φn−2 où Φ = 1+
√ 5
2 est le nombre d'or. En déduire que l'algorithme d'Euclide appliqué àa et b s'arrête après O(L(b))divisions euclidienne (Théorème de Lamé).
4. Montrer que dans l'algorithme d'Euclide le produit des quotients est majoré par a, c'est à dire q1q2. . . qn≤a.
5. La division euclidienne de x par y peut se faire en O(L(y)L(q)) opérations où q est le quotient. Montrer que la complexité de l'algorithme d'Euclide est O(L(a)L(b))
Exercice 2. Chirement RSA
1. Soit n = pq où p et q sont des nombres premiers distincts. Le système RSA chire m ∈ (Z/nZ)× en me ∈ (Z/nZ)×. Puis on déchire c∈ (Z/nZ)× par cd ∈ (Z/nZ)× pourd∈Z tel que ed≡1 (mod ϕ(n))
1
(a) Quelle est la clé publique ? la clé privée ?
(b) Pourquoi se restreint on à des éléments de (Z/nZ)×? Soitxpris au hasard avec probabilité uniforme dansZ/nZ. Quelle est la probabilité que x∈(Z/nZ)×? (c) Montrer que le système est correct, c'est à dire que sicest un chiré de malors
le déchirement dec redonne bien m.
(d) La composée de deux chirements RSA est-elle un chirement RSA ?
(e) Dans cette question on xe p et q deux nombres premiers distincts. Combien a-t-on de choix de clé ?
2. Dans cette question on souhaite implémenter un système RSA avec n= 221. (a) Calculer ϕ(n).
(b) Vérier que l'on peut choisir 7 comme exposant de chirement.
(c) Chirer le message m = 3 pour cet exposant.
(d) Calculer la clef privée.
(e) Déchirer le message c= 198.
Exercice 3. Déchirement de RSA
Dans cette exercice, on montre comment on peut accélérer le déchirement du système RSA en utilisant le théorème des restes chinois. Soit n = pq produit de deux nombres premiers distincts et d ∈ N premier avec ϕ(n). On s'intéresse au calcul du déchirement cd (mod n).
1. On posemp ≡cd (mod p),mq ≡cd (mod q),dp =d mod (p−1)etdq =d mod (q−
1). Montrer quemp ≡cdp (mod p) etmq ≡cdq (mod q). 2. Soit le système dans Z/nZ :
(m≡mp (mod p), m≡mq (mod q).
Justier que si m est solution du système ci dessus alors m≡cd (mod n).
3. Comparer la complexité de cet algorithme de déchirement avec celle de l'algorithme usuel.
4. En utilisant cette méthode déchirer le message c= 198 pour n= 221 et d= 55.
Exercice 4. Dans RSA, connaître ϕ(n) est équivalent à connaître p et q Soit n =pq produit de deux nombres premiers distincts.
1. Exprimer pq etp+q en fonction denetϕ(n). En déduire une méthode pour obtenir p etq lorsque l'on connait n et ϕ(n).
2. Si n = 17063et ϕ(n) = 16800, calculer p etq.
2
Exercice 5. Une attaque sur RSA : petit exposant public commun
On suppose que k personnes B1, . . . , Bk ont pour exposant public RSA e= 3avec des modules respectifs ni,1≤i≤k.
1. Pourquoi est-il raisonnable de supposer que les ni, 1 ≤ i ≤ k sont deux à deux premiers entre eux ?
2. Alice envoie les chirés d'un même messagemà tous lesBi. Montrer qu'un attaquant peut déterminerm3moduloP :=Qk
i=1ni; en déduire qu'il peut calculermsiP > m3. 3. Quel est la valeur minimale de k qui permet de toujours faire cette attaque ?
Exercice 6. Une attaque sur RSA : module commun
Bob et Catherine ont choisi le même module RSA n. Leurs exposants publics eB et eC sont distincts.
1. Expliquez pourquoi Bob peut déchirer les messages reçus par Catherine et récipro- quement.
2. On suppose que eB eteC sont premiers entre eux et qu'Alice envoie les chirés d'un même message m à Bob et à Catherine. Expliquez comment l'attaquant Oscar peut obtenirm.
3. Application : Bob a la clef publique(221,11)et Catherine la clef(221,7). Oscar inter- cepte les chirés210 et58à destinations respectives de Bob et Catherine. Retrouver le message m.
Exercice 7. Module RSA avec deux facteurs proches
Supposons que n soit un entier produit de deux nombres premiers p et q, p > q. On suppose que p et q sont proches, c'est à dire que := p−q est petit. On pose t = p+q2 et s= p−q2 .
1. Montrer que n=t2−s2.
2. Quel est la taille de s? Comparer t et √ n.
3. Montrer comment utiliser cela pour écrire un algorithme (de Fermat) factorisant n. 4. Application : factoriser 11598781.
5. Déterminer le nombre d'itérations de l'algorithme en fonction de p et de n. Que se passe t'il si p−√
n <√4 4n?
Exercice 8. Dans RSA, connaître d est équivalent à connaître p et q
Supposons que n soit un entier produit de deux nombres premiers distincts pet q. On notee, premier avecϕ(n), l'exposant public d'un système RSA de modulon. Connaissantp etq, l'exposant privé dse calcule en temps polynomial. Le but de l'exercice est de montrer que si un attaquant connaît d alors il peut factoriser n en temps polynomial.
3
1. Montrer comment à partir de e,d et n on peut construire un multiple B de ϕ(n). 2. On noteλ= ppcm(p−1, q−1).Montrer que pour touta∈(Z/nZ)×, aλ = 1. Montrer
que aλ/2 peut prendre 4 valeurs et que 2 de ces valeurs permettent de factoriser n. 3. On pose H = {a ∈ (Z/nZ)×, aλ/2 ≡ ±1}. Montrer que H est un sous-groupe de
(Z/nZ)×.
4. Montrer qu'il existe b ∈ (Z/nZ)× tel que b soit d'ordre p−1 modulo p et d'ordre (q−1)/2 modulo q.
5. On pose p−1 = 2vpp0 et q−1 = 2vqq0 avec p0, q0 impairs et on suppose, sans perte de généralité que vp ≥ vq. Exprimer λ/2 en fonction de vp et du ppcm de p0, q0. En déduire queb n'appartient pas àH. Si on prendxau hasard dans (Z/nZ)×, montrer que la probabilité quex n'appartienne pas à H est supérieure ou égale à 1/2.
6. Montrer que λ divise B et en déduire que si x ∈ (Z/nZ)×, il existe un entier k tel que xλ/2 =xB/2k+1.
7. Conclure : donner un algorithme probabiliste polynomial qui factorise n étant donné n, e et d et donner sa probabilité de succés.
8. Application : n= 77, e= 7,d= 43.
4