Académique Documents
Professionnel Documents
Culture Documents
On dit que le uplet (n, p, q, c, d) forme une donnée RSA, l'entier n s'appelant un modulus RSA.
1. Commencer par spécier qui sont P, C, K et eκ , dκ dans le cas de RSA.
2. Méance, méance, est-ce bien vrai que C et D sont des bijections réciproques l'une de l'autre ?
Autrement dit, pourquoi a-t-on D(C(x)) = x pour tout x ∈ Z/nZ∗ ?
3. Evaluer le temps de calcul nécessaire au chirement et au déchirement en fonction de la taille des
données.
1
système RSA sont bel et bien protégées par ce fait. Pour ce faire, pour chaque donnée secrète X, on va
vérier le refrain suivant qui sait calculer (ecacement) la donnée secrète X sait (tout aussi ecacement)
factoriser l'entier n.
1. a. Commencer par vérier la véracité du refrain : qui sait calculer la donnée secrète ϕ(pq) sait
factoriser l'entier n. Faute d'idées commencer par traiter l'exemple qui suit.
b. Sachant que le modulus RSA n = 2501 vérie ϕ(n) = 2400, retrouver (sans factoriser) les
premiers p et q dont n est le produit.
2. Vérions expérimentalement le refrain : qui sait calculer la clé secrète d sait fatoriser l'entier n.
Pour cela, suivez le guide.
a. Combien Z/15Z∗ compte-t-il de racines carrées de 1 (c-a-d d'éléments x tels que x2 = 1) ?
Et Z/21Z∗ ?
b. Montrer que la connaissance de x racine carrée de 1 vériant x 6= ±1 mod n permet de facto-
riser n. Comment ?
c. Posons de − 1 = 2α r avec r impair. Montrer que le calcul des puissances x2 r mod n pour 0 6
β
b. Grâce à la commande Contfrac, calculer la suite des réduites de la fraction c/n. Que remarquez
vous ? C'est grave docteur ?
c. Répéter l'expérience √
à l'envie, puis en déduire la recette de Wiener permettant de calculer d, à
partir de n et c quand d < 13 4 n.
3. La tester avec les ingrédients n = 2417851639291930512195989 et c = 2139482442066189264342983 ;
autrement dit trouver la clé de déchirement !
4. Il se trouve que vous savez déjà calculer les convergents du développement en fractions continues
d'une fraction ab . Si, si, j'vous jure ! Cherchez bien dans votre subconscient. Vous trouvez pas ? Bon alors
procéder comme suit.
a. Dans un saladier cassez deux entiers a, b à trois chires et malaxer à la main jusqu'à obtenir
de beaux coecients de Bezout ainsi que pgcd(a, b).
b. Séparément, faites tourner le robot WIMS/Contfrac, avec l'entrée ab puis observer les convergents.
c. Comparer les coecients obtenus à la main avec les convergents obtenus au robot. Que remar-
quez vous ?
identier ceux qui peuvent être constitués d'un modulus RSA accompagné d'une clé de chirement.
b. Quand c'est le cas, donner la clé de déchirement.
2. On choisit la modulus RSA n = 91 = 7 × 13 avec 29 pour clé de chirement.
2
a. Indiquer les étapes de l'exponentiation dichotomique permettant de coder un message x Combien
de produits doit-on eectuer ?
b. Sans la calculer explicitement, préciser quelle est la clé de déchirement ?
c. Sachant que cette clé vaut 5, déchirer le message 10.
3. On se donne n = pq produit de deux premiers dont les décompositions binaires comptent chacune
512 bits.
√
a. Si on choisit une clé de chirement avoisinant n, quel est l'ordre de grandeur du nombre de
produits nécessaires pour chirer un message ?
b. Quel est l'ordre de grandeur du nombre de divisions que doit eectuer un éventuel attaquant
pour retrouver p et q avec l'algorithme de factorisation naïf ?
identier ceux qui peuvent être constitués d'un modulus RSA accompagné d'une clé de chirement.
2. On choisit la modulus RSA n = 65 = 5 × 13 avec c = 11 pour clé de chirement.
a. Chirer le message x = 2 (une congruence qui peut vous être utile : 28 ≡ 61 (mod 65)).
b. Déterminer la clé d de déchirement.
c. Combien de carrés et de produits doit-on calculer pour déchirer un message ? Expliquer.
3. On se donne n = pq produit de deux premiers dont les décompositions binaires comptent chacune
512 bits.
√
a. Si on choisit une clé de chirement avoisinant n, quel est l'ordre de grandeur du nombre de
produits nécessaires pour chirer un message ?
b. Quel est l'ordre de grandeur du nombre de divisions que doit eectuer un éventuel attaquant
pour retrouver p et q avec l'algorithme de factorisation naïf ?
3
c. Si on se xe c = 5 comme clé de chirement, quels premiers q parmi 11, 13, 17, 19 peuvent-ils
être choisis pour que cette clé soit licite avec le modulus RSA n = pq ?
3. On choisit les données RSA :
n = 3782033 = (1110011011010110010001)2 c = 3254021 = (1100011010011100000101)2
4
Entre 26 et 27 quel est celui qui permet de factoriser n ?
c. Donner les deux pgcd qui sont égaux aux deux premiers dont n est le produit (on ne demande
pas de les calculer).
3. On choisit le modulus RSA n = 221 avec (c, d) = (79, 175) comme couple clé de chirement, clé de
déchirement. On a c × d − 1 = 29 × 27. Enn on fournit la table comportant les 44 entrées suivantes :
x x27 x2×27 x4×27 x8×27 x16×27 x x27 x2×27 x4×27 x8×27 x16×27
2 8 64 118 1 1 27 105 196 183 118 1
3 92 66 157 118 1 28 216 25 183 118 1
4 64 118 1 1 1 29 40 53 157 118 1
5 164 155 157 118 1 30 38 118 1 1 1
6 73 25 183 118 1 31 112 168 157 118 1
7 31 77 183 118 1 32 60 64 118 1 1
8 70 38 118 1 1 33 135 103 1 1 1
9 66 157 118 1 1 35 1 1 1 1 1
10 207 196 183 118 1 36 25 183 118 1 1
11 148 25 183 118 1 37 109 168 157 118 1
12 142 53 157 118 1 38 64 118 1 1 1
14 27 66 157 118 1 40 209 144 183 118 1
15 60 64 118 1 1 41 99 77 183 118 1
16 118 1 1 1 1 42 53 157 118 1 1
18 86 103 1 1 1 43 168 157 118 1 1
19 8 64 118 1 1 44 190 77 183 118 1
20 109 168 157 118 1 45 216 25 183 118 1
21 200 220 1 1 1 46 57 155 157 118 1
22 79 53 157 118 1 47 174 220 1 1 1
23 90 144 183 118 1 48 27 66 157 118 1
24 31 77 183 118 1 49 77 183 118 1 1
25 155 157 118 1 1 50 135 103 1 1 1
5
a. Quelle racine carrée non triviale de 1 apparaît-elle dans ce tableau ? Quelle est l'autre racine
carrée non triviale de 1 ?
b. Donner deux pgcd qui sont égaux aux deux premiers dont n est le produit (on ne demande pas
de les calculer).
c. Je vous livre les informations complémentaires suivantes : une seule des deux racines carrées non
triviale de 1 apparaît dans le tableau mais les deux triviales y gurent ; seuls 100 et 105 sont des mauvais
tirages (ils ne permettent pas de factoriser n). Compléter les quatre cases vides du tableau. Expliquer.
d. Le tirage x = 37 est encore gagnant et révèle l'autre racine carrée de 1 avec le minimum d'étapes
de calculs possibles. Décrire l'algorithme de factorisation de n dans ce cas.
3. On choisit le modulus RSA n = 323 avec (c, d) = (19, 91) comme couple clé de chirement, clé de
déchirement. On a c × d − 1 = 26 × 27. Enn on fournit la table comportant les 40 entrées suivantes :
x x27 x2×27 x4×27 x8×27 x16×27 x x27 x2×27 x4×27 x8×27 x16×27
1 1 1 1 1 1 23 39 229 115 305 1
2 246 115 305 1 1 24 286 77 115 305 1
3 75 134 191 305 1 25 172 191 305 1 1
4 115 305 1 1 1 26 134 191 305 1 1
5 96 172 191 305 1 27 37 77 115 305 1
6 39 229 115 305 1 28 267 229 115 305 1
7 286 77 115 305 1 29 227 172 191 305 1
8 189 191 305 1 1 30 191 305 1 1 1
9 134 191 305 1 1 31 265 134 191 305 1
10 37 77 115 305 1 32 94 115 305 1 1
11 267 229 115 305 1 33 322 1 1 1 1
12 227 172 191 305 1 35 1 1 1 1 1
13 208 305 1 1 1 36 229 115 305 1 1
14 265 134 191 305 1 37 75 134 191 305 1
15 94 115 305 1 1 39 96 172 191 305 1
16 305 1 1 1 1 40 56 229 115 305 1
18 18 1 1 1 1 41 303 77 115 305 1
20 58 134 191 305 1 42 172 191 305 1 1
21 132 305 1 1 1 43 134 191 305 1 1
22 113 172 191 305 1 44 20 77 115 305 1
Exercice 12 : Cryptanalysons
1. On choisit n = 589 comme modulus RSA et on dévoile la valeur ϕ(n) = 540.
a. Donner le trinôme X 2 + aX + b ayant pour racines les deux premiers dont n est le produit.
b. Sachant que le discriminant de ce polynôme vaut 144, retrouver ces deux premiers.
2. Dans cette question on choisit le modulus RSA, n = 1189, la clé de chirement c = 19 et on dévoile
la clé de déchirement d = 59. On vérie que cd − 1 = 25 × 35. Suivant l'algorithme probabiliste de factori-
sation de l'entier n en utilisant la connaissance des deux clés c et d, on tire x au hasard dans Z/1189Z∗ , on
calcule x35 puis ses carrés successifs jusqu'à trouver 1. Voici un extrait des traces d'exécution de quelques
6
tirages.
x x35 x2×35 x4×35 x8×35
2 911 1 1
3 273 811 204 1
16
31 737 1 1
a. Identier une racine carrée non triviale de 1 dans Z/1189Z, puis donner la valeur de l'autre.
b. Sachant que le tirage x = 31 permet de factoriser n, quelles sont les valeurs possibles dans la
case vide de la ligne correspondante.
c. Sachant que le tirage x = 2 ne permet pas de factoriser n, quelles sont les valeurs possibles
dans la case vide de la ligne correspondante.
d. Sachant que pour le tirage x = 16, l'algorithme ne rentre même pas dans la boucle des carrés,
compléter la ligne correspondante.
e. Indépendamment de ces exemples, combien de carrés successifs doit-on calculer au maximum
avant de trouver 1 dans l'algorithme.
f. Donner les pgcd qui permettent de calculer les deux premiers dont n est le produit, puis calculer
ces premiers.
3. On choisit le modulus RSA n = 1763 avec (c, d) = (47, 143) comme couple clé de chirement, clé
de déchirement. On a c × d − 1 = 26 × 105. Enn on fournit la table comportant les 40 entrées suivantes :
x x105 x2×105 x4×105 x8×105 x x105 x2×105 x4×105 x8×105
1 1 1 1 1 21 173 1721 1 1
2 1590 1721 1 1 22 601 1549 1721 1
3 85 173 1721 1 23 1721 1 1 1
4 1721 1 1 1 24 560 1549 1721 1
5 214 1721 1 1 25 1721 1 1 1
6 1162 1549 1721 1 26 1203 1549 1721 1
7 85 173 1721 1 27 601 1549 1721 1
8 214 1721 1 1 28 1719 173 1721 1
9 173 1721 1 1 29 85 173 1721 1
10 1 1 1 1 30 85 173 1721 1
11 1678 173 1721 1 31 1721 1 1 1
12 1719 173 1721 1 32 1590 1721 1 1
13 44 173 1721 1 33 1590 1721 1 1
14 1162 1549 1721 1 34 1719 173 1721 1
15 560 1549 1721 1 35 560 1549 1721 1
16 1 1 1 1 36 1549 1721 1 1
17 1162 1549 1721 1 37 42 1 1 1
18 42 1 1 1 38 1678 173 1721 1
19 1203 1549 1721 1 39 214 1721 1 1
20 1590 1721 1 1 40 1721 1 1 1
7
2. On choisit le modulus RSA n = 1189 avec la clé de chirement c = 87 et on dévoile la clé de
déchirement d = 103. On a c × d − 1 = 28 × 35. Voici quelques questions autour de l'algorithme qui
permet de calculer les premiers p et q dont n est le produit, à partir de la connaissance de c et d.
a. On tire au hasard l'élément x = 3. Décrivez les étapes de l'algorithme et son issue pour ce
tirage, sachant que y = x35 = 273 mod 1189 et en vous aidant de la table des puissances modulo 1189
ci-dessous.
i 1 2 3 4 5 6 7 8 9 10
273i mod 1189 273 811 249 204 998 173 858 1 273 811
i 11 12 13 14 15 16 17 18 19 20
i
273 mod 1189 249 204 998 173 858 1 273 811 249 204
b. Quelles sont les deux racines carrées non triviales de 1 modulo 1189 ?
c. Donner les deux pgcd égaux à p et q et calculer l'un des deux premiers p et q .
d. Sachant qu'il faut calculer deux carrés pour se rendre compte que 2 est un mauvais tirage,
remplir les cases vides de la table suivante :
x x35 x2×35 x4×35 x8×35 x16×35
2 911
e. Sachant qu'il sut de calculer un seul carré pour se rendre compte que 42 est un bon tirage et
sachant qu'il ne mène pas à la même racine carrée non triviale de 1 que le tirage 3, remplir les cases vides
de la table suivante :
x x35 x2×35 x4×35 x8×35 x16×35
42
f. Combien de carrés faudra-t-il au maximum pour se rendre compte si un tirage est bon ou non.
3. Dans cette question le modulus RSA est 3233. Le couple clés de chirement/déchirement est (c, d) =
(47, 863) et il vérie c × d − 1 = 24 × r avec r impair. On fournit la table suivante :