Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin...

40
Théorème des restes chinois Exponentiation rapide par répétition de carrés Anneaux ( Z nZ, + ) Groupe ( Z nZ ) × des éléments inversibles de ( Z nZ, + ) Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay Université Paris-Sud, France 1. Complément culturel sur la division euclidienne (Peut être ignoré en première lecture) Les mathématiciens connaissent la probabilité asymptotique que deux nombres entiers choisis au hasard soient premiers entre eux, elle vaut : Card 1 6 a, b 6 N : a b =1 N 2 = 6 π 2 +O log N N . Cette constante 6 π 2 est la même que dans le résultat qui détermine la probabilité qu’un nombre entier n’ait pas de facteurs premiers répétés : Card 1 6 n 6 N : n n’a pas de facteurs carrés N = 6 π 2 +O 1 N . Toutefois, dans ce cours, nous ne pourrons pas démontrer ces résultats avancés. Tout ce qui suit dans cette section pourra aussi être admis, sans chercher à résoudre les exercices qui se dégagent implicitement d’énoncés attractifs. Pour deux entiers 1 6 b 6 a, notons : (a, b)= (r 0 ,r 1 ) 1

Transcript of Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin...

Page 1: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

Théorème des restes chinoisExponentiation rapide par répétition de carrés

Anneaux(Z/nZ, +

)Groupe

(Z/nZ)× des éléments inversibles de

(Z/nZ, +

)Test de primalité de Miller-Rabin

Nombres de Carmichael

François DE MARÇAY

Département de Mathématiques d’OrsayUniversité Paris-Sud, France

1. Complément culturel sur la division euclidienne(Peut être ignoré en première lecture)

Les mathématiciens connaissent la probabilité asymptotique que deux nombres entierschoisis au hasard soient premiers entre eux, elle vaut :

Card{

1 6 a, b 6 N : a ∧ b = 1}

N2=

6

π2+ O

(logN

N

).

Cette constante 6π2 est la même que dans le résultat qui détermine la probabilité qu’un

nombre entier n’ait pas de facteurs premiers répétés :

Card{

1 6 n 6 N : n n’a pas de facteurs carrés}

N=

6

π2+ O

(1√N

).

Toutefois, dans ce cours, nous ne pourrons pas démontrer ces résultats avancés. Tout cequi suit dans cette section pourra aussi être admis, sans chercher à résoudre les exercicesqui se dégagent implicitement d’énoncés attractifs.

Pour deux entiers 1 6 b 6 a, notons :

`(a, b) = `(r0, r1)1

Page 2: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

2 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

le nombre d’étapes de division qui interviennent lorsqu’on applique l’algorithme d’Eu-clide :

r0 = q1 r1 + r2,

r1 = q2 r2 + r3,

. . . . . . . . .

ri−1 = qi ri + ri+1,

. . . . . . . . .

r`−2 = q`−1 r`−1 + r` ,

r`−1 = q` r` + 0,

De ces relations découle :`(r0, r1) = 1 + `(r1, r2),

= 2 + `(r2, r3),

· · · · · · · · · · · · · · · · · · · · · · · ·= `− 1 + `(r`−1, r`)

= `.

On peut aussi montrer qu’après élagage du pgcd :

a = a′ · pgcd(a, b) et b = b′ · pgcd(a, b),

on a égalité :`(a, b) = `(a′, b′).

Il découle de ces observations que les temps d’effectuation de l’algorithme d’Euclidepeuvent varier de manière très forte pour des nombres voisins : par exemple `(a, b) et`(a, b+ 1) peuvent être très différents, en fonction de la taille des pgcd respectifs.

La suite de Fibonacci :F0 = 1,

F1 = 1,

Fn+2 = Fn+1 + Fn,

lorsqu’on la lit à l’envers en partant d’un élément F` pour redescendre jusqu’à F0 = 1prédit à coup sûr le nombre d’étapes :

F` = 1 · F`−1 + F`−2,

F`−1 = 1 · F`−2 + F`−3,

· · · · · · · · · · · · · · · · · · · · · · · ·F1 = 1 · F0 + 0.

Théorème 1.1. [Lamé 1844] Si, pour deux nombres entiers :

1 6 b < a,

l’algorithme d’Euclide requiert un nombre fixé ` d’étapes, alors les plus petites valeurs dea et de b sont :

a = F` et b = F`−1. �

Page 3: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

2. Théorème des restes chinois 3

Ensuite, lorsqu’on fixe a > 2, le nombre moyen d’étapes nécessaires jusqu’à ce quel’algorithme d’Euclide atteigne le pgcd pourrait être défini comme :

1

a

∑06b6a−1

`(a, b),

mais on constate, à cause des fluctuations terribles de `(a, b), que cette ‘valeur moyennecandidate’ fluctue encore trop.

Pour réduire ce bruit intempestif, une meilleure définition consiste à calculer la moyenneen ne considérant que les entiers b qui sont premiers avec a :

`(a) :=1

ϕ(a)

∑06b6a−1

pgcd(a,b) = 1

`(a, b),

où la fonction n 7−→ ϕ(n) appelée indicateur d’Euler, compte le nombre d’entiers m infé-rieurs à n qui sont premiers avec n :

ϕ(n) = Card{

1 6 m 6 n : m ∧ n = 1}.

Théorème 1.2. Asymptotiquement lorsque a −→∞, le nombre moyen de divisions `(a, b)qui interviennent lorsqu’on applique l’algorithme d’Euclide à des couples (a, b) avec 0 6b 6 a− 1 se comporte comme :

1

ϕ(a)

∑06b6a−1

pgcd(a,b) = 1

`(a, b) =12

π2log 2 log a+ C + O

(a−

16−ε),

où la constante C est la constante de Porter :

C = − 1

2+

6 log 2

π2

(4 γ − 24π2 ζ ′(2) + 3 log 2− 2

)≈ 1, 467 · · · .

Ici, γ est la constante d’Euler-Mascheroni :

γ = limN→∞

(1

1+

1

2+

1

3+

1

4+

1

5+ · · ·+ 1

N− logN

)= 0, 577215665 · · · ,

et ζ ′(2) est la dérivée au point 2 de la fonction ζ de Riemann :

ζ(s) =∞∑k=1

1

ks.

Mais ne nous effrayons pas ! Ce qui compte ici, c’est d’avoir entrevu que la théorie desnombres dispose de moyens d’investigation extraordinaires.

À présent, redescendons sur Terre !

2. Théorème des restes chinois

Soit maintenant A un anneau commutatif unitaire euclidien normal, muni donc d’unefonction de taille utile pour réaliser des divisions successives, et tel que tout élément a ∈ Apossède une unique forme normale ce qui permet de sélectionner des pgcd et des ppcmuniques.

Page 4: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

4 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Puisque nous travaillerons en fait principalement avec l’anneau le plus concret et leplus parlant qu’est A = Z, il est avisé de lire les énoncés de cette Section en remplaçantmentalement A partout par Z.

Soit aussi un nombre r > 1 quelconque d’éléments :

m0, m1, . . . , mr−1 ∈ A

qui sont premiers entre eux :

1 = pgcd(mi1 , mi2

)(06 i1<i2 6 r−1).

Soit aussi le produit de ces éléments :m := m0m1 · · · mr−1

= ppcm(m0,m1, . . . ,mr−1

).

Pour tout entier i avec 0 6 i 6 r−1, on a un homomorphisme d’anneaux par projection :

πi : A −→ A/〈mi〉

a 7−→ a modmi,

où la notation 〈b〉 désigne l’idéal engendré par un élément fixé b ∈ A :

〈b〉 :={c ∈ A : ∃ d ∈ A , c = d b

}.

En combinant tous ces r homomorphismes π0, . . . , πr−1, on peut introduire l’homomor-phisme produit direct :

Π = π0 × · · · × πr−1 : A −→ A/〈m0〉 × · · · ×A

/〈mr−1〉

a 7−→(amodm0, . . . , amodmr−1

).

Théorème 2.1. Cet homomorphisme Π a pour noyau l’idéal :

KerΠ = 〈m〉 =⟨m0m1 · · · mr−1

⟩,

et de plus, Π est surjectif.

Démonstration. Grâce au fait que les mi sont premiers entre eux, on vérifie pas à pas leséquivalences suivantes :

a ∈ KerΠ ⇐⇒(amodm0, . . . , amodmr−1

)=(0, . . . , 0

)⇐⇒ m0 | a, . . . , mr−1 | a⇐⇒ ppcm

(m0, . . . ,mr−1

)| a

⇐⇒ m | a,

ce qui fait voir que KerΠ =⟨m⟩.

Ensuite, pour ce qui est de la surjectivité de Π, il est avisé d’effectuer une interpolationde type Lagrange, et le lemme suivant réalise le préparatif nécessaire.

Lemme 2.2. Pour tout i = 0, 1, . . . , r − 1, il existe un élément `i ∈ A tel que :

Π(`i) ≡(0, . . . , 0, 1, 0, . . . , 0

)(modm0, . . . , modmi−1, modmi, modmi+1, . . . , modmr−1

),

où l’entrée 1 se situe à la place numéro i.

Page 5: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

2. Théorème des restes chinois 5

Démonstration. Si on applique l’algorithme d’Euclide étendu aux deux éléments :m

mi

= m0 · · ·mi−1mi+1 · · ·mr−1 et mi

qui sont visiblement premiers entre eux, i.e. qui satisfont :

1 = pgcd

(m

mi

, mi

),

à la fin des calculs de divisions successives, on trouve en tenant compte éventuellement denormalisations intermédiaires, une relation utile de type Bézout :

1 = sim

mi

+ timi,

pour certains éléments si, ti ∈ A .Or si nous posons alors :

`i := sim

mi

= sim0 · · ·mi−1mi+1 · · ·mr−1,

nous voyons immédiatement que :

`i ≡ 0 modm0, . . . , `i ≡ 0 modmi−1, `i ≡ 0 modmi+1, . . . , `i ≡ 0 modmr−1,

tandis que :`i = 1− timi

≡ 1 modmi,

ce qui montre que `i satisfait bien les conditions requises. �

Grâce à ces éléments `i, on peut alors effectuer une interpolation de type Lagrange.En effet, si nous partons d’un élément arbitraire dans l’espace d’arrivée de l’homomor-

phisme Π, noté par exemple :(a0modm0, a1modm1, . . . , ar−1modmr−1

),

alors l’élément interpolant :

a := a0 `0 + a1 `1 + · · ·+ ar−1 `r−1

est un antécédant recherché, puisque l’on vérifie :

Π(a) = Π(a0`0 + a1`1 + · · ·+ ar−1`r−1

)= a0 Π(`0) + a1 Π(`1) + · · ·+ ar−1 Π(`r−1)

≡ a0(1, 0, 0, . . . , 0, 0

)+ a1

(0, 1, 0, . . . , 0, 0

)+ · · ·+ ar−1

(0, 0, 0, . . . , 0, 1

)≡(a0, a1, . . . , ar−1

),

ce qui termine la démonstration du théorème. �

Théorème 2.3. Dans un anneau commutatif unitaire euclidien normal A , si m0, m1, . . .,mr−1 sont un nombre quelconque r > 1 d’éléments premiers entre eux, alors on a l’iso-morphisme d’anneaux :

A/⟨

m0m1 · · · mr−1⟩ ∼= A

/⟨m0

⟩× A

/⟨m1

⟩× · · · × A

/⟨mr−1

⟩,

Page 6: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

6 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

et de plus, on a l’isomorphisme de groupes multiplicatifs :(A/⟨

m0 · · · mr−1⟩)× ∼= (

A/⟨m0

⟩)×× · · · ×

(A/⟨mr−1

⟩)×.

Ici, dans un anneau commutatif unitaire B, le sous-groupe des inversibles est :

B× ={b ∈ B : il existe b′ ∈ B satisfaisant bb′ = b′b = 1

}.

Démonstration. La première affirmation découle du théorème qui précède, lorsqu’on sesouvient qu’à tout homomorphisme surjectif d’anneaux commutatifs :

Φ: A −→ B

est canoniquement associé, via un résultat connu, l’isomorphisme d’anneaux :

A/KerΦ ∼= B.

Quant à la seconde affirmation, les équivalences suivantes :

a inversible modulo m ⇐⇒ 1 = pgcd(a,m)

⇐⇒ 1 = pgcd(a,m0), . . . , 1 = pgcd(a,mr−1)

⇐⇒ a inversible modulo mi pour 0 6 i 6 r − 1

l’établissent. �

Algorithme: Restes chinois

• Entrées : Un nombre fini r > 2 d’entiersm0,m1, . . . ,mr−1 ∈ A premiers entre eux,ainsi que des éléments quelconques a0, a1, . . . , ar−1 ∈ A d’un anneau euclidiennormal.

• Sorties : Un élément a ∈ A satisfaisant a ≡ ai modmi pour tout i = 0, 1, . . . , r−1.

• Algorithme :� m←− [ m0m1 · · ·mr−1.� Pour 0 6 i 6 r − 1 faire

calculer m/mi

appeler l’algorithme d’Euclide étenduafin de calculer deux multiplicateurs de Bézoutsi

mmi

+ timi = 1

ci ←− [ reste(aisi divisé parmi

)� Retourner c0 m

m0+ c1

mm1

+ · · ·+ cr−1m

mr−1.

Par exemple, pour r = 2, m0 = 11, m1 = 13, d’où :

m = 11 · 13 = 143,

et pour a0 = 2, a1 = 7, il s’agit de trouver a ∈ Z unique avec 0 6 a 6 m− 1 tel que :a ≡ 2 mod 11,

a ≡ 7 mod 13.

La relation de Bézout entre 11 et 13 fournie par l’algorithme d’Euclide étendu est alors :

6 · 13 + (− 7) · 11 = 1,

Page 7: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

4. Exponentiation rapide par répétition de carrés dans les anneaux quotients 7

et donc dans les identités :s0

mm0

+ t0m0 ≡ 1,

s1mm1

+ t1m1 ≡ 1,

on peut choisir :s0 = 6, t0 = − 7,

s1 = − 7, t1 = 6.

Enfin, on a :c0 = a0s0 restemodm0 = 2 · 6 restemod 11 = 1,

c1 = a1s1 restemodm1 = 7 · (− 7) restemod 13 = 3,

et donc :a = c0

mm0

+ c1mm1

= 1 · 13 + 3 · 11

= 46,

résultat qui est confirmé par la vérification suivante :

46 = 2 + 11 · 4◦,46 = 7 + 13 · 3◦.

3. Division euclidienne dans les anneaux quotients

Grâce à une relation de type Bézout, on démontre aisément (exercice) le résultat suivant,qui possède de très nombreuses applications sur ordinateur.

Théorème 3.1. Dans l’anneau quotient :

A/⟨m⟩

d’un anneau commutatif unitaire euclidien normal A par un de ses éléments non nulm ∈ A \{0}, tout élément a premier avec m possède un inverse a−1 qui est calculablede manière effective.

Indication: Utiliser l’existence d’éléments s, t ∈ A satisfaisant :

1 = sa+ tm. �

4. Exponentiation rapide par répétition de carrés

Soit maintenant un anneau commutatif unitaire A quelconque, pas forcément euclidien.

Question 4.1. Comment calculer rapidement les grandes puissance entières :

an (n∈N)

d’un élément quelconque a ∈ A , notamment dans le cas très concret A = Z.

L’itération naïve :

a, a2, a3, a4, a5, . . . . . . , an−2, an−1, an

est à proscrire, car elle exige n multiplications successives d’éléments dont la taille granditexponentiellement.

Page 8: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

8 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Une meilleure idée, qui conduit à un nombre très inférieur d’opérations, de l’ordre delog2n au lieu de n, consiste en fait ici à décomposer l’entier n sous forme binaire (en base2) :

n = 2k + nk−1 2k−1 + · · ·+ n1 2 + n0,

avec des entrées :nk−1, . . . , n1, n0 ∈ {0, 1},

et à appliquer l’algorithme suivant, dont la formulation quelque peu « cabalistique » seraimmédiatement suivie d’éclaircissements lumineux.

Algorithme: Exponentiation rapide

• Entrées : Un élément a ∈ A et un exposant n > 1.

• Sortie : La valeur an.

• Algorithme :� Représentation binaire

n = 2k + nk−1 2k−1 + · · ·+ n1 2 + n0

� bk ←− [ a� Pour i = k − 1, k − 2, . . ., 1, 0, faire

si ni = 1 faire bi ←− [ b2i+1 aautrement faire bi ←− [ b2i+1

� Retourner b0

Par exemple, en partant de la représentation dyadique :

13 = 23 + 1 · 22 + 0 · 21 + 1 · 20,

cet algorithme dit qu’il faut procéder comme suit pour calculer la puissance 13-ème d’unélément quelconque a ∈ A :

a13 =((a2 · a

)2)2 · a,affirmation qui exige encore quelques explications.

En effet, l’algorithme général ci-dessus travaille avec les expressions intermédiaires sui-vantes, pour 0 6 i 6 n :

bi := aEntn

2i

= aEnt2k+nk−12

k−1+···+n121+n0

2i ,

en partant du haut pour i = k :

bk = aEnt2k+nk−12

k−1+···+n121+n0

2k

= a,

pour redescendre d’un cran à i = k − 1 :

bk−1 = aEnt2k+nk−12

k−1+···+n121+n0

2k−1 = aEnt2k+nk−12

k−1

2k−1 =

{a2 lorsque nk−1 = 0,

a2 · a lorsque nk−1 = 1,

Page 9: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

4. Exponentiation rapide par répétition de carrés dans les anneaux quotients 9

et ainsi de suite. Dans le cas de n = 13, les valeurs successives b3, b2, b1, b0 (finale) sontalors effectivement :

b3 = a,

b2 = (b3)2 · a = a2 · a,

b1 = (b2)2 =

(a2 · a

)2,

b0 = (b1)2 · a =

((a2 · a

)2)2 · a,comme cela vient d’être annoncé il y a quelques secondes.

Il se trouve que c’est dans les anneaux quotients Z/ν Z que cet algorithme d’exponen-

tiation rapide fonctionne de la manière la plus performante, grâce au fait que la réductionmodulo ν réfrène constamment la propension qu’ont les entiers à exploser en taille.

Soit en effet par exemple à calculer :

813 mod 17.

La méthode naïve s’imaginera qu’il suffit de calculer d’abord indépendamment :

813 = 549 755 813 888,

pour diviser ensuite ce très grand nombre — inférieur toutefois au nombre total d’euros quisont soustraits aux impôts citoyens de tous les pays du monde et qui sont planqués dans dessociétés-écrans offshore domiciliées à Panama ou dans les îles anglo-normandes — par 17.

Mais il est beaucoup plus astucieux d’appliquer l’algorithme d’exponentiation rapideen réduisant modulo 17 à chaque étape de calcul, ce qui conduira aux actions suivantes,volontairement très détaillées :

813 =((

82 · 8)2)2 · 8

≡((− 4 · 8

)2)2 · 8≡((− 2)2)2 · 8

≡ 42 · 8≡ 16 · 8≡ −1 · 8≡ 9.

Algorithme: Exponentiation rapide modulo m

• Entrées : Un élément a ∈ A , un module entier m > 2 et un exposant n > 1.

• Sortie : La valeur an modm.

• Algorithme :� Représentation binaire

n = 2k + nk−1 2k−1 + · · ·+ n1 2 + n0

� bk ←− [ a� Pour i = k − 1, k − 2, . . ., 1, 0, faire

si ni = 1 faire bi ←− [ b2i+1 a modm

Page 10: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

10 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

autrement faire bi ←− [ b2i+1 modm

� Retourner b0 modm

En 1758, Euler a découvert que le cinquième nombre de Fermat :

225 + 1 = 4 294 967 297,

très inférieur, en euros, aux plus grandes fortunes de France protégées de l’impôt avec leconsentement passif des législateurs, n’est pas un nombre premier, et qu’il est divisiblepar :

641∣∣ 225 + 1.

Pour voir cela de la manière la plus économique qui soit, Euler se propose un petitentraînement qui consiste à calculer — à la main mon cher Watson ! — le nombre :

7160,

et Euler commence par calculer, toujours modulo 641, les nombres successifs :

72, 74, 78, 716, 732, 764, 7128,

en prenant bien sûr les carrés des nombres qui précèdent, et avec la petite astuce micro-géniale qui passe en douce, Euler récupère le résultat intermédiaire 732 qu’il n’a qu’à reliresur son manuscrit, pour calculer enfin :

7160 = 7128 · 732,

le tout modulo 641 à chaque étape 1.Mais ce ne sont pas les puissances de 7 qui l’intéressent, c’est le cinquième nombre de

Fermat :

Théorème 4.2. [Euler 1732] Contrairement à ce que Fermat affirmait, le nombre 225 + 1n’est pas un nombre premier, et il est divisible par le nombre premier 641, à savoir on a :

225 ≡ − 1 mod 641.

Démonstration. Il suffit de partir d’un nombre encore trop petit pour que sa réduction mo-dulo 641 commence à prendre effet, par exemple :

223 = 28 = 256 mod 641,

1. Pour rendre transparente la difficulté, mentionnons que :

732 = 1104427674243920646305299201,

et pour faire transpirer un peu plus les électrons-esclaves de Sage, ajoutons que :

7128 = 1487815647197611695910312681741273570332356717154

798949898498305086387315423300999654757561928633305897036801,

ce qui, au final, devrait donner quelque chose d’aussi astronomique que :

7160 = 164318477493817185791700041055654480634183741959952349706976

4671233207565562287891877564323818254449486910838997871467298047369612896001,

tandis que, modulo 641, tout reste sur Terre, puisqu’on trouve −1 mod 641 comme résultat final !

Page 11: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

4. Exponentiation rapide par répétition de carrés dans les anneaux quotients 11

pour monter ensuite deux crans plus haut tout en réduisant modulo 641 chaque fois quecela est possible :

225 ≡((

223)2)2

≡((

256)2

mod 641)2

mod 641

≡(

65536 mod 641)2

≡(154)2

mod 641

≡ 23716 mod 641

≡ − 1 mod 641,

ce qui conclut en beauté cette découverte dialectique fantastique. �

En effet, la découverte d’Euler était fantastique : arrêtons-nous quelques instants pouren dire plus.

Définition 4.3. Pour n > 0 entier, le n-ème nombre de Fermat est :

Fn := 22n + 1.

Ces nombres doivent leur nom au mathématicien français Pierre de Fermat (1601–1665)qui émit la conjecture erronée que tous ces nombres étaient premiers.

Ironie cinglante : tous les nombres de Fermat connus, depuis F5, F6, F7, . . ., jusqu’à :

F32 = 2232 + 1,

ne sont pas premiers.

Assertion 4.4. Les seuls nombres de Fermat premiers connus sont donc :

F0 = 3, F1 = 5, F2 = 17, F3 = 257, F4 = 65537.

En 1640, dans une lettre adressée à Bernard Frénicle de Bessy, Pierre de Fermat énonceson petit théorème, puis il commente :

Et cette proposition est généralement vraie en toutes progressions et en tousnombres premiers ; de quoi je vous envoierois la démonstration, si je n’appréhendoisd’être trop long.

Dans cette même lettre, il émet la conjecture que ces nombres sont tous premiers, quoi-qu’il reconnaisse :

Je n’ai pu encore démontrer nécessairement la vérité de cette proposition.

Mais cette hypothèse le fascine littéralement.Deux mois plus tard, dans une lettre à Marin Mersenne, il écrit en effet :

Si je puis une fois tenir la raison fondamentale que 3, 5, 17, etc. sont nombrespremiers, il me semble que je trouverai de très belles choses en cette matière, car j’aidéjà trouvé des choses merveilleuses dont je vous ferai part.

Il écrit encore à Blaise Pascal :Je ne vous demanderais pas de travailler à cette question si j’avais pu la résoudre

moi-même.

Page 12: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

12 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Dans une lettre à Kenelm Digby, non datée mais envoyée en copie par Digby à JohnWallis le 16 juin 1658, Fermat donne encore sa conjecture comme non démontrée. Tou-tefois, dans une lettre de 1659 à Pierre de Carcavi, il s’exprime en des termes qui, seloncertains commentateurs, impliquent qu’il estime avoir trouvé une démonstration.

Mais en 1732, le jeune Leonhard Euler, à qui Christian Goldbach avait signalé cetteconjecture trois ans auparavant, la réfute spectaculairement :

F5 = 225 + 1 est divisible par 641.

Or la motivation initiale de Fermat était de trouver une formule qui produise une infinitéde nombres premiers 2. Il connaissait la proposition élémentaire suivante :

Lemme 4.5. Si k > 1 est un entier tel que le nombre 2k + 1 est premier, alors k est unepuissance de 2.

Démonstration. Il existe un entier a ∈ 2N + 1 impair et un entier b > 0 tels que :

k = a 2b.

En posant c := 22b , on dispose alors des égalités suivantes :

1 + 2k = 1 + 2a 2b

= 1 + ca

= (1 + c)a−1∑i=0

(−1)i ci,

lesquelles montrent que 1+c serait un diviseur du nombre premier 1+2k si on avait a > 2,ce qui est impossible, donc a = 1 et enfin k = 2b. �

Fermat a conjecturé (erronément, comme on l’a vu) que la réciproque de ce lemme étaitvraie, après avoir confirmé (aisément) que les cinq premiers nombres :

F0 = 3,

F1 = 5,

F2 = 17,

F3 = 257,

F4 = 65537,

sont tous premiers.De nos jours encore, on ignore cruellement s’il existe d’autres nombres de Fermat qui

sont premiers. On sait que F5, F6, . . ., F32 sont tous composés, mais on ne sait pas si F33

est premier ou composé.Le plus grand nombre de Fermat dont on sait qu’il est composé est :

F2 747 499,

et on sait que l’un de ses diviseurs est :

57 · 22 747 499 + 1.

En fait, Euler avait démontré le :

2. On peut démontrer qu’il n’existe aucune formule ayant cette propriété.

Page 13: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

4. Exponentiation rapide par répétition de carrés dans les anneaux quotients 13

Théorème 4.6. Tout facteur premier p d’un nombre de Fermat Fn est de la forme :

k 2n+1 + 1,

où k est un entier.

Démonstration. Modulo p, le nombre Fn est congru à 0 donc 22n est congru à − 1 modulop :

22n ≡ − 1 mod p,

d’où en prenant les carrés : (22n)2

= 22n+1 ≡ 1 mod p,

si bien que l’ordre multiplicatif de 2 dans le groupe(Z/pZ)× est égal à 2n+1. Or cet ordre

multiplicatif est un diviseur de p− 1, ce qui termine la démonstration. �

Ceci permet d’ailleurs à Euler de trouver rapidement par une autre voie que F5 estdivisible par 641.

En effet, on cherche un entier k tel que le nombre :

p = k 26 + 1 = 64 k + 1

soit à la fois premier et diviseur strict de F5. Les premières valeurs de k ne conviennentpas, mais dès k = 10, on constate que p = 641 est premier et que modulo p, on a :

54 · 232 =(5 · 28

)4=(5 · 128 · 2

)4=(640 · 2

)4 ≡ (−2)4 mod 641 ≡ 16 mod 641,

et par ailleurs :

54 · 232 ≡(54 mod 641

)× 232 ≡

(625 mod 641

)× 232 ≡ − 16× 232 mod 641,

d’où en comparant ces deux résultats :

16mod 641 ≡ − 16× 232mod 641,

et enfin, après division par 16 qui est premier avec 641 :

232 ≡ −1 mod 641,

ce qui montre bien que F5 est divisible par 641.Le cas général est un problème difficile du fait de la taille des entiers Fn, même pour

des valeurs relativement faibles de n.Aujourd’hui, le plus grand nombre de Fermat dont on connaisse la factorisation com-

plète est F11, et le plus grand de ses cinq diviseurs premiers possède 560 chiffres. Les fac-torisations complètes des Fn, pour n entre 5 et 10, sont, elles aussi, entièrement connues.

En ce qui concerne F12, on sait qu’il est composé mais c’est le plus petit nombre deFermat dont on ne connaisse pas la factorisation complète.

Quant à F20, c’est le plus petit nombre de Fermat composé dont on ne connaisse aucundiviseur premier.

En géométrie, le théorème de Gauss-Wantzel énonce une condition nécessaire et suffi-sante pour qu’un polygone régulier soit constructible à la règle et au compas.

Théorème 4.7. [Gauss-Wantzel] Un polygone régulier à n côtés inscrit dans un cercle derayon 1 dans le plan euclidien est constructible à la règle et au compas si et seulement sin est le produit d’une puissance de 2 et d’un nombre fini de nombres premiers de Fermatdistincts. �

Page 14: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

14 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Ainsi un polygone à n côtés est constructible à la règle et au compas pour les valeurs :

n = 3, 4, 5, 6, 8, 10, 12, 15, 16, 17, 20, 24, . . . ,

tandis qu’il n’est pas constructible pour les valeurs :

n = 7, 9, 11, 13, 14, 18, 19, 21, 22, 23, 25, . . . .

Par exemple, la construction à la règle et au compas de l’heptagone régulier est impos-sible car le nombre premier 7 n’est pas de Fermat.

L’entier 9 = 32 est le carré d’un nombre premier de Fermat, donc l’ennéagone réguliern’est pas constructible non plus.

Ironie fermatique : comme on ne connaît pour l’instant que cinq nombres de Fermatpremiers, les seuls entiers n auxquels s’applique le théorème de Gauss-Wantzel sont de laforme :

n = 2a 30 ou 1 50 ou 1 170 ou 1 2570 ou 1 655370 ou 1,

où a > 1 est un entier quelconque.

5. Anneaux(Z/nZ,+

)Dans la suite, on notera :

P ={

2, 3, 5, 7, 11, 13, 17, 19, . . .}

l’ensemble des nombres premiers.Voici d’ailleurs la liste complète de ceux qui sont inférieurs à 1 000 :

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61,

67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137,

139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211,

223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283,

293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379,

383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461,

463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563,

569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643,

647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739,

743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829,

839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937,

941, 947, 953, 967, 971, 977, 983, 991, 997.

Définition 5.1. Rappelons que pour tout entier n > 1, le quotient :(Z/nZ, +

)= Z modulo nZ={

0, 1, 2, 3, . . . , n− 1}modn

désigne l’ensemble des nombres entiers a ∈ Z identifiés lorsqu’ils diffèrent d’un multiplede n :

a ≡ a′ modn ⇐⇒ a− a′ = est divisible par n.

Page 15: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

5. Anneaux(Z/nZ,+

)15

Cet ensemble n’est pas seulement un groupe additif, c’est aussi un anneau commutatif(exercice). La démonstration du résultat suivant est aussi laissée en exercice de révision (ilsuffit d’utiliser une relation de Bézout).

Théorème 5.2. Si p > 2 est un entier, les trois conditions suivantes sont équivalentes :

(i) p ∈P est premier ;

(ii) l’anneau Z/pZ est intègre ;

(iii) l’anneau Z/pZ est un corps. �

Les groupes élémentaires que nous allons considérer ici seront tous de cardinal fini, etd’ailleurs aussi, ils seront commutatifs.

Définition 5.3. Un ensemble G de cardinal fini est appelé un groupe (abstrait) s’il existeune opération interne :

G×G −→ G

(g, g′) 7−→ g · g′

souvent notée sans symbole spécifique, comme l’est la « multiplication » entre nombresréels, qui est associative :

g1 · (g2 · g3) = (g1 · g2) · g3 (∀ g1, g2, g3 ∈G),

avec la propriété qu’il existe un unique élément neutre e ∈ G satisfaisant :

e · g = g · e (∀ g ∈G),

et avec la propriété que tout élément g ∈ G admet un unique inverse g−1 ∈ G satisfaisant :

e = g · g−1 = g−1 · g (∀ g ∈G).

Par exemple : (Z/nZ, +

)est manifestement un groupe commutatif pour l’opération d’addition · = +, l’élémentneutre étant :

e = 0.

Il est connu qu’on peut se représenter la liste de tous les éléments de Z/nZ comme étant :

Z/nZ =

{0, 1, 1 + 1, 1 + 1 + 1, . . . , 1 + 1 + · · ·+ 1︸ ︷︷ ︸

n−1 fois

}modn,

avec bien entendu un retour-en-boucle à 0 lorsqu’on ajoute encore +1 au dernier élément :

0 = 1 + 1 + · · ·+ 1 + 1︸ ︷︷ ︸n fois

.

Sans démonstrations, rappelons encore d’autres résultats utiles de théorie élémentairedes groupes finis.

Théorème 5.4. Dans un groupe fini G, on a pour tout élément g ∈ G :

gCard g = e. �

Page 16: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

16 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Évidemment, lorsque k > 1 est un entier, on abrège ici :

gk = g · · · · · g︸ ︷︷ ︸k fois

,

avec par convention :g0 = e.

Définition 5.5. L’ordre d’un élément g ∈ G appartenant à un groupe fini G est l’entier :

ord(g) = min{k ∈ N>1 : gk = e

}.

Non seulement cet entier est 6 CardG, mais encore, on démontre qu’il divise toujoursce cardinal :

ord(g) |CardG.Plus généralement, on a un résultat classique, non redémontré ici.

Théorème 5.6. [Lagrange] Le cardinal de tout sous-groupe :

H ⊂ G

d’un groupe fini G divise iceluy :

CardH∣∣CardG. �

Définition 5.7. Un groupe fini G est dit cyclique lorsqu’il contient au moins un élément :

g ∈ G

qui l’engendre complètement :

G ={e, g1, g2, g3, . . . , gCard g−1

},

avec bien entendu le retour-à-zéro-en-boucle :

g gCard g−1 = gCard g = e.

En particulier, Z/nZ est cyclique, puisque son élément :

1 modn

l’engendre trivialement.Du point de vue de la théorie des groupes abstraits finis, les groupes cycliques sont vrai-

ment les plus simples qui soient. On vérifie (exercice) que tout groupe cyclique est commu-tatif, ce qui, d’ailleurs, découle aussi instantanément du résultat fondamental et élémentairesuivant.

Théorème 5.8. Tout groupe cyclique de cardinal fini égal à un entier n > 1 est isomorpheà(Z/nZ, +

). �

Oui ! L’isomorphisme est intuitivement immédiat ! Car il suffit de lire les puissances :

gk ←→ k modn.

Question 5.9. Peut-on décrire tous les sous-groupes de :(Z/nZ, +

)?

La réponse est oui, et nous allons rappeler la solution (il existe d’autres problèmes desous-groupes beaucoup plus difficiles que celui-là !). Commençons par un résultat flagrant :

Page 17: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

5. Anneaux(Z/nZ,+

)17

Théorème 5.10. Si un groupe abstrait fini G est cyclique, alors tout sous-groupe :

H ⊂ G

est lui aussi fini cyclique.

Démonstration. Puisque H ⊂ G, on a en effet :

CardH 6 CardG < ∞.Notons pour abréger :

m := CardH, n := CardG.

Par hypothèse de cyclicité, il existe un élément g ∈ G tel que :

G ={

1, g, g2, . . . , gn−1}.

Maintenant, introduisons astucieusement l’entier :

` := min{

1 6 k 6 n− 1: gk ∈ H}.

Assertion 5.11. Alors l’élément du sous-groupe H :

h := g`

l’engendre complètement :

H ={e, h1, h2, . . . , hm−1

}.

Démonstration. Puisque h ∈ H , il est évident que la collection infinie de toutes ses puis-sances h1, h2, h3, . . ., appartient encore à H , et on sait que cette collection effectue uneboucle :

hCardH = e.

D’un autre côté, si h′ ∈ H\{e} est un élément quelconque, nous devons faire voir qu’ils’écrit comme une certaine puissance de h.

Or comme h′ ∈ G appartient au groupe cyclique G, il existe un entier 1 6 k′ 6 n − 1tel que :

h′ = gk′.

Par définition de `, on a k′ > `, donc on peut diviser k′ par `, ce qui donne :

h′ = gk′

= gq′`+r′ ,

avec bien entendu un reste qui satisfait :

0 6 r′ 6 `− 1,

et comme on peut inverser tout élément dans un groupe, on déduit de cette dernière équationque :

gr′

= h′︸︷︷︸∈H

g− q′ `︸ ︷︷ ︸

∈H

,

et enfin par minimalité de `, l’appartenance de gr′ à H ne peut se produire que pour r′ = 0.Au final :

h′ =(g`)q′

= hq′

s’écrit bien comme une certaine puissance de h. �

Page 18: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

18 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Ainsi, H est engendré comme suite de puissances (cycliques) d’un de ses éléments, cequi conclut. �

L’application aux sous-groupes de(Z/nZ,+

)est alors transparente. Rappelons que

dans un groupe fini, le cardinal de tout sous-groupe fini divise celui du groupe ambiant.

Théorème 5.12. Soit un entier quelconque n > 2. Pour tout diviseur d de n, il existe ununique sous-groupe de : (

Z/nZ,+

)de cardinal égal à d, et ce sous-groupe, explicitement constitué des d éléments :{

0, 1 · nd, 2 · n

d, 3 · n

d, . . . . . . , (d− 1) · n

d

}modn,

est isomorphe à : (Z/dZ, +

).

Il faut bien noter que lorsque d parcourt les diviseurs de n, on peut obtenir de la sorteun fort grand nombre de sous-groupes.

Par exemple, puisque la liste complète des diviseurs de n = 12 est :

1, 2, 3, 4, 6, 12,

ce théorème fait naître tous les sous-groupes cycliques suivants :

Z/

1Z = {0}, Z/

2Z, Z/

3Z, Z/

4Z, Z/

6Z, Z/

12Z,

qui sont d’ailleurs organisés en treillis de sous-groupes subtilement inclus les uns dans lesautres :

Z/

12Z

vvvvvvvvv

HHHHHHHHH

55555555555555555

Z/

4Z

55555555555555555Z/

6Z

kkkkkkkkkkkkkkkkkkkk

Z/

2Z

HHHHHHHHHZ/

3Z

vvvvvvvvv

{0},tout segment signifiant que le groupe en dessous est un sous-groupe du groupe au-dessus,toute absence de segment signifiant qu’un Z

/pZ n’est pas un sous-groupe d’un Z

/qZ, pour

p 6 q.

Démonstration du Théorème 5.12. Soit donc d un diviseur quelconque de n. Évidemment,l’ensemble :

Hd :=

{0, 1 · n

d, 2 · n

d, 3 · n

d, . . . . . . , (d− 1) · n

d

}modn,

est de cardinal d, et c’est aussi un sous-groupe additif de(Z/nZ, +

), comme on le vérifie

(exercice).

Page 19: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

6. Groupe(Z/nZ

)× des éléments inversibles de(Z/nZ, +

)19

Soit maintenant par ailleurs :

K ⊂(Z/nZ, +

)un sous-groupe quelconque de cardinal CardH = d égal à un diviseur d de n.

Grâce au Théorème 5.10 qui précède, K est cyclique.

Autrement dit, il existe un élément a ∈ K d’ordre égal à CardK = d et qui engendre :

K ={

0, 1 · a, 2 · a, . . . , (d− 1) · a}modn,

avec donc aussi :

d a ≡ 0 modn,

i.e. il existe un entier k > 1 tel que :

d a = k n.

Mais alors l’élément :

a = kn

d

appartient manifestement au groupe Hd défini à l’instant, et ensuite, toutes les puissancesde a appartiennent encore Hd, d’où :

K ⊂ Hd,

et enfin, comme par hypothèse :

CardK = CardHd = d,

on ne peut qu’avoir K = Hd, ce qu’il fallait établir. �

Pour terminer sur les sous-groupes de(Z/nZ, +

), le résultat suivant détermine tous ses

générateurs cycliques.

Théorème 5.13. Soit un entier n > 2 quelconque et soit un entier 1 6 a 6 n− 1. Les troisconditions suivantes sont équivalentes :

(i) pgcd(a, n) = 1 ;

(ii) l’élément amodn est inversible dans(Z/nZ,+

);

(iii) l’élément amodn engendre :(Z/nZ, +

)={

0 · a, 1 · a, 2 · a, . . . , (n− 1) · a}.

Démonstration. C’est une conséquence (exercice) de la relation de Bézout :

1 = s a+ t n,

avec s, t ∈ N, les détails de révisions étant laissés au lecteur. �

Page 20: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

20 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

6. Groupe(Z/nZ)× des éléments inversibles de

(Z/nZ, +

)Ce résultat d’apparence élémentaire ouvre en faite de nouvelles questions, notamment

concernant la structure de l’ensemble des éléments inversibles :(Z/nZ)×

:={amodn : a possède un inverse a′ satisfaisant aa′ ≡ a′a ≡ 1modn

},

dont on vérifie (exercice) qu’il est stable par multiplication (résolution de l’exercice) :

1 = aa′ = a′a

1 = bb′ = b′b

}=⇒ 1 = abb′a′ = b′a′ab,

ce qui munit(Z/nZ)× d’une structure de groupe multiplicatif, comme le signale le sym-

bole «× » en exposant.

Définition 6.1. Pour tout entier n > 2, l’indicateur d’Euler est la fonction :

ϕ(n) = Card{

1 6 a 6 n− 1: pgcd(a, n) = 1}

= Card(Z/nZ)×

= Card{a ∈ Z

/nZ :

{0, a, 2 a, 3 a, . . . , (n− 1) a

}= Z

/nZ} .

Trois exemples :(Z/

6Z)×

={

1, 5},(

Z/

10Z)×

={

1, 3, 7, 9},(

Z/

21Z)×

={

1, 2, 4, 5, 8, 10, 11, 13, 16, 17, 19, 20}.

Mais ces trois exemples concrets font surgir un problème : comment s’effectue la table demultiplication dans le groupe des éléments inversibles

(Z/nZ)× ?

Comparé à l’addition qui s’effectuait si facilement dans(Z/nZ, +

), il semble que la

multiplication se comporte de manière assez chaotique.

Table de multiplication de(Z/6Z)× :

× 1 5

1 1 5

5 * 1

Table de multiplication de(Z/10Z

)× :

× 1 3 7 9

1 1 3 7 9

3 * 9 1 7

7 * * 9 3

7 * * * 1

Page 21: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

6. Groupe(Z/nZ

)× des éléments inversibles de(Z/nZ, +

)21

Table de multiplication de(Z/21Z

)× :

× 1 2 4 5 8 10 11 13 16 17 19 20

1 1 2 4 5 8 10 11 13 16 17 19 20

2 * 4 8 10 16 20 1 5 11 13 17 19

4 * * 16 20 11 19 2 10 1 5 13 17

5 * * * 4 19 8 13 2 17 1 11 16

8 * * * * 1 17 4 20 2 10 5 13

10 * * * * * 16 5 4 13 2 1 11

11 * * * * * * 16 17 8 19 20 10

13 * * * * * * * 1 19 11 16 8

16 * * * * * * * * 4 20 10 5

17 * * * * * * * * * 16 8 4

19 * * * * * * * * * * 4 2

20 * * * * * * * * * * * 1

Pour l’instant, face à ces difficultés, contentons-nous de mentionner que la notion degroupe des inversibles possède un sens au sein de structures algébriques générales.

Définition 6.2. Dans un anneau commutatif unitaire A , l’ensemble :

A × :={a ∈ A : il existe a′ ∈ A satisfaisant aa′ = a′a = 1

},

est un groupe pour l’opération de multiplication.

Contentons-nous aussi d’observer que lorsque l’entier :

n = p ∈ P

est un nombre premier quelconque, il est clair que tous les entiers qui lui sont inférieurs :

1, 2, 3, . . . , (p− 1)

sont premiers avec p, et donc :

ϕ(p) = p− 1 (p∈P).

Autrement dit :Card

(Z/pZ)×

= p− 1 (p∈P).

Alors le Théorème 5.4 qui dit que tout élément g ∈ G d’un groupe fini satisfait gCardG =e se lit ici comme le célèbre :

Théorème 6.3. [Petit Fermat] Si p ∈ P est un nombre premier, alors pour tout entier1 6 a 6 p− 1, on a :

ap−1 ≡ 1 mod p. �

Page 22: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

22 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Plus généralement, lorsque n > 2 est un entier quelconque, nous venons de voir que :

Card(Z/nZ, +

)= ϕ(n),

et à nouveau, une application instantanée du même Théorème 5.4 donne le :

Théorème 6.4. [Euler] Dans Z/nZ, tout entier 1 6 a 6 n− 1 premier avec n :

a ∧ n = 1

satisfait :aϕ(n) ≡ a modn. �

Concernant l’indicateur d’Euler, on a par exemple :

ϕ(12) = 4,

puisque {1, 5, 7, 11} sont, comme on peut le vérifier en catimini, les seuls nombres comprisentre 1 et 12 qui sont premiers avec 12.

Il n’est pas difficile de calculer ϕ(n) pour tout entier n.Rappelons à cet effet que tout entier n ∈ N se décompose sous forme d’un produit de

facteurs premiers à certaines puissances, tous déterminés de manière unique :

n = pα11 p

α22 · · · pακκ ,

où :2 6 p1 < p2 < · · · < pκ,

sont les facteurs premiers distincts de n, et où les exposants sont tous strictement positifs :

α1 > 1, α2 > 1, . . . . . . , ακ > 1,

écriture que l’on peut aussi abréger au moyen d’une formule élégante ne comportant plusaucun indice :

n =∏p∈P

pvp(n),

où, par définition, la fonction :n 7−→ vp(n)

est la valuation p-adique qui capture l’exposant de p dans la représentation factorisée de n.Une conséquence du Théorème 2.3 des restes chinois est le résultat suivant, dont la

démonstration est abrégée sous forme d’exercice de lecture-révision.

Théorème 6.5. Sur toute puissance r-ème, avec r > 1, d’un nombre premier p ∈ P ,l’indicateur d’Euler vaut :

ϕ(pr)

= pr − pr−1 ,

puis si a ∧ b = 1 sont deux entiers premiers entre eux, il vaut sur leur produit :

ϕ(a b) = ϕ(a)ϕ(b),

et enfin, si un entier n est décomposé en produit de facteurs premiers, on a la formulegénérale :

ϕ(pα11 · · · pακκ

)= ϕ

(pα11

)· · ·ϕ

(pακκ)

=(pα11 − pα1−1

1

)· · ·(pακκ − pακ−1κ

) . �

Page 23: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

6. Groupe(Z/nZ

)× des éléments inversibles de(Z/nZ, +

)23

Démonstration. On vérifie en effet que les seuls nombres :

1 6 a 6 pr

qui ne sont pas premiers avec pr sont ceux qui s’écrivent :

a = p a′,

et le nombre de tels a′ est tout simplement égal à pr−1.Ensuite, la deuxième partie du Théorème 2.3 qui concerne le groupe des éléments in-

versibles d’un anneau commutatif unitaire :(A/⟨

m0 · · · mr−1⟩)× ∼= (

A/⟨m0

⟩)×× · · · ×

(A/⟨mr−1

⟩)×,

appliquée ici à notre situation, donne :(Z/pα11 · · · pακκ Z

)× ∼= (Z/pα11 Z)×× · · · ×

(Z/pακκ Z

)×,

et une simple prise de cardinal à droite et à gauche conclut. �

En tout cas, souvenons-nous qu’il ne faut pas confondre le groupe additif :(Z/pZ, +

)={

0, 1, 2, . . . , p− 1}mod p,

et le groupe des inversibles, muni de la multiplication :(Z/pZ)×

={

1, 2, . . . , p− 1},

puisque, comme nous venons de le voir, les tables de multiplication réservent des surprisesarithmétiques.

Heureusement, un résultat central rétablit une espèce de régularité dans tout ce désordredes tables de multiplication. La démonstration apparaît à la fin de cette Section.

Théorème 6.6. Si un nombre p ∈ P est premier, alors le groupe des éléments inversiblesmodulo p : (

Z/pZ)×

est un groupe cyclique de cardinal p− 1.

Mais il ne faut pas croire que cette structure de groupe cyclique soit facile à capturer ouà comprendre complètement.

Par exemple pour p = 17 ∈P , les 16 puissances de 3 :

30, 31, 32, 33, 34, 35, 36, 37,

38, 39, 310, 311, 312, 313, 314, 315,

décrivent tous les éléments de(Z/pZ)×, puisqu’on vérifié, à la main ou avec l’aide d’un

calculateur digital, que modulo 17, ces nombres sont congrus à :

30 ≡ 1, 31 ≡ 3, 32 ≡ 9, 33 ≡ 10, 34 ≡ 13, 35 ≡ 5, 36 ≡ 15, 37 ≡ 11,

38 ≡ 16, 39 ≡ 14, 310 ≡ 8, 311 ≡ 7, 312 ≡ 4, 313 ≡ 12, 314 ≡ 2, 315 ≡ 6.

Il ne faut pas croire non plus que lorsqu’un entier n > 2 est composé, les groupesmultiplicatifs

(Z/nZ)× possèdent aussi une structure aussi simple que celle des

(Z/pZ)×,

et d’ailleurs, le Théorème 6.10 ci-dessous énonce une caractérisation de cyclicité.Comme nous savons grâce au Théorème 5.8 élémentaire que tout groupe cyclique est

isomorphe à un(Z/nZ, +

), nous déduisons instantanément le :

Page 24: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

24 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Corollaire 6.7. Si un nombre p ∈ P est premier, alors le groupe des éléments inversiblesmodulo p : (

Z/pZ)×

est un groupe cyclique isomorphe à :(Z/pZ)× ∼= (

Z/

(p− 1)Z, +). �

Cet isomorphisme rappelle l’application exponentielle :(R, +, 0

)−→

(R∗+, ×, 1

)a 7−→ ea =: x,

mais il cache des problèmes mathématiques délicats, cf. ce qui va suivre.

Question 6.8. Comment trouver des générateurs explicites des groupes cycliques(Z/pZ)×

lorsque p ∈P est premier ?

En tout cas pour l’instant, dès qu’on connaît au moins un générateur, à savoir un certainélément :

a ∈(Z/pZ)×,

dont les puissances successives décrivent tout le groupe des inversibles :{1, a1, a2, . . . , ap−2

}mod p =

{1, 2, 3, . . . , p− 1

}mod p,

il est facile alors de connaître tous les autres éléments :

b ∈(Z/pZ)×,

jouissant de la même propriété :{1, b1, b2, . . . , bp−2

}mod p =

{1, 2, 3, . . . , p− 1

}mod p.

Corollaire 6.9. Si p ∈P>2 est un nombre premier quelconque, il y a exactement ϕ(p− 1)

générateurs du groupe cyclique(Z/pZ)× :

ϕ(p− 1) = Card{b ∈ (Z/pZ)× :

{1, b1, b2, . . . , bp−2

}mod p =

{1, 2, 3, . . . , p− 1

}mod p

}.

Démonstration. En effet, l’existence d’un seul générateur a du groupe cyclique(Z/pZ)×

fournit un isomorphisme — dépendant de a ! — :(Z/pZ)× ∼= (

Z/

(p− 1)Z, +),

et le Théorème 5.13 a déjà déterminé l’ensemble des générateurs du groupe additif situé àdroite :{

c ∈(Z/

(p− 1)Z, +)

:{

1, c, 2c, . . . , (p− 2)c}

={

1, 2, 3, . . . , p− 1}},

qui est tout simplement : {c ∈ Z

/(p− 1)Z : c ∧ (p− 1) = 1

},

un ensemble dont le cardinal est effectivement égal à ϕ(p − 1), par définition même del’indicateur d’Euler ϕ. �

Page 25: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

6. Groupe(Z/nZ

)× des éléments inversibles de(Z/nZ, +

)25

Voici maintenant une table donnant les plus petits générateurs a du groupe multiplicatif(Z/pZ)× pour tous les nombres premiers p inférieurs à 54 dans les deux premières co-

lonnes, puis en troisième colonne pour certains nombres premiers inférieurs à 860 qu’onsélectionne pour s’amuser :

2: 1, 23: 5, 191: 19,

3: 2, 29: 2, 211: 2,

5: 2, 31: 3, 229: 6,

7: 3, 37: 2, 311: 17,

11: 2, 41: 6, 347: 2,

13: 2, 43: 3, 409: 21,

17: 3, 47: 5, 857: 3,

19: 2, 53: 2, 859: 2.

Manifestement, cette table plutôt irrégulière et imprévisible confirme les difficultés éven-tuelles qui se cachent derrière la Question 6.8.

Énonçons maintenant sans démonstration le théorème général promis, qui caractérise lacyclicité de ces groupes multiplicatifs.

Théorème 6.10. Pour un entier n > 2, le groupe des éléments inversibles modulo n :(Z/nZ)×

est un groupe cyclique lorsque et seulement lorsque l’entier n est de l’une des trois formessuivantes :

• n = 4, 2, 1 ;

• n = pk pour p ∈P>3 premier et tout exposant k > 1 ;

• n = 2 pk pour p ∈P>3 premier et tout exposant k > 1. �

Par exemple, modulo 14, le groupe des inversibles possède les 6 = ϕ(14) élémentsspécifiques : (

Z/

14Z)×

={

1, 3, 5, 9, 11, 13}.

Admettre, comme l’affirme le Théorème 6.6, que ce groupe est cyclique, c’est admettrequ’il existe parmi les 4 éléments qui ne sont pas congrus à +1 ou à −1 :

3, 5, 9, 11,

au moins un élément a dont les six puissances successives :

a0mod 14, a1 mod 14, a2 mod 14, a3 mod 14, a4 mod 14, a5 mod 14,

Page 26: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

26 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

parcourent tous les 6 éléments de(Z/

14Z)×, peut-être dans un ordre chaotique. Ici, il est

naturel de commencer par tester a = 3, et cela marche :

30 ≡ 1 mod 14,

31 ≡ 3 mod 14,

32 ≡ 9 mod 14,

33 ≡ 13 mod 14,

34 ≡ 11 mod 14,

35 ≡ 5 mod 5,

on retrouve bien la liste de tous éléments (dans le désordre) :{1, 3, 9, 13, 11, 5

}={

1, 3, 5, 9, 11, 13},

sachant bien comme cela était prévisible à l’avance par le Théorème 4.2 d’Euler, que cettesuite boucle à partir de l’exposant 6 = ϕ(14) :

36 ≡ 1 mod 14.

À la main ou sur un ordinateur, on vérifie par ailleurs que 5 est le seul autre élément de(Z/

14Z)× dont les puissances successives parcourent l’ensemble complet des 6 éléments

{1, 3, 5, 9, 11, 13}.Il convient aussi d’attribuer un nom aux éléments qui engendrent ces groupes cycliques.

Définition 6.11. Lorsque(Z/nZ)× est un groupe cyclique, à savoir lorsque n est sous l’une

des trois formes du Théorème 6.10, on appelle racine primitive modulo n tout élément bqui en est un générateur :{

1, b1, b2, . . . , bCard (Z/nZ)×−1} =

(Z/nZ)×.

Voici aussi un autre résultat général, admis ici sans démonstration.

Théorème 6.12. Pour tout entier n > 2 tel que le groupe des inversibles modulo n :(Z/nZ)×

est cyclique, donc tel que n est sous l’une des trois formes du Théorème 6.10, le nombre deracines primitives modulo n est égal à :

ϕ(ϕ(n)

). �

Notons que pour n = p ∈P premier, on retrouve bien ce qu’un corollaire vu à l’instantaffirmait :

ϕ(ϕ(p)

)= ϕ(p− 1).

Malheureusement — ou heureusement du point de vue du Diable des mathéma-tiques —, aucune formule générale simple n’est connue pour calculer les racines primitivesmodulo n. Il existe néanmoins des méthodes pour localiser une racine primitive qui s’avèreplus rapide qu’un simple essai de tous les candidats.

Clairement, si par chance l’ordre multiplicatif d’un nombre a modulo n pris au hasardest égal à :

ϕ(n) = Card(Z/nZ)×,

alors a est une racine primitive.

Page 27: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

6. Groupe(Z/nZ

)× des éléments inversibles de(Z/nZ, +

)27

On peut d’ailleurs utiliser cette observation triviale pour tester les racines primitives. Oncalcule d’abord ϕ(n), puis on détermine ses diviseurs premiers distincts, soient p1, . . . , pκ.

Ensuite pour chaque élément a de(Z/nZ)×, on calcule :

aϕ(n)/pλ modn pour λ = 1, . . . , κ,

en utilisant par exemple la méthode d’exponentiation rapide. Dès qu’on trouve un nombrea pour lequel ces κ résultats sont tous différents de 1, on arrête : a est une racine primitivemodulo n.

Par exemple, pour a = 2, une conjecture due à Emil Artin affirme que l’ensemble :

S(2) ={p ∈P : 2 est une racine primitive modulo p

}devrait posséder la densité :

limn→∞Card {p ∈ S(2) : p 6 n}

n=∏p∈Ppremier

(1− 1

p(p− 1)

)= 0, 3739558136 · · · .

Explicitement, les premiers éléments sont :

S(2) ={

3, 5, 11, 13, 19, 29, 37, 53, 59, 61, 67, 83, 101, 107, 131, 139,

149, 163, 173, 179, 181, 197, 211, 227, 269, 293, 317, 347, 349,

373, 379, 389, 419, 421, 443, 461, 467, 491, . . .}.

Il existe 95 nombres premiers inférieurs à 500, parmi eux, 38 admettent 2 comme racineprimitive. Une proportion initiale de S(2) vaut donc par exemple :

38

95=

2

5= 0, 4,

et la conjecture affirme que cette proportion tend, lorsque n→∞, vers la constante d’Artin0, 3739558136 · · · .

Démonstration du Théorème 6.6. Notre but est de démontrer qu’il existe au moins un élé-ment a dont l’ordre est maximal possible égal à p− 1, puisqu’alors toutes les puissances :

1, a1, a2, . . . , ap−2

seront mutuellement distinctes (exercice), et donc a sera un générateur cyclique de(Z/pZ)×.

Puisque tous les entiers non nuls strictement inférieurs à p sont premiers avec p, on a :(Z/pZ)×

={

1, 2, . . . , p− 1}mod p.

Pour tout 1 6 a 6 p− 1, le Petit Théorème 6.3 de Fermat donne :

ap−1 ≡ 1 mod p,

et puisque le sous-groupe engendré par les puissances de a doit avoir, d’après le Théo-rème 5.6 de Lagrange, un cardinal qui divise :

p− 1 = Card(Z/pZ)×,

pour tout 1 6 a 6 p− 1, on déduit que :

ord(a) divise p− 1.

Page 28: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

28 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Il est donc naturel, pour des diviseurs d quelconques de p−1, d’introduire les ensembles :

Ed :={a ∈ (Z/pZ)× : ord(a) = d

},

qui sont clairement disjoints entre eux et dont la réunion est le groupe tout entier :⋃d | p−1

Ed =(Z/pZ)×,

d’où il découle que :

(∗)∑d | p−1

Card Ed = p− 1.

Reformulé, notre but est maintenant de démontrer que :

Card Ep−1?

> 1.

Or pour un diviseur fixé d | p− 1, on a par pure logique idiote :

Card Ed = 0 ou Card Ed > 1.

Dans le deuxième cas, le groupe engendré par un élément quelconque a ∈ Ed est :{1, a1, a2, . . . , ad−1

} ∼= (Z/dZ, +

),

et comme on sait alors grâce au Théorème 5.2 et à la Définition 6.1 que :

ϕ(d) = Card{b ∈ {1, a1, a2, . . . , ad−1} tels que {1, b1, b2, . . . , bd−1} = {1, a1, a2, . . . , ad−1}

},

on déduit que :Card Ed > 1 =⇒ Card Ed > ϕ(d),

ce qui donne :

Card Ed = 0, ou Card Ed > ϕ(d).

Assertion 6.13. On a en fait égalité dans le deuxième cas :

Card Ed = 0 ou Card Ed = ϕ(d).

Démonstration. Lorsque Card Ed > 1, il existe a ∈ Ed avec :

ad ≡ 1 mod p

tel que les d puissances :1, a1, a2, . . . , ad−1

sont deux à deux distinctes.Or tous ces éléments-puissances sont racines distinctes du polynôme :

Xd − 1

à coefficients dans le corps : (Z/pZ, +, ×

).

Qui plus est, tout élément quelconque a′ ∈ Ed est par définition aussi racine du polynômeXd − 1.

Page 29: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

6. Groupe(Z/nZ

)× des éléments inversibles de(Z/nZ, +

)29

Mais le résultat élémentaire suivant bien connu 3 :

Théorème 6.14. Si k est un corps, si P ∈ k[X] est un polynôme à coefficients dans cecorps, alors P admet au plus degP racines distinctes dans k. �

assure que a′ est nécessairement égal à l’une des d racines distinctes 1, a1, a2, . . . , ad−1, àsavoir il existe un entier 0 6 ` 6 d− 1 tel que :

a′ = a`.

Mais comme a′ ∈ Ed est par hypothèse d’ordre exactement égal à d, le Théorème 5.2 et laDéfinition 6.1 imposent :

` ∧ d = 1,

ce qui montre bien que Card Ed = ϕ(d). �

Maintenant d’un autre côté, puisqu’on a bien compris maintenant qu’on a la réuniondisjointe (exercice !) :⋃

d | p−1

{c ∈ Z

/(p− 1)Z : c est d’ordre (additif) égal à d

}︸ ︷︷ ︸sous-ensemble de cardinal = ϕ(d)

=(Z/

(p− 1)Z, +),

on obtient en prenant les cardinaux :

(∗∗)∑d | p−1

ϕ(d) = p− 1.

Pour conclure, une simple comparaison entre ces deux égalités (∗) et (∗∗) convainc(exercice mental) en tenant compte de l’Assertion 6.13 que l’on a bien :

Card Ed = ϕ(d),

3. Pour ce qui est d’une preuve-express, en écrivant :

P (X) =∑

06k6δ

pkXk,

avec δ := degP , on peut supposer que pδ = 1, et s’il existe une première racine x1 ∈ k dans le corps de basek satisfaisant donc P (x1) = 0, on peut soustraire puis factoriser :

P (X) = P (X)− P (x1) =(X − x1

) ∑16k6δ

pk(Xk−1 +Xk−2x1 + · · ·+Xxk−2

1 + xk−21

)︸ ︷︷ ︸

polynôme de degré 6 δ−1

.

Par récurrence (exercice), on montre en itérant la même idée que si un polynôme unitaire P admet δ = degPracines distinctes :

x1, x2, . . . , xδ,

alors P se factorise sous la forme intuitivement transparente :

P =(X − x1

)(X − x2

)· · ·(X − xδ

),

et il est alors clair que P ne peut vraiment plus admettre une racine supplémentaire :

y 6= x1, y 6= x2, . . . , y 6= xδ,

car on a toujours :P (y) = (y − x1)(y − x2) · · · (y − xδ) 6= 0.

Page 30: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

30 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

pour tout diviseur d de p− 1, et en particulier pour d = p− 1 :

CardEp−1 = Card{a ∈

(Z/pZ)×

:{

1, a1, a1, . . . , ap−1}

=(Z/pZ)×}

= ϕ(p− 1)

> 1,

ce qui conclut la démonstration du théorème.Répétons toutefois avant de nous évaporer dans la jungle bigarrée de la banlieue pari-

sienne que cette information sur le cardinal ϕ(p− 1) du nombre de générateurs du groupemultiplicatif cyclique

(Z/pZ)× ne fournit en aucun cas un moyen de trouver effectivement

au moins un tel générateur ! �

7. Nombres pseudo-premiers

Grâce à l’algorithme d’exponentiation rapide présenté dans la Section 4, le calcul d’unepuissance quelconque a∗ d’un entier a modulo n :

a∗ modn

est relativement accessible.

Question 7.1. Comment déterminer si un nombre entier n donné est premier ?

Une idée simple consiste à tester si le Petit Théorème 6.3 de Fermat est satisfait, à savoirsi, pour tout entier 1 6 a 6 n− 1, on a bien :

an ≡ a modn.

Mais pour un a donné et fixé, le fait que an − a soit divisible par n ne garantit en aucuncas que n soit premier !

Par exemple avec a = 3, le nombre :

n := 91 = 7 · 13

est composé, tandis que l’on a :391 ≡ 3 mod 91,

comme on peut le vérifier à la main ou sur un ordinateur.L’un des résultats les plus importants de toutes les mathématiques est le suivant, ha-

bituellement appelé Théorème des nombres premiers, dont la démonstration utilise desméthodes d’Analyse Complexe qui dépassent le cadre d’un cours de L3 MFA à Orsay.

Théorème 7.2. [Hadamard, de la Vallée Poussin, 1899] Lorsque x → ∞, le nombre denombres premiers inférieurs à x :

π(x) := Card{

2 6 p 6 x : p ∈P est premier}

se comporte asymptotiquement comme :

π(x) ∼ x

log x. �

En connaissant ce résultat, Erdös en 1950 puis plus récemment Li en 1997 on établi unénoncé éclairant sur les pouvoirs du petit théorème de Fermat, résultat que nous citeronsaussi sans démonstration.

Page 31: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

7. Nombres pseudo-premiers 31

Théorème 7.3. Pour tout entier fixé a > 2, lorsque x tend vers l’infini, il y a relativementde moins en moins de nombres composés n 6 x qui satisfont le petit théorème de Fermatque de nombres premiers :

0 = limx→∞

Card{

2 6 n 6 x : n n’est pas premier mais a satisfait an ≡ a modn}

Card{

2 6 p 6 x : p ∈P est premier} .

Ce résultat dit donc qu’utiliser les congruences de Fermat afin de distinguer entre lesnombres premiers et les nombres composés est potentiellement très utile sur le plan pra-tique, ce qui était connu bien avant les années 1950.

Algorithme: Test de primalité de Fermat

• Entrées : Un entier n > 4 et un entier fixé 2 6 a 6 n− 2.

• Sorties : L’information que n est peut-être premier ou l’information que n est cer-tainement composé.

• Algorithme :� Appeler l’algorithme d’exponentiation rapide modulo n pour calculer an modn.� Si an ≡ a modn écrire «n est peut-être premier »� Si an 6≡ a modn écrire «n est composé »

Toutefois, cette approche simplette basée sur le petit théorème de Fermat a des limites.La première est qu’il existe en fait une infinité de nombres n non premiers qui passent letest.

Théorème 7.4. Pour tout entier fixé a > 2, on a :

∞ = Card{n ∈ N : an ≡ a modn mais n est composé

}.

Les arguments étant élémentaires, nous pouvons les détailler comme suit.

Démonstration. Il suffit de trouver une famille infinie d’entiers composés n satisfaisantan ≡ a modn. Or nous affirmons que la famille des entiers n paramétrée par tous lesnombres premiers p > a2 :

n :=a2p − 1

a2 − 1

= a2p−1 + a2p−2 + · · ·+ a2 + 1

remplit cette fonction. Dorénavant, nous fixerons p.Tout d’abord, n est composé, parce qu’on peut l’écrire sous la forme :

n =ap − 1

a− 1· a

p + 1

a+ 1

=(ap−1 + ap−2 + · · ·+ a+ 1

)·(ap−1 − ap−2 + · · · − a+ 1

),

la deuxième simplification étant possible grâce au fait que le nombre premier p est impair,cf. a3 + 1 = (a+ 1)(a2 − a+ 1).

Page 32: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

32 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Ensuite, on calcule :

n− 1 =a2p − 1− a2 + 1

a2 − 1

=a2p − a2

a2 − 1,

ce qui donne l’identité :(n− 1)

(a2 − 1) = a2p − a2.

Or le petit Théorème 6.3 de Fermat appliqué au nombre premier p donne :

ap ≡ a mod p =⇒ a2p ≡ a2 mod p,

c’est-à-dire que p divise a2p−a2. Mais en revenant à l’identé laissée en chemin, comme ona supposé 4 que p > a2, il est impossible que p divise a2 − 1, et donc, il faut que n− 1 soitdivisible par p :

p |n− 1.

Par ailleurs, l’expression polynomiale de n− 1 :

n− 1 = a2p−2 + a2p−4 + · · ·+ a2,

montre que n−1 est somme d’un nombre pair de termes ayant la même parité (vérifier celaselon la parité de a), et donc, n− 1 doit aussi être divisible par 2 :

2 |n− 1.

En faisant la synthèse, nous déduisons que :

2 p |n− 1,

i.e. il existe λ > 1 satisfaisant :λ · 2 p = n− 1.

Mais maintenant, nous pouvons calculer et remplacer :

an−1 − 1 = aλ 2 p − 1

=(a2p − 1

)︸ ︷︷ ︸remplacer

·(a(λ−1)2p + a(λ−2)2p + · · ·+ a2p + 1

)= n ·

(a2 − 1

)·(a(λ−1)2p + a(λ−2)2p + · · ·+ a2p + 1

)pour voir que :

an−1 − 1 ≡ 0 modn,

et enfin après multiplication par a, nous atteignons an ≡ a modn. �

Comme jusqu’à présent on a fixé a, et comme le petit Théorème 6.3 de Fermat ap ≡a mod p est en fait vrai pour tout entier a ∈ Z lorsque p ∈ P , il est naturel et légitime dese demander si, en faisant varier a le plus largement possible, à savoir en testant si l’on aan ≡ amodn, pour tout 0 6 a 6 n − 1, on ne pourrait pas déterminer à coup sûr si unentier n est un nombre premier, ou s’il est un nombre composé. En tout cas, un tel espoir adu sens !

4. Le raisonnement fonctionnerait tout aussi bien en supposant seulement que p 6 | a2 − 1.

Page 33: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

8. Nombres de Carmichael 33

8. Nombres de Carmichael

Mais à cause du Diable de l’Arithmétique, les nombres nombres premiers p ne sont pasles seuls nombres n qui vérifient le Petit Théorème de Fermat, énoncé sous la forme :

an ≡ a modn (∀ 0 a∈Z),

car on vérifie par exemple, à la main ou sur un ordinateur, que le nombre composé :

n = 561

= 3 · 11 · 17

satisfait effectivement toutes ces congruences. Effectuons cette vérification à la main justeaprès avoir formulé une définition, puisque cela nous procurera plus de plaisir que sur unordinateur — de plaisir pour l’exigence de compréhension, entendons-nous bien !

Définition 8.1. Un nombre n > 2 est appelé nombre de Carmichael s’il n’est pas premier,i.e. s’il est composé, et s’il satisfait :

an ≡ a modn,

pour tout entier 0 6 a 6 n− 1, donc pour tout entier a ∈ Z.

D’après le lemme de Gauss, on déduit (exercice) que pour tout entier a premier avec n,on a :

an−1 ≡ 1 modn.

Assertion 8.2. Le nombre n = 561 = 3 · 11 · 17 est un nombre de Carmichael.

Démonstration. Soit donc un entier 0 6 a 6 561 − 1. Supposons pour commencer quea ∧ 561 = 1. Alors on a :

a ∧ 3 = 1, a ∧ 11 = 1, a ∧ 17 = 1.

Or puisque 3, 7, 11 sont premiers, le petit Théorème 6.3 de Fermat appliqué trois foisdonne :

a2 ≡ 1 mod 3, a10 ≡ 1 mod 11, a16 ≡ 1 mod 17.

Ensuite, comme :

560 = 2 · 230, 560 = 10 · 56, 560 = 16 · 35,

en prenant les puissances 230-ème, 56-ème, 35-ème des équations modulaires qui pré-cèdent, on obtient :

a560 ≡ 1 mod 3, a560 ≡ 1 mod 11, a560 ≡ 1 mod 17,

et enfin grâce au fait que 3, 11, 17 sont premiers entre eux, on conclut :

a560 ≡ 1 mod 3 · 11 · 17.

Les cas restants (un peu plus simples) où a n’est pas premier avec n = 561 = 3 · 11 · 17peuvent être traités de manière similaire à la main, et sont ou bien laissés en exercice, oubien considérés comme découlant du Théorème 8.4 de Korselt établi en détail plus bas. �

Page 34: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

34 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Les trois premiers nombres de Carmichael sont :

561,

1105,

1729.

Une coïncidence amusante est la suivante : le troisième nombre de Carmichael 1729,n’est autre que le nombre de Hardy-Ramanujan, c’est-à-dire le plus petit entier positif quipeut être écrit de deux façons différentes comme la somme de deux cubes :

1729 = 7 · 13 · 19

= 103 + 93

= 123 + 13.

Lemme 8.3. Tout nombre de Carmichael est impair.

Démonstration. Si un nombre de Carmichael n = 2n′ était pair, avec n′ > 2 car n doit êtrecomposé, en appliquant la définition à a = − 1, on devrait avoir :

(−1)2n′ ≡ −1 mod 2n′,

c’est-à-dire :2 ≡ 0 mod 2n′,

ce qui est impossible puisque 2n′ > 4. �

Ce n’est qu’en 1994 qu’on a démontré l’existence d’une infinité de nombres de Carmi-chael.

En tout cas, le Diable de l’Arithmétique a bien ruiné l’espoir d’avoir un test de primalitétrès simple, qui consisterait, pour déterminer si un entier n donné est premier, à vérifier quel’on a bien an = a modn pour tout 0 6 a 6 n. Certains nombres passent en effet le test deFermat, sans être premiers, et on constate que plus le plafond qu’on se fixe est grand, plusnombreux sont les nombres de Carmichael inférieurs à ce plafond (cf. ce qui va suivre).

Affirmation de philosophie des mathématiques. L’ensemble des nombres premiers estinfiniment complexe, on ne pourra jamais le comprendre en totalité avec quelques tests ourecettes mathématiques simples.

Toutefois, on possède des informations précieuses sur ces nombres-trublions nommésen l’honneur de Robert Carmichael, qui aurait trouvé, en 1909, le plus petit d’entre eux,561.

Plus les nombres considérés deviennent grands, plus les nombres de Carmichael rendentle test de primalité de Fermat largement inutile. Par exemple, le 646ème nombre de Carmi-chael vaut 993 905 641 et il existe 105 212 nombres de Carmichael entre 1 et 1015.

Théorème 8.4. [Korselt 1899] Un nombre composé n > 4 est de Carmichael si et seule-ment si il vérifie les deux propriétés suivantes :

(1) n est sans facteur carré ;

(2) pour tout nombre premier p |n qui divise n, le nombre p− 1 doit aussi diviser n− 1.

Page 35: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

8. Nombres de Carmichael 35

Korselt a donc établi son critère plus de dix ans avant la découverte par Carmichael desnombres éponymes. Sans doute, Korselt avait l’intuition que de tels nombres ne devraientpas exister, et il a développé ce critère comme première étape vers une démonstration d’in-existence.

Démonstration. Supposons pour commencer que n est un nombre de Carmichael. En toutcas, n est composé, donc n > 4.

Soit alors p un facteur premier de n :

n = pr n′,

avec r > 1 et avec n′ ∧ p = 1.En appliquant la Définition 8.1 au nombre a := p, on doit avoir :

pn ≡ p mod(n).

Autrement dit, il existe un entier λ ∈ Z tel que :pn = p+ λn

= p+ λ pr n′.

Comme n > 4, si jamais on avait r > 2, en réduisant modulo p2, on obtiendrait la contra-diction :

0 ≡ p mod p2.

Ceci démontre donc que r = 1, à savoir (1).Ensuite, pour ce qui est de (2), étant donné un facteur premier quelconque p de :

n = p n′ avec n′ ∧ p = 1,

puisque l’on sait d’après le Théorème 6.6 que le groupe(Z/pZ)× est cyclique, il existe un

générateur a satisfaisant :{a0, a1, a2, . . . , ap−2

}=(Z/pZ)× ∼= (

Z/

(p− 1)Z, +),

avec ap−1 = 1, à savoir un élément d’ordre exactement égal à :

ord(a) = p− 1.

Ensuite, si on applique la Définition 8.1 à ce générateur a, on doit avoir :an ≡ a modn

≡ a mod p n′,

d’où instantanément :an ≡ a mod p,

mais comme a est de facto premier avec p (exercice mental), le lemme de Gauss permet dedéduire que :

an−1 ≡ 1 mod p,

ce qui implique par définition-propriété de l’ordre que :

n− 1 est un multiple de p− 1 = ord(a),

et achève d’établir (2).À présent, démontrons la réciproque. Soit donc n un nombre composé sans facteur carré

dont tout facteur premier p |n a la propriété que p − 1 divise n − 1. Il s’agit de faire voirque an ≡ a modulo n pour tout entier a ∈ Z.

Page 36: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

36 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Or puisque n est sans facteur carré :

n = p1 · · · pκ,avec des nombres premiers distincts 2 6 p1 < · · · < pκ, il suffit en fait de faire voir que :

an ≡ a mod pλ (∀ 16λ6κ),

car alors, an − a sera multiple de p1, de p2, . . ., de pκ, donc du produit p1p2 · · · pκ = n, cf.le Théorème 2.3 des restes chinois.

Soit donc p |n un facteur premier de n, et soit a ∈ Z un entier quelconque. Si a n’estpas divisible par p, grâce au Petit Théorème 6.3 de Fermat, on a :

ap−1 ≡ 1 mod p,

et puisque par hypothèse p− 1 | n− 1, il vient par exponentiation entière :

an−1 ≡ 1 mod p,

et enfin :an ≡ a mod p.

Or si au contraire a est divisible par p, cette dernière congruence :

an ≡ a mod p,

est trivialement satisfaite, et donc dans tous les cas, on a bien pour tout facteur premier pλde n les congruences désirées. �

Corollaire 8.5. Les nombres de Carmichael comportent toujours au moins trois facteurspremiers (distincts).

Démonstration. Soit un nombre composé de Carmichael ne contenant que deux facteurspremiers :

n = p1p2,

nécessairement distincts d’après la condition (1) du Théorème de Korselt qui exprime quen doit être sans facteur carré :

2 6 p1 < p2.

D’après la condition (2), il est aussi nécessaire, simultanément, que :p1 − 1 divise p1p2 − 1,

p2 − 1 divise p1p2 − 1.

Examinons seulement la seconde condition, qui s’exprime comme :

p1p2 − 1 = s (p2 − 1),

pour un certain entier s > 1. Nous affirmons que cela est impossible, puisque :s 6 p1 =⇒ s(p2 − 1) 6 p1(p2 − 1)

= p1p2 − p1< p1p2 − 1,

et puisque :s > p1 + 1 =⇒ s(p2 − 1) > (p1 + 1)(p2 − 1)

= p1p2 + p2 − p1︸ ︷︷ ︸> 1

−1

> p1p2 − 1,

Page 37: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

8. Nombres de Carmichael 37

et donc aucun entier s ne peut convenir. �

La liste des 10 premiers nombres de Carmichael comportant quatre facteurs premiersest :

41041 = 7 · 11 · 13 · 41,

62745 = 3 · 5 · 47 · 89,

63973 = 7 · 13 · 19 · 37,

75361 = 11 · 13 · 17 · 31,

101101 = 7 · 11 · 13 · 101,

126217 = 7 · 13 · 19 · 73,

172081 = 7 · 13 · 31 · 61,

188461 = 7 · 13 · 19 · 109,

278545 = 5 · 17 · 29 · 113,

340561 = 13 · 17 · 23 · 67.

Les plus petits nombres de Carmichael incorporant exactement 3, 4, 5, 6, 7, 8, 9 facteurspremiers sont :

561 = 3 · 11 · 17,

41041 = 7 · 11 · 13 · 41,

825265 = 5 · 7 · 17 · 19 · 73,

321197185 = 5 · 19 · 23 · 29 · 37 · 137,

5394826801 = 7 · 13 · 17 · 23 · 31 · 67 · 73,

232250619601 = 7 · 11 · 13 · 17 · 31 · 37 · 73 · 163,

9746347772161 = 7 · 11 · 13 · 17 · 19 · 31 · 37 · 41 · 641.

Théorème 8.6. [Chernick 1939] Si, pour un entier k > 2, les trois nombres :

6 k + 1 ∈ P, 12 k + 1 ∈ P, 18 k + 1 ∈ P,

sont tous premiers, alors leur produit :(6 k + 1

) (12 k + 1

) (18 k + 1

)est un nombre de Carmichael

Démonstration. La preuve, facile et laissée comme exercice de lecture, consiste à vérifierque la condition (2) du Théorème de Korselt est satisfaite. �

On ne sait pas si cette formule, ou d’autres similaires, engendre une infinité de nombresde Carmichael lorsque k décrit l’ensemble des entiers.

Mentionnons enfin deux résultats qui vont au-delà d’un cours de L3 MFA à Orsay.

Théorème 8.7. [Erdös 1956] Il existe une constante A > 0 telle que le nombre C(n) desnombres de Carmichael inférieurs ou égaux à n est majoré par :

n e−A logn log log logn

log logn .

Page 38: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

38 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Erdös a aussi donné des arguments heuristiques en faveur de l’hypothèse selon laquellepour tout ε > 0, on devrait avoir :

C(n) > n1−ε,

ce qui entraînerait bien sûr l’existence d’une infinité de nombres de Carmichael. Toutefoison ne connaît aucune valeur numérique x assez grand pour que C(n) > n

12 . Nos meilleurs

ordinateurs demeurent donc quelque peu « faiblards » face à l’infini réel des nombres deCarmichael !

Théorème 8.8. [Alford, Granville, Pomerance] Il existe n0 � 1 tel que pour tout entiern > n0, le nombre C(n) de nombres de Carmichael inférieurs ou égaux à n est minorépar :

C(n) > n27 .

Exemple :C(1021) = 20 138 2006

>(1021

) 27

= 1 000 000.

En 2013, il a été démontré qu’il existe une infinité de nombres de Carmichael dans toutesuite arithmétique : {

a n+ b}

avec pgcd(a, b) = 1.

Conjecture 8.9. [Erdös, Pomerance] Le nombre C(n) de nombres de Carmichael infé-rieurs ou égaux à n devrait être asymptotiquement égal à :

C(n) = n1−(1+o(1)) log log lognlog log x .

9. Test de primalité de Miller-Rabin

Le test de primalité de Miller-Rabin est un test de primalité probabiliste, c’est-à-dire unalgorithme qui détermine si un nombre donné est probablement premier. Il se trouve que cetest est l’un des plus efficaces connus dans la pratique.

Comme d’autres tests de primalité (test de Fermat, test de Solovay-Strassen), le test deMiller-Rabin consiste à tirer parti d’une équation ou d’un système d’équations qui sontvraies pour tout nombre premier p, et à regarder si ces équations demeurent toujours vraies(ou non) pour un nombre n dont on souhaite déterminer s’il est premier.

En particulier, si au moins une des équations testées n’est pas satisfaite, on peut affirmeravec certitude que n n’est pas un nombre premier.

Définition 9.1. Un nombre entier n ∈ N>1 qui n’est pas premier est dit composé.

Soit un nombre premier impair p > 3. Le test de Miller-Rabin va consister à explorerdes racines carrées successives dans le Petit Théorème de Fermat, dont nous rappelonsl’énoncé.

Théorème 9.2. Pour tout entier 1 6 a 6 p− 1, on a modulo le nombre premier p :

ap−1 ≡ 1 mod p. �

Page 39: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

9. Test de primalité de Miller-Rabin 39

Puisque ce célèbre exposant p− 1 est pair, il se décompose sous la forme :

p− 1 = 2s t,

avec épuisement du facteur 2 :

s > 1 maximal possible,

donc avec un dernier facteur impair :

t ∈ 2N + 1.

Alors dans l’exponentation de Fermat, des carrés successifs appraissent, par exemple audébut :

ap−1 = a2st

=(a2

s−1t)2

≡ 1 modn.

Ensuite, comme on sait que +1 et −1 sont les seules racines du polynôme quadratiqueX2 − 1 dans le corps Z

/pZ, on doit nécessairement avoir ou bien :

a2s−1t ≡ + 1 modn ou bien a2

s−1t ≡ − 1 modn.

Dans la première circonstance, i.e. lorsque c’est +1 qui apparaît, si on a encore s−1 > 1,à savoir si : (

a2s−2t)2 ≡ +1 modn,

on peut réappliquer le même raisonnement et obtenir :

a2s−2t ≡ + 1 modn ou bien a2

s−2t ≡ − 1 modn.

À chaque fois que l’on trouve − 1, on stoppe le processus, et à chaque fois que l’on trouve+1, on re-prend la racine carrée, et ce, jusqu’à épuisement de l’exposant s > 1. Au final,on obtient un énoncé dont la vérification (mentale !) est laissée au lecteur-étudiant.

Proposition 9.3. Étant donné un nombre premier p > 3, pour tout entier :

2 6 a 6 p− 1,

si on décompose :

p− 1 = 2s t

avec s > 1 et t impair, alors :

at ≡ 1 mod p ou ∃ i ∈ {0, 1, . . . , s− 1} a2i t ≡ − 1 mod p. �

Supposons maintenant que soit donné un certain entier impair n > 3, par exemple enbase 10, dont on souhaite déterminer s’il est un nombre premier. Bien entendu, on com-mence par décomposer de même n− 1 sous la forme :

n− 1 = 2s t.

Page 40: Théorème des restes chinois Exponentiation rapide par ... · Test de primalité de Miller-Rabin Nombres de Carmichael François DE MARÇAY Département de Mathématiques d’Orsay

40 François DE MARÇAY, Département de Mathématiques d’Orsay, Université Paris-Sud, 2014–2015

Par contraposition de la proposition qui précède, si par chance on a choisi au hasard ettrouvé par (mal)chance un certain nombre a tel que :

at 6≡ 1 modn et

at 6≡ − 1 modn,

a21 t 6≡ − 1 modn,

· · · · · · · · · · · · · · · · · · ·

a2s−1 t 6≡ − 1 modn,

alors on est certain que le nombre n n’est pas premier.

Algorithme: Test de primalité de Miller-Rabin

• Entrées : Un nombre premier impair n > 3 et un nombre 2 6 a 6 n − 2 choisialéatoirement.

• Sorties : L’information que n est certainement composé, ou que n est peut-êtreun nombre premier.

• Algorithme :� Décomposer n− 1 = 2s t avec s > 1 et avec t > 3 impair.� si at ≡ 1 (modn) écrire «n est peut-être premier »

pour i = 0, 1, . . . , s− 1si a2it ≡ − 1 (modn) écrire «n est peut-être premier »

� si at 6≡ 1 (modn) et si a2it 6≡ − 1 (modn) pour i = 0, 1, . . . , s − 1 écrire «n estcomposé »

Avec des moyens mathématiques plus avancés, on démontre les deux résultats suivants.

Proposition 9.4. Si le nombre n est composé, alors au moins les trois quarts des n − 2entiers a avec 2 6 a 6 n − 1 sont tels que le test de Miller-Rabin montre effectivementque n est composé.

Cette proposition est conséquence du résultat suivant.

Théorème 9.5. [Rabin] Soit n > 11 un entier composé. Soient s > 1 et t ∈ 2N + 1 telsque :

n− 1 = 2s t.

Alors les entiers 2 6 a 6 n− 1 qui satisfont ou bien à :

at ≡ 1 modn,

ou bien à l’une des conditions :

a2it ≡ − 1 modn,

pour un i avec 0 6 i 6 s− 1, sont en nombre au plus égal à ϕ(n)/4.

—————–