L3-LAC TESTS DE PRIMALITE — — — — — — — –(rédigé par Djiali Behloul-Avril-2020)— — — — — — — — Plan du cours I) Test de primalité de Wilson II) Test de de non-primalité de Fermat III) Test de de non-primalité de Miller IV) Test de primalité probabiliste de Miller-Rabin V) Test de primalité de Lucas-Lehmer VI) Distribution des nombres premiers ———————— I) Test de primalité de Wilson Théorème-1 (1770, Wilson ) Un entier p > 1 est premier si et seulement si (p 1)! + 1 0[p]. Preuve Le résultat est clair pour p = 2; 3. Supposons que p > 3: (= (p 1)!+1 0[p] s’écrit (p 1)!+1 = Ap où A 2 N , ainsi Ap (p 1)! = 1. Pour tout k 2 f1; 2; :::; p 1g, il existe un entier mk tel que (p 1)! = kmk , donc Ap kmk = 1 pour tout k 2 f1; 2; :::; p 1g, alors d’après Bézout pgcd(p; k) = 1 pour tout k 2 f1; 2; :::; p 1g, donc p est premier. )= Dans le corps Z=pZ, les seuls éléments égaux à leur inverse sont 1 et 1. Car pour un x 6= 0 de Z=pZ, si x = x 1 alors x2 = 1 d’où x2 1 = 0 donc (x 1)(x + 1) = 0 alors x = 1 ou x = 1. On a Z=pZ = f0; 1; 2; :::; p 1g, que l’on peut écrire p 3 Z=pZ = f0; 1; 1; x1 ; x1 1 ; x2 ; x2 1 ; :::; xr ; xr 1 g avec r = . 2 Ainsi (p 1)! 1 2 3 ::: (p 2) (p 1)[p] 1( 1)x1 x1 1 x2 x2 1 :::xr xr 1 [p] 1[p] II) Test de de non-primalité de Fermat Notons par ' la fonction indicatrice d’Euler. Théorème-1 (1761, Euler) Soient n 2 N * et x un entier premier à n, alors x'(n) 1[n] Preuve 1 Par dé…ntion, l’ordre du groupe ((Z=nZ) ; ) est '(n) et d’après le théorème de Lagrange, l’ordre de la classe x de x, dans Z=nZ, divise '(n) donc x'(n) = 1 d’où x'(n) 1[n]. Théorème-2 (1640, le petit théorème de Fermat) Ennoncé (a): Si p est un nombre premier alors pour tout entier x premier à p, on a xp 1 1[p] Ennoncé (b) : si p est un nombre premier alors pour tout entier x, on a xp x[p] Preuve Comme p est premier alors '(p) = p 1, donc d’après le théorème d’Euler xp 1 1[p] donc l’énnoncé (a) est vrai. Montrons l’énnoncé (b) : Si p divise x alors il est trivial que xp x[p] et si p ne divise pas x alors p 1 x 1[p] d’où xp x[p]. Dé…nition-1 (témoin de Fermat) Soit n > 1 un entier. On dit qu’un entier x; 0 < x < n est un temoin de Fermat pour n si : xn 1 6 1[n]. Proposition-1 (test de non primalité de Fermat) Un entier n > 1 est non premier, si et seulement si, il existe un entier x; 0 < x < n; tel que x est un témoin de Fermat pour n. Preuve )= Soit n > 1 non premier. On peut écrire n = n1 n2 avec n1 > 1 et n2 > 1: Supposons que nn1 1 1[n], alors nn1 1 1 = kn avec k 2 N , d’où n 2 (n1 )n1 + ( k)n = 1, d’après Bézout, on obtient pgcd(n1 ; n)= 1, ce qui est impossible car n = n1 n2 . Ainsi nn1 1 6 1[n] d’où n1 est un témoin de Fermat pour n. (= Soit x un entier, 0 < x < n tel que x est un témoin de Fermat pour n, i.e n 1 x 6 1[n]. Supposons que n est premier. Comme 0 < x < n, donc pgcd(x; n)= 1, alors d’après le petit théorème de Fermat, on obtient xn 1 1[n] ce qui est impossible, donc n est non premier. 2 Algorithme de non primalité de Fermat; dédut lire( n); f1 < ng 1-choisir( x); f0 < x < ng sinon calculer xn 1 mod n si xn 1 mod n 6= 1 alors écrire( n est non premier) : sortir sinon revenir à 1; …n. Exemple-1 n = 64657 1er choix de x : x = 5 xn 1 mod n = 564656 mod 64657 = 27 589 6= 1 conclusion n = 64657 est non premier Dé…nition-2 (1910, nombres de Carmichael) On dit que l’entier n > 1 non premier est un nombre de Carmichael, si n x x[n] pour tout entier x. Remarque-1 Les nombres de Carmichael sont impairs car sinon comme pgcd(n; n 1) = 1, alors (n 1)n 1 1[n] i.e 1 1[n], alors n j 2 ce qui est impossible car n 4. Théorème-3 (1899, Korselt) Soit n 2 N *, n est un nombre de Carmichael si et seulement si i) n > 1 non premier et sans facteur carré. ii) Pour tout diviseur p premier de n, on a p 1 divise n 1: Preuve )= Supposons que n est un nombre de Carmichael. Soit p un facteur premier de n. i) La congruence pn p[n] s’écrit pn kn = p, où k 2 N , on voit que p2 ne peut pas diviser n, car sinon p2 va diviser p. Donc n est sans facteur carré . ii) Soit x un générateur du groupe cyclique ((Z=pZ) ; ), donc xp 1 1[p], comme xn x[n], alors xn x[p] d’où xn 1 1[p], mais x est d’ordre p 1 donc p 1 divise n 1. (= Supposons que n > 1 non premier et sans facteur carré et pour tout diviseur p premier de n, on a p 1 divise n 1. Soit p un diviseur premier de n. 3 Soit x un entier non divisible par p alors xp 1 1[p], comme p 1 divise n 1 donc xn 1 1[p] d’où xn x[p]. Si x est divisible par p alors il est clair que xn x[p], ainsi pour tout entier x on a xn x[p]. Mais n est sans facteur carré, donc xn x[n]. Corollaire-1 Soit n un nombre de Carmichael. Alors xn 1 1[n] pour tout entier x n premier à n si et seulement si x x[n] pour tout entier x. Preuve Si xn x[n] pour tout entier x et si de plus pgcd(n; x) = 1 alors d’après le lemme de Gauss xn 1 1[n]. Si xn 1 1[n] pour tout entier x premier à n alors xn 1 1[p] pour tout diviseur p premier de n et pour tout entier x premier à n, donc xn x[p] pour tout entier x, mais n est sans facteur carré, donc xn x[n] pour tout entier x. Exercice-1 Tout nombre de Carmichael est un produit de nombres premiers impairs 2 à 2 distincts, en nombre 3: Solution Soit n un nombre de Carmichael. Si n = pq avec p < q où p et q sont premiers, alors q 1 divise n 1, mais n 1 = pq 1 = p(q 1) + (p 1) donc q 1 j p 1 ce qui est impossible car p < q. Donc n est le produit d’au moins 3 facteurs premiers 2 à 2 distincts, mais comme n est impair alors tous ses facteurs premiers sont impairs. Exemples-2 i) n = 561 est le plus petit nombre de Carmichael. On a n = 561 = 3 11 17; donc 561 est non premier et sans facteur carré. On a : 2 divise 560; 10 divise 560; 16 divise 560: ii) Les sept premiers nombres de Carmichael sont : 561, 1105 , 1729, 2465, 2821, 6601, 8911. Propriétés-1 (à admettre) i) il existe une in…nité de nombres de Carmichael (1994, Alford, Granville et Pomerance) ii) il existe une in…nité de nombres de Camichael dans toute suite arithmétique fan + bg avec pgcd(a; b)= 1. (2013, Thomas Wright). III) Test de de non-primalité de Miller Théorème-1 (1976, Miller) Soit n > 1 un entier impair. i Posons n 1 = 2s t avec t impair et xi x2 t [n]; i = 0; 1; :::; s. 4 S’il existe un entier x; 0 < x < n tel que i) x0 6 1[n] ii) xi 6 1[n] pour tout i = 0; 1; :::; s 1 Alors n est non premier. Preuve Soit n > 1 un entier impair. Supposons que n est premier et véri…e les conditions du théorème de Miller dont l’entier x est un témoin. D’après le petit théorème de Fermat xn 1 1[n], ainsi xs xn 1 1[n]. Dans Z=nZ, les seuls racines carrés de 1 sont 1 et 1 car n est premier. On a 8 x2s 1 xs [n] d’où x2s 1 1[n] xs 1 1[n] < ou donc : xs 1 1[n] refusé 2 2 de même 8 xs 2 xs 1 [n] d’où xs 2 1[n] xs 2 1[n] < ou donc : xs 2 1[n] refusé et ainsi de suite, on obtient xs 1[n]; xs 1 1[n]; ::::; x1 1[n]: 2 2 mais x 80 x1 [n] d’où x0 1[n] < x0 1[n] refusé ou donc : x0 1[n] refusé ce qui impossible car x0 6 1[n] et x0 6 1[n]: Conclusion : n est non premier. Dé…nition-1 Un entier x qui véri…e les conditions du théorème de Miller s’appelle un témoin de Miller pour n. (l’entier x apporte une preuve de la non-primalité de n). Exercice-1 (les témoins triviaux) Soit n > 1 un entier impair. Montrer que tous les entiers x tels que pgcd(n; x) > 1 sont des témoins de Miller pour n. Solution Soit x; 0 < x < n tel que pgcd(n; x) > 1: Supposons que x n’est pas un témoin de Miller pour n: Alors x0 1[n] ou xi 1[n] pour un certain i 2 f0; 1; :::; s 1g: 5 Si x0 1[n] alors xt 1[n], donc d’après Bézout pgcd(n; x) = 1 ce qui est impossible. i Si xi 1[n] pour un certain i, alors x2 t 1[n], donc d’après Bézout pgcd(n; x) = 1 ce qui est impossible. Conclusion : x est un témoin de Miller pour n. Exemple-1 n = 561 le premier nombre de Carmichael. n 1 = 2s t = 560 = 24 35 donc s = 4 et t = 35: On choisit x = 2 i) xt = 235 263[561] ) 235 6 1[561] 1[561] ii) 235 263[561] ) 235 6 2 35 2 35 2 166[561] ) 2 6 1[561] 2 2 22 35 67[561] ) 22 35 6 1[561] 23 35 23 35 2 1[561] ) 2 6 1[561] Donc n = 561 est non premier et x = 2 est un témoin de Miller pour n = 561. IV) Test de primalité probabiliste de Miller-Rabin Dé…nition-1 (test de Miller-Rabin) Soit n > 1 un entier impair. i Posons n 1 = 2s t avec t impair et xi x2 t [n]; i = 0; 1; :::; s. On dit que n passe le test de Miller-Rabin pour un certain entier x; 0 < x <8n, si x0 1[n] < ou : il existe un entier i 2 f0; 1; :::; s 1g tel que xi 1[n] Remarques-1 i) si n passe le test de Miller-Rabin pour un entier x alors pgcd(n; x) = 1. ii) n passe le test de Miller-Rabin pour x = 1 et x = n 1. Description du test de primalité probabiliste de Miller-Rabin D’après le théorème de Miller, un nombre premier p impair va passer le test pour tout entier x; 0 < x < p. Un entier impair n > 1 non premier peut passer le test de Miller-Rabin pour un certain entier x; 1 < x < n 1. Dans ce cas n est dit pseudo-premier en base x. Théorème-1 (1980, Rabin) Soit n > 9 un entier impair non premier. Les entiers x; 0 < x < n, qui satisfont le test de Miller-Rabin pour l’entier n, sont en nombre au plus '(n)=4. (' la fonction indicatrice d’Euler). 6 Preuve : à admettre. Remarque-2 Grace au théorème de Rabin, la probabilité pour que x passe le test de 1 '(n) , Miller-Rabin pour un entier n > 9 impair non premier, est 4(n 1) 4 car '(n) n 1. Exemple-1 Pour n = 15, le nombre d’entiers x; 0 < x < 15, qui satisfont le test de '(15) '(3)'(5) 2 4 Miller-Rabin est = = = 2. On déduit que n = 15 4 4 4 passe le test de Miller uniquement pour x = 1 et x = 14. Algorithme : test de primalité probabiliste de Miller-Rabin (1980, Rabin); début lire( n); { n > 9 impair} lire( N ); { 1 < N < n} répéter N fois 1-choisir un entier x { 1 < x < n 1} exécuter le test de Miller à n pour x si le test échou alors écrire( n est non premier) : sortir sinon écrire( n est pseudo-premier en base x) revenir à 1; …n. Pour N = 1, et n > 9 non premier impair, d’après le théorème de Rabin, 1 . la probabilité pour que n soit déclaré pseudo-premier est 4 Si au bout de N fois, le test n’a jamais échoué, alors on déclare que n est 1 probablement premier avec un risque d’erreur . 4N V) Test de primalité de Lucas-Lehmer Théorème-1 (1891, Lucas- 1927, Lehmer) Un entier n > 2 est premier, si et seulement si, il existe un entier x; n 1 2 x n 1, tel que xn 1 1[n] et x p 6 1[n] pour tout diviseur premier p de n 1. Preuve )= n 1 xn 1 1[n] et x p 6 1[n] pour tout diviseur premier p de n 1 signi…e que x est un élément d’ordre n 1 dans le groupe ((Z=nZ) ; ), ainsi 7 (Z=nZ) = (Z=nZ) f0g, alors pgcd(n; k) = 1 pour tout k = 1; 2; :::; n 1; donc n est premier. (= Si n est premier, alors le groupe ((Z=nZ) ; ) est d’ordre n 1 et cyclique, il su¢ t de prendre x tel que x soit un générateur du groupe cyclique ((Z=nZ) ; ). Exemple-1 n = 11 132 878 997 n 1 = 11 132 878 996 = 22 15 359 181 211 On choisit x = 2 211 132 878 996 1[11 132 878 997] 11 132 878 996 2 11 132 878 996[11 132 878 997] 2 11 132 878 996 15 359 2 2498 508 272[11 132 878 997] 11 132 878 996 181 211 2 1257 025 669[11 132 878 997] Donc d’après le théorème de Lucas-Lehmer, n = 11 132 878 997 est premier. VI) Distribution des nombres premiers. Notons la fonction de comptage des nombres premiers. Pour tout réel x positif, (x) est le nombre des nombres premiers inférieurs ou égaux à x. Par exemple : (1) = 0; (5; 2) = 3; (100) = 25. Théorème-1 (des nombres premiers) (1896, Hadamard, De la Vallée Poussin) Quand x tend vers l’in…ni, on a x ln x (x) (ce qui signi…e que lim x!+1 (x) ln x = 1) x Preuve : à admettre. Théorème-2 (1850, inégalité de Chebyshev) Pour tout réel x 30, on a 0; 9 x ln x (x) 1; 2 x ln x Preuve : à admettre. Corollaire-1 (1845, Postulat de Bertrand) Pour tout entier n > 1 il existe un nombre premier p tel que 8 n < p < 2n Preuve (1850, Chebyshev) On véri…e facilement le postulat de Bertrand pour n < 30: Soit 8 un réel x 30, alors d’après l’inégalité de Chebyshev, on a 2x 2x > > (2x) 1; 2 < 0; 9 ln x ln 2x > x > : 1; 2 x (x) 0; 9 ln x ln x La somme donne 0:6 (ln x ln 4) x (2x) (x) > 0 car x 30, donc (2n) (n) > 0 (ln x)(ln 2x) pour tout entier n 30, comme (2n) (n) est un entier, donc (2n) (n) 1 pour tout entier n 30. Conclusion : il existe un nombre premier p tel que n < p < 2n: ——————————————————— 9