Université PARIS 8 Master MFPI – M2 Algorithmes algébriques o Corrigé n 10 - P. Guillot Exercice 1. 91 = 7 × 13 n’est pas premier. 390 ≡ 1 (mod 7), car 90 = 15 × 6 et 36 ≡ 1 (mod 7). De même, 390 ≡ 36 ≡ 729 ≡ 3 (mod 13). Donc 390 ≡ 1 (mod 91) d’après le théorème chinois. Exercice p2. p a +1 −1 est une factorisation de n, car comme 1 est solution de X p − 1, a − 1 divise 1. n = aa−1 a+1 ap − 1, de même, comme −1 est solution de X p + 1 (p est impair), a + 1 divise ap + 1. La factorisation est non triviale dès que a ≥ 2. 2 2p a2p −a2 −1 − aa2 −1 2. ap ≡ a (mod p) donc a2p ≡ a2 (mod p). Donc p divise a2p −a2 . Or n−1 = aa2 −1 −1 = a2 −1 . p divise a2p − a2 , mais par hypothèse p ne divise pas a2 − 1 donc p divise n − 1. n − 1 = a2p−2 + a2p−4 + · · · + a2 est une somme d’un nombre pair de termes, tous de même parité, donc n − 1 est pair. 3. 2p divise n − 1, donc a2p − 1 divise an−1 − 1. Comme n divise a2p − 1, il divise an−1 − 1. 10 4. Avec p = 5, on trouve que n = 2 3−1 = 341 est un nombre pseudo-premier de Fermat en base 2. Avec p = 7, on trouve 5 461 et avec p = 11, on trouve 1 398 101. Il y a une infinité de nombres premiers. . . Exercice 3. Supposons 2n−1 ≡ 1 (mod n), alors 2n−1 ≡ 1 (mod q), car 2n−1 = 1 + kpq. Dans Z/qZ, on a 2q = 2 donc 2n = 2p et aussi 2n = 2, donc 2p−1 = 1. Par conséquent, 2p−1 ≡ 1 (mod n). De même (symétrique) 2q−1 ≡ 1 (mod n). L’ordre de 2 modulo n divise p − 1 et q − 1, il divise leur pgcd, donc 22 ≡ 1 (mod n), ce qui est une contradiction. Ceci montre que le test de Fermat en base 2 est toujours concluant pour les nombres de la forme n = p × q. Exercice 4. 1. Si an−1 ≡ 1 (mod n), alors a est inversible (il a pour inverse an−2 . Donc H ⊂ Un . n−1 ≡ an−1 /bn−1 ≡ 1 (mod n), donc H est un sous-groupe de Un . Si a, b ∈ H, ab1 2. Si H 6= Un , son ordre est au plus la moitié de l’ordre de Un qui est ϕ(n). Les témoins de Fermat n sont au plus n − ϕ(n) 2 ≥ 2. Exercice 5. 1. Les diviseurs premiers de n sont p et les diviseurs de m. Aucun des deux sortes ne divise 1 + pm. 2. ap = (1 + pm)p = 1 + p2 m+ termes divisible par p2 m. 2 3. Comme ap = 1, on a ap m = 1, soit an = 1 donc an−1 = 1/a 6= 1. Exercice 6. 1. Car n n’a pas de facteur carré (exercice précédent). a ≡ g mod p 2. Soit a l’élément de Z/nZ tel que . Cet élément est d’ordre p−1 par construction. a ≡ 1 mod q 3. Comme n est de Charmichael, on a an−1 = 1. D’après la question 2, on a p − 1 | n − 1. 4. Si n = pq avec p < q premiers, on a q − 1 | pq − 1 = (q − 1)p + (p − 1), donc q − 1 | p − 1, ce qui est contradictoire. Exercice 7. Si n est premier, alors an ≡ a (mod n), donc an − a est multiple de n. m m De même, si n = pm , alors ap − a est multiple de p, donc pgcd(ap − a) est multiple de p. Pp Exercice 8. 1. bp = (1 + pm)p = i=0 Cpi (pm)i = 1 + p2 m + Cp2 p2 m2 + · · · + (pm)p ≡ 1 (mod n). Comme p est premier, l’ordre de b modulo n est p. Comme p ne divise pas n − 1, on ne peut pas avoir bn−1 ≡ 1 mod n et donc b(n−1)/2 6≡ ±1 mod n. 2. Si a(n−1)/2 ≡ −1 mod n, on a nécessairement a(n−1)/2 ≡ −1 mod p. Par ailleurs b ≡ a mod p et b ≡ 1 mod m, donc, b(n−1)/2 ≡ a(n−1)/2 ≡ −1 mod p et b(n−1)/2 ≡ 1 mod m. b ne peut être congru à ±1 modulo n, car s’il l’était, il le serait modulo p et modulo m. 3. n n’a pas de facteur carré d’après la question 1, et n’a pas de facteurs premiers entre eux d’après la question 2. Exercice 9. 1. Si a est tel que a(n−1)/2 = na et b est tel que b(n−1)/2 = nb , alors (ab)(n−1)/2 = 1 a b a b n n . De plus, n = 1 donc si ab ≡ 1 (mod n), alors n n = 1. L’ensemble des entiers a tel que n est pseudo-premier d’Euler en base a est donc un sous-groupe de (Z/nZ∗ , ×). Si le sous-groupe n’est pas strict, alors il existe un élément a tel que a(n−1)/2 = na = −1. D’après l’exercice 5 ci-dessus, il existe b, premier avec n, tel que b(n−1)/2 6≡ ±1 mod n, ce qui est contradictoire. 2. L’ordre du sous-groupe ci-dessus divise strictement l’ordre du groupe des éléments inversibles modulo n. Il est donc inférieur à ϕ(n)/2. 3. Si n est composé, il y a moins de la moitié des bases a pour lesquelles n est pseudo-premier d’Euler en base a. Exercice 10. Si n est un pseudo-premier d’Euler en base a, alors a(n−1)/2 = ±1, donc an−1 = 1 (mod n). La réciproque est fausse, car 91 est pseudo-premier de Fermat, mais n’est pas pseudopremier d’Euler en base 3. Le test de Solovay-Strassen est donc strictement plus puissant que le test de Fermat. 2 , mais 24×35 = 67 6= ±1. Exercice 11. 1. 560 = 16 × 32 et modulo 561, on a 28×35 = 1 = 561 i i−1 2. a) Soit b = at . Comme n est pseudo-premier fort en base a, b2 = 1 et b2 = −1 modulo n et donc aussi modulo pj . Par conséquent, b est d’ordre 2i modulo pj , en particulier 2i divise pj − 1, ce qui implique que i ≤ sj . b) Comme n est pseudo-premier fort en base a, en particulier a(n−1)/2 = ±1. Or, si i < sj , alors pj ≡ 1 (mod 2i+1 ) et si i = sj , alors pj ≡ 1 + 2j (mod 2i+1 ). Donc n = p1 · · · pk ≡ (1 + 2i )r (mod 2i+1 ). Comme 1 + 2i est d’ordre 2 dans Z/2i+1 Z, r est pair si et seulement si n ≡ 1 (mod 2i+1 ). D’autre s−1 t, on a a(n−1)/2 = 1 si et seulement si s − 1 ≥ i, c’est-à-dire si 2i+1 divise n − 1. part, n−1 2 = 2 On a bien l’équivalence entre r pair et a(n−1)/2 = 1. c) L’ordre de at est 2i ; ce n’est donc pas un carré modulo pj si et seulement si i = sj , d’où t t t a a t = an = pa1 · · · pak = (−1)r . n = n 3. Dans ce cas, n − 1 = 2t avec t impair. Si n est pseudo-premier d’Euler en base a, alors at = na = ±1. Dans les deux cas (+1 et −1), n est fortement pseudo-premier en base a. Exercice 12. 1. 4p + 1 est divisible par 5, car 4p ≡ (−1)p ≡ −1 (mod 5), donc n est un entier. (2p − 2(p+1)/2 + 1)(2p + 2(p+1)/2 + 1) = 4p + 1 est composé, donc n aussi (si p ≥ 5). p p−1 2. D’après le petit théorème de Fermat, 4p = 4 + kp, donc n − 1 = 4 5−4 = 4 4 5 −1 . Ce dernier facteur est impair et multiple de p (si p 6= 5, i.e. si p ≥ 7). p−1 3. Soit r = 4 5p−1 = pt . C’est un entier impair. 22p ≡ −1 (mod n) donc 22rp ≡ 22t ≡ (−1)r ≡ −1 (mod n), donc n est un nombre pseudo-premier fort en base 2. Chaque nombre premier p ≥ 7 conduit à un nombre composé dont 2 n’est pas témoin de Miller. Exercice 13. Si p est premier, l’égalité (X − a)p = X p − a vient de la linéarité de x 7→ xp dans Z/pZ. Réciproquement, si p est composé, soit q un facteur premier de p et soit k maximal tel que q k | p. Alors q k ne divise pas pq et est premier avec ap−q . Donc le coefficient de X q dans le développement de (X − a)p n’est pas nul. (n−1)/2 = (−1)2k = 1, donc (−1) est un résidu quadratique modulo Exercice 14. 1. −1 n = (−1) 2 n, on peut poser −1 = i . 2. (i + 1)4 = 1 + 4i + 6i2 + 4i3 + i4 = 1 + 4i − 6 − 4i + 1 = −4 donc j 4 = −4/16 = −1/4 = k, car comme n = 4k + 1, k est l’inverse de −4 modulo n. D’où k k = j 4k = j n−1 = 1 d’après le petit théorème de Fermat. 3. Soit n un entier congru à 1 modulo 4. Calculer k = (n − 1)/4, puis k k mod n. Si le résultat est différent de 1, conclure que n n’est pas premier, sinon, n est peut-être premier. 4. Les premiers entiers composés qui passent ce test sont 561, 1 105, 1 729, 1 905, 2 465, 3 277, 4 033, 4 681, 6 601, 8 321, 8 481, 10 585 etc. Ceux qui sont soulignés sont des nombres de Carmichael, mais 2 821 et 8 911 sont des nombre de Carmichael qui ne sont pas pseudo-premiers pour ce test.