TD 6

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

Université Pierre et Marie Curie M1 Cryptographie Année 2010

Feuille d’exercices 6
Avertissement : tous les exercices ne seront pas traités durant les séances ; pour en suivre l’avancement veuillez
consulter mon site personnel dans la rubrique Forum.

1. Méthode ρ de Pollard
Exercice 1. — Factoriser les nombres n en utilisant la méthode ρ de Pollard avec la fonction f (x) et x0 = 2 dans
les situations suivantes
1. n = 91, f (x) = x2 + 1 et x0 = 1 ;
2. n = 4087, f (x) = x2 + x + 1 et x0 = 2 ;
3. n = 8051, f (x) = x2 + 1 et x0 = 1.

Exercice 2. — Soit S un ensemble de cardinal r et f une permutation de S. On considère la suite x0 ∈ S et


xj+1 = f (xj ) d’éléments de S associée à la paire (x0 , f ) et soit k le premier indice tel qu’il existe j < k pour lequel
f (xk ) = f (xj ). Montrer que :

1. k ≤ r et pour tout 1 ≤ i ≤ r la probabilité que k = i est égale à 1/r ;


2. la valeur moyenne de k est égale à (r + 1)/2.
3. Expliquer pourquoi un polynôme linéaire ax + b ne doit pas être utilisé dans la méthode ρ de Pollard.

Exercice 3. — Supposons que l’on utilise la méthode ρ de Pollard pour factoriser un entier divisible par un
nombre premier noté r et que l’on utilise la fonction f (x) = x2 . Soit k le plus petit indice tel qu’il existe 0 ≤ l < k
avec xk ≡ xk mod r. On suppose que x0 est un générateur de (Z/rZ)× et on pose r − 1 = 2s t avec t impair.

1. Ecrire une congruence modulo r − 1 qui est équivalente à xk ≡ xl mod r ;


2. Trouver les valeurs de k et l au moyen de s et du développement en base 2 de 1/t.
3. Commenter le choix de f (x) = x2 .

2. Factorisation de Fermat
√ √
Exercice 4. — Montrer que si n √ a un diviseur a tel que |a − n| ≤ 4 n alors l’algorithme de Fermat fonctionne
dès le premier cran, i.e. pour t = n + 1.

Exercice 5. — Factoriser 200819 en l’exprimant comme une différence de 2 carrés.

Exercice 6. — En utilisant 1182 ≡ 25 mod 4633 factoriser n = 4633.

Exercice 7. — En étudiant les carrés de 67, 68 et 69 modulo 4633, factoriser n = 4633.

Exercice 8. — Factoriser n = 4633 en utilisant 682 ≡ −9 mod 4633, 692 ≡ 128 mod 4633 et 962 ≡ −50
mod 4633.

Exercice 9. — Factoriser n = 1829.

1
2

3. Fractions continuées
On utilise toujours le principe que n n’est pas premier si et seulement si l’équation x2 ≡ 1 mod n a au moins 4
solutions. Evidemment on disposait d’un bon algorithme A ¿ racine carrée À, on factoriserait N comme suit : on
prend a au hasard, puis on calcule a2 dont on prend la racine carrée par l’algorithme A : il y a alors au moins une
chance sur deux pour que le résultat b soit différent de a de sorte que n ∧ (a ± b) fournit un diviseur non trivial de
n. Evidemment on ne dispose pas de tel algorithme et il est raisonnable de penser qu’il n’en existe pas.
L’idée usuelle est de considérer des paires ¿ aléatoires À d’entiers (x, y) telles que x2 ≡ y 2 mod n de sorte que
n divise (x − y)(x + y) de sorte que ¿ moralement À il y a une chance sur 2 pour que les facteurs premiers de n se
répartissent sur les deux facteurs (x − y) et (x + y). Ainsi le pgcd (x − y) ∧ (x + y) a de bonnes chances de donner
un diviseur non trivial de n.
Pour construire de telles paires systématiquement, on utilise les fractions continues : si t est petit avec x2 ≡ t
mod 2 2 2
√ n, alors x = t + kd n et donc (x/d) − kn = t/d est petit, autrement dit x/d est une bonne approximation
de kn. Or on sait que les fractions continues sont de bonnes √ approximations rationnelles : ainsi on calcule via les
fractions continues de bonnes approximations P/Q de kn pour divers k et on essaie de factoriser t = P 2 − Q2 kn
via la base de petits nombres premiers que l’on considère. √ √
Concrètement voici l’algorithme : soit b−1 = 1, b0 = a0 = b nc et x0 = n − a0 . On calcule b20 mod n en
prenant le représentant de module minimal. Puis pour i = 1, 2, · · · on construit :
1
– ai = b xi−1 c et xi = x−1
i−1 − ai ;
– bi = ai bi−1 + bi−2 modulo n ;
– b2i mod n,
où modulo n on prend toujours le représentant de module minimal. On regarde ensuite les nombres b2i mod n qui
s’écrivent comme ±1 fois un produit de petit nombres premiers ; soit B la base de ces nombres premiers auquel on
rajoute −1 et on associe à chacune de ces b2i mod −
→ k

− Q n un vecteurQ ²iγj de F2 . On construit ensuite une combinaison
linéaire nulle de ces ²i à laquelle on associe b = i bi et c = j pj et on espère que (b ± c) ∧ n nous fournit un
facteur non trivial.
Exercice 10. — Utilisez l’algorithme ci-dessus pour factoriser 9073.
Exercice 11. — Utilisez l’algorithme ci-dessus pour factoriser 17873.
3

4. Solutions
1 (1) On a x1 = 2, x2 = 5, x3 = 26 et x4 ≡ 40 mod 91 et (x4 − x3 ) ∧ n = 14 ∧ 91 = 7.
(2) On trouve
x1 = f (2) = 7 (x1 − x0 ) ∧ n = (7 − 2) ∧ 4087 = 1
x2 = f (7) = 57 (x2 − x1 ) ∧ n = (57 − 7) ∧ 4087 = 1
x3 = f (57) = 3307 (x3 − x1 ) ∧ n = (3307 − 7) ∧ 4087 = 1
x4 = f (3307) ≡ 2745 mod 4087 (x4 − x3 ) ∧ n = (2745 − 3307) ∧ 4087 = 1
x5 = f (2745) ≡ 1343 mod 4087 (x5 − x3 ) ∧ n = (1343 − 3307) ∧ 4087 = 1
x6 = f (1343) ≡ 2626 mod 4087 (x6 − x3 ) ∧ n = (2626 − 3307) ∧ 4087 = 1
x7 = f (2626) ≡ 3734 mod 4087 (x7 − x3 ) ∧ n = (3374 − 3307) ∧ 4087 = 61
et donc 4087 = 61 × 67.
(3) On obtient (x6 − x3 ) ∧ n = (2839 − 26) ∧ 8051 = 97 et 8051 = 83.97.
2 (1) Montrons par récurrence sur 1 ≤ k ≤ r que la probabilité que x0 , · · · , xk−1 soient distincts alors que xk est
égal à l’un des xj pour 0 ≤ j < k est égale à 1/r. Pour k = 1 il y a une probabilité 1/r que f (x0 ) = x0 . Supposons
le résultat acquis jusqu’au rang k − 1 et traitons le cas de k. La probabilité que x0 , · · · , xk−2 soient distincts est
donc 1 − k−1 r et alors comme f (xk−1 ) peut prendre r − k + 1 valeurs dont l’intersection avec {x0 , · · · , xk−1 } est
1
réduit à x0 de sorte qu’il y a une probabilité r−(k−1) que f (xk ) = x0 et donc la probabilité cherché est le produit
r−(k−1) 1
r r−(k−1) = 1r .
P
(2) La moyenne cherchée est l’espérance 1r rk=1 k == 1r r(r + 1)/2 = (r + 1)/2.
(3) Supposons que a ∧ n = 1 (sinon on a une factorisation !) alors f √ (x) = ax + b est une bijection de Z/rZ pour
tout r|n et donc le nombre de pas attendu est d’ordre r/2 au lieu de r dans la méthode habituelle.
3 (1) On a 2k ≡ 2l mod r − 1.
(2) On a l = s et k = s + m où m est l’ordre de 2 modulo t, i.e. le plus petit entier tel que 2m ≡ 1 mod t et
donc la période du développement 2-adique de 1/t.
(3) On voit que k peut être aussi grand que r ; par exemple si r − 1 = 2p avec 2 un générateur de F× p.
√ √ n √ √ √ √
4 Soit n = ab avec a > b ; si a < n + n alors b > √n+ √
4
4n > n − n. De même si b > n − n alors on a
4 4
√ √ √ √ √ √ √ √
a < n + n +√2 sinon n = ab > ( n + n + 2)( n − n) = n + n − 2 4 n > n si n > 15. Dans
4 4 4
√ tous les cas
on a √a − b < 2( pn + 1). Or si la factorisation
4
p √ de Fermat
√ √ ne marche pas au premier cran alors t > n + 1 et donc
√ √
s = t2 − n > ( n + 1)2 − n = 2 n + 1 > 2 4 n ce qui contredit la relation s = (a − b)/2 < 4 n + 1 dès
que n > 33.

5 On a b 200819c + 1 = 449 et 4492 − 200819 = 782 qui n’est pas un carré parfait. On essaye avec 4502 − 200819 =
1681 = 412 et donc 200819 = 4502 − 412 = 491.409.
6 On calcule (118 + 5) ∧ 4633 = 41 (ou aussi (118 − 5) ∧ 4633 = 113) ce qui donne 4633 = 41.113.
7 On a 672 ≡ −144 mod 4633 et 682 ≡ −9 mod 4633 ainsi que 692 ≡ 128 mod 4633. Ainsi pour B = {−1, 2, 3} on
est dans la situation de l’algorithme où le vecteur de F32 associé à 67 (resp. 68, resp. 69) est (1, 0, 0) (resp. (1, 0, 0),
resp. (0, 1, 0)) ce qui suggère de considérer 67.68 ≡ −77 mod 4633 et c = 22 32 = 36 ainsi que (−77+36)∧4633 = 41.
8 On considère donc B = {−1, 2, 3, 5} avec les vecteurs de F42 associés à 68, 69 et 96 : e1 = (1, 0, 0, 0), e2 = (0, 1, 0, 0)
et e3 = (1, 1, 0, 0). Comme e1 + e2 + e3 = 0, on considère b = 68.69.96 ≡ 1031 mod 4633 et c = 24 .3.5 = 240 avec
(240 + 1031) ∧ 4633 = 41.
√ √
9 Pour k = 1, 2, · · · on calcule b 1829kc et b 1829kc + 1 ce qui donne le tableau suivant :
bi −1 2 3 5 7 11 13

42 1 1 1
43 2 1
61 2 1
74 1 1
85 1 1 1
86 4 1
4

ce qui fournit (b2 b6 )2 ≡ (23 5)2 mod 1829 soit (43.86)2 ≡ 402 mod 1829 mais comme 43.86 ≡ 40 mod 1829 on
obtient une relation triviale.
On cherche alors une autre relation : (42.43.61.85)2 ≡ (2.3.5.7.13)2 mod 1820 soit 14592 ≡ 9012 mod 1829 et
(1459 + 910) ∧ 1829 = 59.
10 On établit le tableau suivant :
i 0 1 2 3 4
ai 95 3 1 26 2
bi 95 286 381 1119 2619
2
bi mod n −48 139 −7 87 −27
On considère alors B = {−1, 2, 3, 7} avec i = 0, 2, 4 et les vecteurs (1, 0, 1, 0), (1, 0, 0, 1) et (1, 0, 1, 0). La somme
du premier et du troisième vecteur étant nulle, on obtient b = 95.2619 ≡ 3834 mod 9073 et c = 22 .32 et donc
38342 ≡ 362 mod 9073 avec (3834 + 36) ∧ 9073 = 43 et donc 9073 = 43.211.
11 On établit le tableau suivant :
i 0 1 2 3 4 5
ai 133 1 2 4 2 3
bi 133 134 401 1738 3877 13369
b2i mod n −184 83 −56 107 −64 161
On considère alors B = {−1, 2, 7, 23} avec i = 0, 2, 4, 5 et les vecteurs (1, 1, 0, 1), (1, 1, 1, 0) et (1, 0, 0, 0) et (0, 0, 1, 1).
La somme du premier, du deuxième et du quatrième étant nulle ce qui donne b = 133.401.13369 ≡ 1288 mod 17873
et c = 23 .7.23 = 1288 mais alors b ≡ c mod 17873. On continue alors la table précédente
i 6 7 8
ai 1 2 1
bi 17246 12115 11488
b2i mod n −77 149 −88
ce qui suggère de rajouter 11 à notre base B avec i = 0, 2, 4, 5, 6, 8 et les vecteurs e1 = (1, 1, 0, 0, 1), e2 = (1, 1, 1, 0, 0),
e3 = (1, 0, 0, 0, 0), e4 = (0, 0, 1, 0, 1), e5 = (1, 0, 1, 1, 0) et e6 = (1, 1, 0, 1, 0). On a e1 + e2 + e3 + e5 + e6 = 0 ce qui
fournit b = 7272 et c = 4928 avec (7272 + 4928) ∧ 17873 = 61 et 17873 = 61.293.

Vous aimerez peut-être aussi