Telechargé par Manel MH

Test-primalite bhloul

publicité
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
Téléchargement