Vous êtes sur la page 1sur 13

V Corps finis

Le but de ce chapitre est de comprendre les corps finis : montrer leur existence, leur unicité,
et les moyens de les construire et les manipuler.
On a déjà vu que Z/pZ est un corps si et seulement si p est premier, mais les Z/pZ ne sont
pas les seuls corps finis. On verra que pour chaque nombre premier p et chaque r ≥ 1, il y a un
corps de cardinal pr , et qu’il est unique à isomorphisme près (mais cet isomorphisme n’est pas
unique, contrairement au cas de Z/pZ). On notera Fpr « le » corps de cardinal pr ( 34 ).
L’exemple le plus simple est le suivant : F4 = Z/2Z[X]/⟨X 2 + X + 1⟩. En effet, comme
2
X + X + 1 est un polynôme irréductible dans Z/2Z[X], F4 est un corps. On note α = X̄ ∈ F4 .
Il vérifie la relation α2 = −α − 1 = α + 1 puisque −1 = 1.
F4 est un espace vectoriel de dimension 2 sur Z/2Z, et (1, α) est une base. F4 a donc 4
éléments : 0, 1, α, 1 + α.
Pour calculer, c’est facile, on fait le produit, et on utilise la relation α2 = α + 1. Par exemple
α(1 + α) = α + α2 = α + 1 + α = 1. Donc 1 + α est l’inverse de α.
Dans la suite on note, pour p premier, Fp le corps à p éléments, c’est à dire Fp = Z/pZ.
Lorsqu’on aura vu l’existence et l’unicité des corps de cardinal q = pr , on utilisera la notation
Fq le corps correspondant. Mais attention, Fq ̸≃ Z/qZ ! ! !

V.1 Propriétés élémentaires des corps finis


V.1.a Cardinal
Soit K un corps. On appelle sous-corps premier de K le plus petit sous-corps (qui doit donc
contenir 1). Il est soit isomorphe à Q (cas de la caractéristique nulle) soit à Z/pZ pour un nombre
premier p. En effet, si p est la caractéristique de K, l’image du morphisme canonique φ : Z → K
est Imφ ≃ Z/pZ ; c’est un sous-anneau de K donc intègre, donc soit p = 0 soit p est un nombre
premier.

Lemme V.1. Soit K un corps fini, et p sa caractéristique.


Alors K est un Z/pZ-espace vectoriel, et il existe r ≥ 1 tel que #K = pr .

En particulier, il n’y a pas de corps de cardinal 6 puisque 6 n’est pas une puissance d’un
nombre premier.

Preuve. Puisque Z/pZ est un sous-corps de K, K est un espace vectoriel sur Fp . Soit r sa
dimension. En tant que Z/pZ-espace vectoriel, K ≃ (Z/pZ)r , donc #K = pr .

Lemme V.2. Soit K un corps fini de cardinal q (donc q = pr pour un nombre premier p).
1. Tout élément de K ∗ vérifie xq−1 − 1 = 0.
2. Tout élément de K vérifie xq − x = 0.
3. K ∗ est un groupe cyclique de cardinal q − 1.

Preuve. (1) C’est le théorème de Lagrange appliqué a K ∗ . (2) découle de 1 pour x ∈ K ∗ , et est
évident pour x = 0. On a déja vu (3) : théorème I.19.

V.1.b Le morphisme de Frobénius


Définition V.3. Soit K un corps de caractéristique p.
L’application φ : K → K définie par x 7→ xp s’appelle le morphisme de Frobénius.
34. avec l’ambiguité qu’on n’a pas de manière unique de nommer ses éléments... c’est une définition à isomor-
phisme près.

66
De manière un peu familière, on dit souvent le Frobénius...
Le résultat suivant est à la fois simple, fondamental, et un peu magique. Cela donne aux
corps de caractéristique positive un sel très particulier.

Proposition V.4. Le Frobénius est un morphisme de corps (ie additif et multiplicatif ).

Preuve. Le fait que ce soit un morphisme multiplicatif est clair. Ce qui est magique est le fait
que ce soit un morphisme additif : (x + y)p = pi=0 pi xi y p−i . D’après le fait suivant, tous
P
les
coefficients binomiaux pi sont divisibles par p pour 1 < i < p. Pour tout 1 < i < p, pi xi y p−1


est donc nul dans K, donc (x + y)p = xp + y p = xp + y p .

Fait V.5. Pour tout 1 ≤ i ≤ p − 1, pi est divisible par p.




Remarque V.6. Par exemple les coefficients binomiaux de degré 5 sont 1, 5, 10, 10, 5, 1, tous
divisibles par 5 sauf le premier et le dernier. Ceci ne se généralise pas si p n’est pas premier. Les
coefficients de degré 6 sont 1, 6, 15, 20.. ne sont pas divisibles par 6. On peut quand même dire
des choses sur la divisibilité des coefficients binomiaux en général (voir le théorème de Lucas).
p!
Preuve. Ecrire avec des factorielles : pi = i!(p−i)!

: le numérateur est divisible par p mais p est
premier avec le dénominateur.

Remarque V.7. Le fait que φ est un morphisme d’anneau n’utilise pas que K est un corps,
seulement que c’est un anneau de caractéristique p.

Théorème V.8. Si K est un corps fini, le morphisme de Frobénius est un automorphisme.

Preuve. Comme tout morphisme de corps, φ est injectif. Puisque K est fini, φ est automatique-
ment surjectif.

Remarque V.9. On note φ2 = φ ◦ φ, φk = φ ◦ φ ◦ · · · ◦ φ.


2 k
φ(φ(x)) = (xp )p = xp , φk (x) = xp .

Proposition V.10. L’ensemble des points fixes d’un automorphisme de corps est un sous-corps.
L’ensemble des points fixes de φ est exactement Z/pZ. En effet, les éléments de Z/pZ vérifient
x = x (Fermat), et il n’y en a pas d’autre car le polynôme X p − X ne peut pas avoir plus de p
p

racines.

L’ensemble des points fixes de φk donnera des sous-corps plus gros, de cardinal ≤ pk car
k k
Xp − X n’a pas plus de pk solutions, et de cardinal exactement pk si X p − X est scinde.
Corollaire qui vaut le coup d’etre noté :

Corollaire V.11. Soit K de caractéristique p. Si f = ai X i est un polynôme à coefficients dans


P
Z/pZ, alors f (X p ) = f (X)p . P p pi
si f est à coefficients dans K, f (X)p = φ(ai )X pi =
P
Plus generalement, P ai X =
p
φ∗ (f )(X ) où φ∗ (f ) = φ(ai )X .i

V.2 Existence, unicité, et plongements des corps finis


V.2.a Existence et unicité
Théorème V.12. Pour tout α et tout premier p il existe un corps de cardinal q = pr , il est unique
à isomorphisme près. On le note Fq .

En anglais, les corps finis s’appellent Galois Fields.


Remarque V.13. Commentaire sur l’unicité : l’isomorphisme n’est pas unique. C’est la même
chose que pour C et l’ambiguité i, −i. Sauf que l’ambiguı̈té est plus grande, et dépend de q.

67
r
Lemme V.14. f (X) = X p − X est à racines simples dans toute extension de Fp .

Preuve. En effet, f ′ (X) = −1 ne s’annule nulle part, donc ne peut pas s’annuler en une racine
de f .

Preuve du Théorème. Pour l’unicité, on montre que si K existe c’est un corps de décomposition
r
de f (X) = X p − X relativement à Fp (ou plutôt une extension de décomposition de Fp donnée
par f (X)). Par unicité du corps de décomposition, ceci montre l’unicité.
Montrons que si K est un corps de cardinal pr , c’est un corps de décomposition de f . Chacun
des éléments de K est une racine de f , donc f admet pr racines distinctes, donc f est scindé
dans K. C’est bien un corps de décomposition parce que K est bien engendré par les racines de
f (il est même égal à l’ensemble des racines de f ).
r
Pour l’existence : soit K un corps de décomposition de f (X) = X p − X relativement à Fp .
Comme vu ci-dessus, les racines de f sont simples, donc K est de cardinal ≥ pr . Mais l’ensemble
des racines de f est exactement l’ensemble des points fixes de φr : K → K (l’itéré du morphisme
r
de Frobénius, φr (x) = φ ◦ φ · · · ◦ φ(x) = xp ). C’est donc un sous-corps K ′ ⊂ K. Comme f a
exactement pr racines, K ′ est de cardinal pr . K ′ est donc un corps de cardinal pr , ce qui montre
l’existence.
Rq : en fait, comme K est le corps de décomposition de f , K = K ′ .

Ceci est une preuve d’existence théorique, mais ce n’est pas suffisant en pratique si on veut
calculer dans un tel corps. On verra plus bas comment faire.

V.2.b Plongements entre corps finis


Proposition V.15. Fpr est isomorphe à un sous-corps de Fps ssi r|s.
De plus, si r|s, il y a un unique sous-corps de Fps isomorphe à Fpr et le degré de l’extension
[Fps : Fpr ] est égal à rs .

Remarque V.16. Autrement dit, les sous-corps de Fps sont les Fpr avec r|s. Par ex, si q = 4096 =
212 , vérifier qu’il y a 6 sous-corps.
Remarque V.17. ATTENTION : il ne suffit pas que pr |ps ie r ≤ s !

Preuve de la proposition. Condition nécessaire : si Fpr ,→ Fps , Fps est un ev d’une certaine
dimension d sur Fpr . Donc Fps ≃ev Fdpr et en particulier ps = (pr )d = pdr .
Autre preuve : si Fpr ,→ Fps , alors F∗pr est isomorphe à sous-groupe de F∗ps donc (pr −1)|(ps −1)
donc r|s (Cf lemme de divisibilité ci-dessous).
Réciproquement, soit K un corps de cardinal ps , et r un diviseur de s, et soit φ : K → K
r
l’automorphisme de Frobénius, et son itéré φr (x) = xp . Les points fixes de φr forment un sous-
r
corps, disons K ′ , qui est l’ensemble des racines de X p − X dans K. Par le lemme de divisibilité
r s s
ci-dessous, le fait que r|s implique que (X p −X)|(X p −)X. Comme X p −X est scindé à racines
r r
simples dans K, X p − X aussi, autrement dit X p − X a exactement pr racines, donc K ′ est
de cardinal exactement pr .
Unicité du sous-corps : si K ′ ⊂ K est de cardinal pr , alors ses éléments sont exactement les
r
éléments qui satisfont xp − x = 0.

Lemme V.18. 1. Dans n’importe quel corps K, X n − 1 divise X m − 1 dans K[X] ssi n|m.
2. Pour tout entier a > 1, an − 1 divise am − 1 dans Z ssi n|m.
r s
3. En particulier, X p − X divise X p − X ssi r|s.
Pq−1
Preuve. Si m = qn, et en notant Y = X q , (X m − 1) = (Y q − 1) = (Y − 1)( i=0 Y i) =
(X q − 1)( q−1 qi
P
i=0 X ).

68
Réciproquement, supposons X n − 1 divise X m − 1, et montrons n|m. Soient q, r la division
et le reste de la division euclidienne m = nq + r (avec r < n). On travaille dans K[X]/(X n − 1).
Puisque X n ≡ 1 (mod X n − 1), on a X nq ≡ 1 (mod X n − 1), et X nq+r ≡ X r (mod X n − 1), et
X nq+r − 1 ≡ X r − 1 (mod X n − 1), qui est nul ssi r = 0 puisque r < n.
Le 2ème énoncé se montre de la même façon en raisonnant modulo an − 1.
r s r s
Pour le 3ème : (X p − X)|(X p − X) ssi (X p −1 − 1)|(X p −1 − 1) ssi pr − 1|ps − 1 d’après 1
ssi r|s d’après 2.

V.3 Polynômes irréductibles sur un corps fini


[Cf Demazure.]
On a vu des théorèmes d’existence et d’unicité un peu abstraits des corps finis Fpr de cardinal
pr . Mais on veut pouvoir construire ce corps et calculer dedans (rappel, Fpr ̸≃ Z/pr Z, sauf pour
r = 1). Pour cela, et comme dans l’exemple initial de F4 , on cherche à écrire Fpr sous la forme
Z/pZ[X]/⟨f ⟩ pour un certain polynôme f ∈ Z/pZ[X]. Pour que ce soit un corps, il faut que f
soit irréductible dans Z/pZ[X]. Pour qu’il soit de cardinal pr , il faut que deg(f ) = r.
Réciproquement, si on a un polynôme f ∈ Z/pZ[X] qui est irréductible et de degré r, alors
Z/pZ[X]/⟨f ⟩ ≃ Fpr .
Exemple V.19. Le polynôme f (X) = X 3 + X + 1 n’a pas de racines dans Z/5Z, comme il est
de degré 3, il est donc irréductible dans Z/5Z[X]. Donc Z/5Z[X]/⟨X 3 + X + 1⟩ ≃ F53 , et on le
note K. En écrivant α = X ∈ Z/5Z[X]/⟨X 3 + X + 1⟩, on a la relation α3 = −α − 1, et on peut
calculer de manière effective dans K : les éléments de K s’écrivent sous la forme a+bα+cα2 avec
a, b, c ∈ Z/5Z, et en utilisant la relation ci-dessus, on peut effectuer des calculs : par exemple si
x = 2α2 − α − 1 et y = α2 + 3 alors

xy = 2α4 − α3 + 5α2 − 3α − 3

et en substituant α3 = −α − 1 dans α4 et α3 , on obtient

xy = (2α − 1)(−α − 1) − 3α − 3 = −2α2 + α − 2.

Donc en pratique, on cherchera un polynôme irréductible de degré r dans Z/pZ[X] pour


constuire le corps fini Fpr . Il existe toujours un tel polynôme f : en effet, on sait que Fpr existe,
et que son groupe multiplicatif est cyclique. Si x est un générateur de F∗pr , alors Z/pZ[x] =
Fpr , et son polynôme minimal f ∈ Z/pZ[X] est un polynôme irréductible de degré r (puisque
Z/pZ[X]/⟨f ⟩ ≃ Fpr ). Ceci montre l’existence (abstraite), pour tout nombre premier p et tout
r ≥ 1 d’un polynôme irréductible de degré r dans Z/pZ[X].
Pour trouver un tel polynôme de manière effective, on va voir que piocher au hasard n’est
pas si mauvais, à condition de savoir tester l’irréductibilité.
Algorithme 7 : Algorithme de construction d’un polynôme irréductible aléatoire
Entrée : p un nombre premier, et n ≥ 1.
Sortie : un polynôme irréductible de degré n dans Z/pZ[X]
Répéter
Tirer un polynôme f unitaire de degré n au hasard
Tester si f est irréductible
Si oui, renvoyer f , si non recommencer
Le nombre moyen d’exécutions de la boucle est égal à l’inverse de la proportion de polynômes
irréductibles parmi les polynômes unitaires de degré r (temps moyen pour avoir le 1er succès
dans une suite d’épreuves de Bernoulli indépendantes). Pour estimer le temps d’exécution de cet
algorithme, on va donc estimer cette proportion, et on verra ensuite un algorithme efficace pour
tester l’irréductibilité.

69
Proposition V.20. Soit Fq un corps fini de cardinal q, et soit Pn l’ensemble des polynômes
unitaires irréductibles de degré n dans Fq [X].
Alors Pn ̸= ∅ et
n
Y Y
Xq − X = P (X)
d|n P ∈Pd
n
Remarque V.21. Cette proposition donne la décomposition en facteurs irréductibles de X q − X
dans Fq [X]. Elle s’applique typiquement à Fq = Z/pZ lorsque q = p, mais plus généralement, à
tout corps fini K = Fq .

Preuve. On va montrer que


n r
o n o
facteurs irréd unitaires de X q − X dans Fq [X] = polynômes minimaux dans Fq [X] d’éléments de Fqr
n o
= polynômes irréductibles unitaires de Fq [X] de degré divisant r
r
(le dernier ensemble étant par définition égal à d|n Pd ). Comme X q − X est scindé à ra-
S
cines simples dans Fqr [X], il est le produit de ses facteurs irréductibles unitaires (il n’y a pas
d’exposant, de multiplicité), et la proposition en découlera.
r r
1 ⊂ 2 : Soit f un facteur irréductible de X q − X. Comme X q − X est scindé à racines
simples dans Fqr , f (X) a une racine x dans Fqr . Le polynôme minimal de x dans Fq [X] est égal
à f . CQFD.
2 ⊂ 3 : Soit x ∈ Fqr , f son polynôme minimal dans Fq [X], et d son degré. On a pd = #Fq [x],
or Fq [x] sous-corps de Fqr , donc d|r.
3 ⊂ 1 : Soit f ∈ Fq [X] irréductible de degré d avec d|r. Alors Fq [X]/⟨f ⟩ est un corps de
d
cardinal q d . Dans ce corps, tous les éléments vérifient xq = x. C’est vrai en particulier pour
d d r
l’image de X, donc X q − X = 0[f ], ie f |(X q − X)|(X q − X) par le lemme de divisibilité
puisque d|r.

En regardant les degrés, on a :


Corollaire V.22. Soit Nd le nombre de polynômes irréductibles de degré d dans Fq . Alors
X
qn = dNd
d|n

Pour majorer le temps d’exécution de l’algorithme 7, on a besoin de minorer la proportion


de polynômes irréductibles. On a l’estimation suivante :
Corollaire V.23. La proportion de polynômes irréductibles parmi les q n polynômes unitaires de
degré n vérifie
n
1 − q 1− 2 Nn 1
≤ n ≤
n q n
Remarque V.24. La minoration pour n = 2 ne donne rien, mais on peut faire le calcul explicite
à la main : Nq22 = 21 − 2q
1
( 35 ).

Preuve. De manière équivalente, il faut voir que

q n − q 1+n/2 ≤ nNn ≤ q n

La majoration vient du fait que nNn +autres termes = q n . On utilise cette majoration appliquée
aux Nd pour obtenir la minoration de Nn : pour tout d, on a dNd ≤ q d . On en déduit
X X X
qn = dNd ≤ nNn + q d ≤ nNn + q d ≤ nNn + q n/2+1
d|n d|n,d̸=n d≤n/2
2
q −q
35. q 2 = 1N1 + 2N2 = q + 2N2 car N1 = q, donc N2 = 2

70
(la dernière inégalité est une somme géométrique ; ou penser à l’écriture en base q : 1111 ≤
10000.) D’où l’inégalité.

Corollaire V.25. Le nombre d’itérations moyen T (p, n) de l’algorithme 7 pour trouver un poly-
nôme irréductible de degré n dans Z/pZ vérifie
pn n
T (p, n) = ≤ √ ≤ 3, 5 × n
Nn 1 − 1/ 2
pour n ≥ 3, soit = O(n) indépendamment de p.
Pour n = 2, le nombre moyen d’itérations est ≤ 4.
Si on cherche un polynôme de degré 1000, on a au moins 1 chance sur 3500 que le polynôme
soit irréductible, et il faudra tester au plus 3500 polynômes en moyenne.

Preuve (exo). Ici q = p. Le nombre d’itération moyen est égal à l’inverse de la proportion de
polynômes irréductibles.
Puisque n ≥ 3, 1 − n2 ≤ −1/2 donc la proportion de polynôme irréductibles vérifie
n √ √
Nn 1 − p1− 2 1 − 1/ p 1 − 1/ 2
≥ ≥ ≥
pn n n n
1− 1
Pour n = 2, mais N 2
p2
= 2 p donc le nombre moyen d’itérations est 1−1/p 2 2
≤ 1−1/2 = 4. Il
faut donc en moyenne au plus 4 itérations pour trouver un polynôme irréductible de degré 2 en
cherchant au hasard.

En appliquant la formule d’inversion de Möbius, on peut aussi avoir une formule explicite :
Corollaire V.26. Nn = n1 d|n µ(n/d)q d
P

Rappel µ(n) vaut 0 si n a un facteur carre, et (−1)k si n a k facteurs premiers distincts.


Rappel P
que la formule d’inversion
P de Möbius dit que si on a 2 fonctions f, g : N∗ → C, et si
n
g(n) = d|n f (d), alors f (n) = d|n µ( d )g(d).

V.4 Test d’irréductibilité de Rabin


Pour exécuter l’algorithme 7 on a besoin d’un test d’irréductibilité efficace.
Le test d’irréductibilité de Rabin est un corollaire de la décomposition en facteurs irréduc-
n
tibles de X p − X. Notons que contrairement au critère de Miller-Rabin pour la primalité des
entiers, ce n’est pas un test probabiliste.
Théorème V.27 (Test d’irréductibilité de Rabin). Soit P ∈ Fq [X] de degré n. Alors P est irré-
ductible ssi
n n
1. P |X q − X, i.e. X q − X = 0 mod P .
n
2. pour tout facteur premier l de n, pgcd(P, X q l − X) = 1
n
Preuve. Supposons P ∈ Pn alors il divise X q − X donc l’assertion (1) est vraie. Pour montrer
n
(2), soit l un facteur premier de n. Puisque la décomposition en irréductibles de X l − X est
n Y Y
Xl −X = Q(X),
d| nl Q∈Pd

n
et puisque P n’apparaı̂t pas dans cette liste, P est premier à X q l − X, donc (2) est vraie.
Réciproquement, supposons (1) et (2) et écrivons P = Q1 , . . . Qk comme produit d’irréduc-
tibles dans Fq [X]. D’après (1), chaque Qi est dans un Pd avec d|n. D’après (2), aucun Qi ne
peut etre dans un Pd avec d ̸= n. Donc tous les Qi sont dans Pn , et puisque P est lui aussi de
degré n, il y a un seul facteur, et P est irréductible.

71
Remarque V.28. Note sur l’effectivité : Attention, il ne faut pas travailler avec des polynômes
n
de degré q n qui est en général beaucoup trop gros. Pour vérifier (1) on calcule X q modulo P
en faisant une exponentiation rapide.
n
Pour calculer le pgcd dans (2), on commence par calculer X q l − X mod P par exponentia-
tion rapide, puis on est ramené a calculer le pgcd de 2 polynômes de degré ≤ n.

V.5 Les polynômes cyclotomiques


V.5.a Définition et lien avec les racines de l’unité dans les corps finis
Définition V.29. Le n-ième polynôme cyclotomique est le polynôme
Y
Φn (X) = (X − e2ikπ/n )
1≤k≤n
k∧n=1

C’est donc le polynôme unitaire dont les racines sont les racines primitives n-ièmes de l’unité
dans C. Son degré est donc φ(n) (l’indicatrice d’Euler). C’est a priori un polynôme à coefficients
complexes, mais on verra plus bas qu’il est à coefficients entiers.
Notons que si on fait le produit avec toutes les racines n-ièmes (au lieu des racines primitives
n-ièmes seulement), on obtient
Y
(X − e2ikπ/n ) = X n − 1
1≤k≤n

puisque c’est la décomposition de X n − 1 en facteurs de degré 1 (les e2ikπ/n sont les racines
n-ièmes de l’unité, c’est à dire les racines de X n − 1).
Exemple V.30.
— Φ1 = X − 1
— Φ2 = X + 1 √ √
— Φ3 = (X − −1+i 2
3
)(X − −1−i 3
2 ) = X 2 + X + 1,
— Φ4 = (X − i)(X + i) = X + 1. 2
5 −1
— Φ5 = XX−1 = X 4 + X 3 + X 2 + X + 1.
√ √
— Φ6 = (X − 1+i2 3 )(X − 1−i2 3 ) = X 2 − X + 1
— Si p est premier, alors Φp = X p−1 + · · · + X + 1. En effet,
Qp
Y
2ikπ/p
Y
2ikπ/p (X − e2ikπ/p ) Xp − 1
(X − e )= (X − e ) = k=1 =
X −1 X −1
k∧p=1 k̸=1
r
X p −1 r−1
— Plus généralement, si p est premier, Φpr = = Φp (X p ). En effet, les indices k
X pr−1 −1
qui ne sont pas premiers avec sont les multiples de p, ce sont donc les pk pour k ≤ pr−1 .
pr
On a donc
Qp r 2ikπ/pr )
Qp r 2ikπ/pr ) r
Y
2ikπ/pr k=1 (X − e k=1 (X − e Xp − 1
(X − e ) = Qpr−1 = Qpr−1 = pr−1
2ikpπ/pr ) 2ikπ/pr−1 ) X −1
k∧pr =1 k=1 (X − e k=1 (X − e

Lemme V.31. X n − 1 = d|n Φd (X).


Q

Preuve. On note Un l’ensemble des racines n-iemes de l’unité dans C, et pour d|n, on note
Ud∗ ⊂ Un l’ensemble des racines primitives d-ièmes de l’unité. On a une partition Un = ⊔dn Ud∗
(partition des racines de l’unité selon leur ordre). On a alors
Y Y Y Y
Xn − 1 = (X − ω) = (X − ω) = Φd .
ω∈Un d|n ω∈Ud∗ d|n

72
P
Remarque V.32. En regardant les degrés, ceci redonne l’égalité n = d|n φ(d).

Lemme V.33. Le polynôme Φn (X) est unitaire à coefficients entiers.


Preuve. On le démontre par récurrence, c’est clair pour n = 1. On fait la division euclidienne
de X n − 1 par A = d|n,d̸=n Φd dans Z[X] (on peut car Q est unitaire) : X n − 1 = AQ + R avec
Q
deg A < deg Q, et Q, R ∈ Z[X].
Si on compare avec la division euclidienne dans C[X], c’est forcément la même car il y a
unicité du quotient et du reste dans C[X] : Q, R sont le quotient et le reste de la division
euclidienne dans X[X]. Mais dans C[X] le quotient est égal a Φn , et le reste est nul. Conclusion :
Φn = Q appartient donc à Z[X].

Corollaire V.34. Si K est un corps de caractéristique nulle ou de caractéristique p > 0 avec


n ∧ p = 1, Φn est à racines simples et ses racines dans K sont exactement les racines primitives
n-ièmes de l’unité contenues dans K.
Remarque V.35. Si n = pα m avec m ∧ p = 1, on peut aussi montrer que les racines de Φn sont
les racines primitives m-ièmes de l’unité, mais elles ont de la multiplicité. Il n’y a pas de racine
primitive n-ièmes de l’unité si p|n.
36

Preuve. Remarquons d’abord que Φn est à racines simples pour n ∧ p = 1. En effet, il suffit de
voir que X n − 1 est à racines simples (puisque Φn est un diviseur de X n − 1). Mais la dérivée de
X n − 1 est nX n−1 , et comme n ̸= 0 (mod p), elle ne s’annule qu’en 0, et donc pas aux racines
n-ièmes de 1. Ceci montre que X n − 1 et donc Φn est à racines simples dans K.
Pour comprendre quelles sont les racines de Φk , remarquons d’abord que Q pour tout k, toute
racine de Φk est une racine k-ième de l’unité. En effet, puisque (X k − 1) = d|k Φd , Φk divise
X k − 1 dans Z[X] et donc aussi dans K[X] ( 37 ). Toute racine x ∈ K de Φk est donc une racine
k-ième de l’unité dans K.
Montrons l’inclusion
n o n o
racines primitives n-ièmes de 1 dans K ⊂ racines de Φn dans K .

Si x ∈ K est une racine primitive n-ième de l’unité, c’est une racine de X n − 1. Mais x ne peut
pas être racine d’un Φd avec d|n, d ̸= n, sinon elle serait d’ordre ≤ d puisque Φd |X d − 1. Puisque
(X n − 1) = d|n Φd , x est une racine de Φn .
Q
Pour l’inclusion réciproque, soit x ∈ K une racine de Φn . On a vu que x est une racine
n-ième de 1. Si d
Q elle n’est pas primitive, alors x = 1′ pour un certain d|n, donc x est une racine
de X − 1 = d′ |d Φd′ , donc d’un certain Φd′ avec d |d, donc d′ |n, d ̸= n. Comme
d

Y
X n − 1 = Φn × Φd ,
d|n,d̸=n
r
36. Preuve de la remarque : Soit n = pr m avec p ∧ m = 1. On a que ri=0 Φpi m = Φm (X p ) dans Z[X] : en
Q
effet, les racines du membres de gauche sont les racines de l’unité d’ordre exactement pi m pour un certain i ≤ r,
r
c’est a dire les x tq xp soit racine primitive m-ième de l’unité, ce qui donne les racines du membre de droite.
r
Réduisant mod p, on obtient grace au Frobénius ri=0 Φpi m = Φm (X)p dans Fp [X]. Ceci montre par recurrence
Q
sur r ≥ 1 que
r r−1
Φpr m = Φpm −p mod p :
pour r = 1, la formule donne bien Φpm Φm = Φpm ie Φpm = Φp−1 m , et l’induction est claire. Finalement, l’egalite
pr −pr−1
Φpr m = Φm est vraie dans K[X], et montre que Φpr m et Φm ont les memes racines dans K.
37. Ici, on uilise que si P = AB dans Z[X], alors cette egalité reste vraie dans K[X] en remplacant les coefficients
de P, A, B par leur image dans K par le morphisme canonique c : Z → K. C’est évident, mais une façon de justifier
cela est de considérer le morphisme Φ : Z[X] → K[X] donné par la propriété universelle de l’anneau de polynôme
associé au morphisme canonique c : Z → K et envoyant X sur X. Ainsi Φ(P ), Φ(A), Φ(B) ne sont rien d’autre
que les polynômes obtenus en remplacant les coefficients de P, A, B par leur image dans K par le morphisme
canonique c : Z → K. Puisque Φ est un morphisme d’anneaux, Φ(A)Φ(B) = Φ(P ). Donc si A divise P dans Z[X]
ca reste vrai dans K[X] après le remplacement des coefficients.

73
et puisque x est à la fois racine de Φn et de Φd′ , x est racine double de X n − 1, contradiction.
Ceci montre l’autre inclusion.

V.5.b Interlude : irréductibilité dans Z[X] et Q[X]


Définition V.36. Le contenu c(P ) d’un polynôme P ∈ Z[X] comme le pgcd de ses coefficients
(dans N).

Par exemple, un polynôme unitaire de Z[X] est de contenu 1.

Lemme V.37 (Lemme de Gauss). Le contenu est multiplicatif : c(P Q) = c(P )c(Q).

Le lemme est vrai plus généralement dans A[X] avec A anneau factoriel. Dans ce contexte,
le contenu est défini à association près, et l’énoncé dit plutôt c(P Q) ∼ c(P )c(Q).
1
Preuve. Le lemme est clair si P ou Q est nul. En remplacant P par P̃ = c(P ) P et Q par
1
Q̃ = c(Q) Q, on peut supposer que c(P ) = c(Q) = 1 et il faut montrer que c(P Q) = 1. Si ce n’est
pas le cas, il y a un diviseur premier p de c(P Q). En particulier, l’image de P Q dans Z/pZ[X]
est nulle. Par contre, l’image de P et de Q dans Z/pZ[X] sont non-nulles. Comme Z/pZ[X] est
intègre, c’est une contradiction.

Lemme V.38. Soit f ∈ Z[X] et soit f = Q1 . . . Qn une décomposition en produit dans Q[X].
Alors on peut écrire f = c(f )Q̃1 . . . Q̃n avec Q̃i ∈ Z[X], associé à Qi dans Q[X] et c(Q̃i ) = 1.

En particulier, si f = Q1 . . . Qn est la décomposition de f en produit d’irréductibles dans


Q[X] et si f ∈ Z[X] avec c(f ) = 1, alors on a une autre décomposition f = Q̃1 . . . Q̃n en produit
d’irréductibles dans Q[X], mais dans laquelle les Q̃i sont dans Z[X] et de contenu 1. Le thm
ci-dessous dira alors que les Q̃i sont irréductibles dans Z[X].

Démonstration. Soit Q̃i = pqii Qi pour un certain pqii ∈ Q \ {0} de sorte que les coefficients de Q̃i
soient entiers et premiers entre eux, ie c(Q̃i ) = 1. L’égalité f = Q1 . . . Qn devient

q1 . . . qn Q̃1 . . . Q̃n = p1 . . . pn f.

En prenant les contenus, on voit que q1 . . . qn = p1 . . . pn c(f ). On obtient donc

p1 . . . pn c(f )Q̃1 . . . Q̃n = p1 . . . pn f

donc c(f )Q̃1 . . . Q̃n = f (puisque pi ̸= 0).

Théorème V.39. Soit f ∈ Z[X] tel que c(f ) = 1.


Alors f est irréductible dans Z[X] ssi f est irréductible dans Q[X].

Là encore, le lemme se généralise de la façon suivante : si A est un anneau factoriel, et K


est son corps des fractions, alors f ∈ A[X] tq c(f ) = 1 est irréductible dans A[X] ssi il est
irréductible dans K[X].

Preuve. Si f n’est pas irréductible dans Z[X], on écrit f = AB avec A, B ∈ Z[X] non inversibles.
Si A était constant, alors l’entier A diviserait c(f ), donc A = ±1, contredit que A n’est pas
inversible. Par symmétrie de l’argument A et B sont son constants, ce qui montre que f n’est
pas irréductible dans Q[X].
Pour la réciproque on utilise le Lemme V.38 : si f n’est pas irréductible dans Q[X], f =
Q1 . . . Qn avec n ≥ 2 et des Qi ∈ Q[X] non constants. Le lemme V.38 conclut que f n’est pas
irréductible dans Z[X].

74
Ce théorème permet de déduire que Z[X] est un anneau factoriel, et plus généralement que
si A est un anneau factoriel, alors A[X] est encore factoriel (voir par exemple [Perrin]).
Ce théorème permet de démontrer l’irréductibilité de polynômes en réduisant modulo p.
Prenons par exemple f = 5X 4 + X 3 − 7X 2 − X + 1 et montrons qu’il est irréductible dans Q[X].
Il suffit de voir qu’il est irréductible dans Z[X]. Si ce n’est pas le cas, f = AB dans Z[X], avec
deg A, deg B < deg f . En réduisant modulo 2, on obtient que f¯ = ĀB̄, avec deg Ā, deg B̄ < deg f
et comme deg f = deg f¯, f¯ n’est pas irréductible dans Z/2Z[X]. Mais f¯ = X 4 + X 3 + X 2 + X + 1
est irréductible dans Z/2Z[X] : il n’a pas de racine dans Z/2Z, et si on écrit f¯ comme produit
de polynômes unitaires de degré 2, on voit que leur coefficient constant est égal à 1, donc
f¯ = (X 2 + aX + 1)(X 2 + bX + 1), donc a + b = 1 et ab = 1 ce qui est impossible dans Z/2Z.

V.5.c Irréductibilité des polynômes cyclotomiques dans Q[X]


Théorème V.40. Pour tout n ≥ 1, Φn (X) est irréductible dans Z[X] et dans Q[X].

Preuve du théorème. Ref : [Demazure.] Puisque Φn est unitaire, son contenu est égal à 1, donc
l’irréductibilité dans Q[X] et Z[X] sont équivalentes.
Supposons donc que Φn n’est pas irréductible dans Q[X], donc d’après le Lemme V.38, on
peut écrire Φn = P Q avec P, Q ∈ Z[X], et P irréductible dans Q[X].
On va démontrer l’assertion suivante : si ζ ∈ C est une racine de P , et si p est un nombre
premier ne divisant pas n, P (ζ p ) = 0.
Pour en déduire le théorème, partons de ζ ∈ C une racine de P , et de ζ ′ une autre racine
primitive n-ième de l’unité ; on sait que ζ ′ = ζ k pour un certain k ∈ Z/nZ× , on décompose
k en facteurs premiers k = p1 . . . pl (pas forcément distincts). Les pi ne divisent pas n parce
que si pi |n, ζ pi est une racine n/pi -ième de l’unité, ce qui empèche ζ ′ d’être une racine primitive
n-ième de l’unité. Soit ζ1 = ζ p1 . C’est encore une racine de P d’après l’assertion. On peut ensuite
réappliquer l’assertion à ζ1 : ζ1p2 est encore une racine de P , et en itérant ce raisonnement, on
obtient que ζ ′ est une racine de P . Ceci montre que toutes les racines primitives n-ièmes de
l’unité sont des racines de P , donc P et Φn ont le même degré et puisque P |Φn , on en déduit
P = Φn .
Démontrons maintenant l’assertion. Rappelons que Φn = P Q. Si P ne s’annule pas en ζ p ,
c’est que Q oui (puisque Φn s’annule en ζ p ). Donc Q(ζ p ) = 0, donc ζ est une racine de Q(X p ).
Comme P est irréductible et s’annule en ζ, c’est le polynôme minimal de ζ, donc P |Q(X p ) dans
Q[X]. D’après le lemme V.38, il existe R ∈ Z[X] tq P R = Q(X p ).
Maintenant on réduit mod p et on utilise qu’élever à la puissance p est le Frobénius. On a
P̄ R̄ = Q̄(X p ) = Q̄(X)p (car le Frobénius est un morphisme d’anneau et que le Frobénius est
l’identité sur Z/pZ). En particulier, si P̃ est un facteur irreductible de P̄ dans Z/pZ[X], il divise
Q̄p donc Q̄.
Mais comme par ailleurs, on a aussi Φ̄n = P̄ Q̄, P̃ 2 divise Φn , ce qui contredit que Φn est à
racines simples dans toute extension de Z/pZ (car Φn est un diviseur de X n −1, et n∧p = 1).

Notons le joli résultat suivant [admis, Cf Demazure coro 8.15 p206]

Proposition V.41. Soit Fq un corps fini, où q = ps . Soit n un entier premier a p. Alors le
polynôme Φn (X) est irréductible dans Fq [X] si et seulement si la classe de q dans le groupe
(multiplicatif ) (Z/nZ)× engendre ce groupe.

V.5.d Construction des corps finis par la factorisation des corps cyclotomiques
On peut utiliser les polynômes cyclotomiques pour donner une autre methode pour construire
les corps finis, et qui a l’avantage de produire un générateur du groupe F× q . En effet, pour
construire Fq avec q = pr , il suffit de construire une extension qui contient une racine primitive
(pr − 1)-ième de l’unité. On peut donc prendre Fq = Fp [X]/⟨P ⟩, où P est un facteur irréductible
de Φpr −1 . Notons en particulier que tout facteur irréductible de Φpr −1 est de degré r.

75
Pour cela, il faut savoir factoriser Φpr −1 en facteurs irréductibles dans Fp [X]. On peut utiliser
l’algorithme de Berlekamp, ou celui de Cantor Zassenhaus pour factoriser des polynômes à
coefficients sur un corps fini.
Mais au final, cet algorithme n’est pas le plus efficace semble-t-il. 38

V.6 Algorithme de factorisation de Berlekamp (optionnel)


Factoriser un grand entier en facteurs premiers est un problème difficile (c’est sur cette dif-
ficulté qu’est basée l’algorithme de cryptographie RSA). Cependant, le problème analogue dans
Fp [X] est nettement plus facile, c’est à dire qu’il existe des algorithmes efficaces de factorisation.
On va en voir plusieurs ici.
Les algorithmes se généralisent facilement à Fq [X] pour q une puissance d’un nombre pre-
mier, mais on va rester dans Fp avec p premier pour simplifier.

Un algorithme de factorisation prend en entrée un polynôme P et renvoie sa décomposition


en polynômes irréductibles. Le point clé consiste, si P n’est pas irréductible, à trouver un facteur
non constant Q|P et de degré < deg P . En effet, on peut ensuite itérer la procédure en travaillant
sur Q, puis sur P/Q.
Si on veut factoriser P ∈ Fp [X], on peut ainsi supposer que P est sans facteur multiple. En
effet, on sait que si P a des facteurs multiples, alors soit P ′ = 0, auquel cas P = Qp = Q(X p ),
et on se ramène à factoriser Q, soit P ∧ P ′ est non constant et de degré < depP , donc il suffit
de factoriser P ∧ P ′ et P/(P ∧ P ′ ) (qui sont tous de de degré < deg(P )).

V.6.a Algorithme de Berlekamp, version déterministe


Soit P ∈ Fp [X] un polynôme sans facteur multiple.
L’algorithme de Berlekamp prend en entrée un polynôme P ∈ Fp [X] sans facteur multiple et
renvoie un diviseur Q de P , avec 1 < deg(Q) < deg(P ), ou dit que P est irréductible.
On note P = P1 . . . Pr la décomposition en facteurs irréductibles (qui sont donc tous distincts
puisque P est supposé sans facteur multiple). 39 Q
Par le théorème chinois, on a l’isomorphisme Fp [X]/(P ) ≃ i Fp [X]/(Pi ), produit de r corps
de cardinal pα (notons que l’algorithme ne connais pas les Pi donc ne peut pas calculer cet
isomorphisme). L’application φ : x 7→ xp de Fp [X]/(P ) dans lui-même est une application Fp -
linéaire. Par les méthodes standard d’algèbre linéaire (pivot de Gauss, ici dans l’espace vectoriel
Fp [X]/(P )), on peut déterminer une base de ce noyau N (en tant que Fp -espace vectoriel).
Via l’isomorphisme chinois, on voit que dans chacun des facteurs, elle a exactement p points
fixes (qui forment une droite), donc N := ker φ − Id est de dimension r.
Si sa dimension est 1, c’est que P est irréductible.
Bien sur, N contient l’image des constantes dans Fp [X]/(P ). Soit Q un élément de N , non
constant. Le fait que Q ∈ N signifie que l’image de Q dans chacun des Fp [X]/(Pi ) est constant
(ce sont les points fixes du Frobénius), donc qu’il existe αi ∈ Fp tq Pi |Q − αi . Mais le fait que Q
ne soit pas constant dit que la constante αi tq Q = αi mod Pi , n’est pas la meme pour tout i.
Donc si on regarde l’un des α qui apparait, certains Pi divisent Q − α, mais pas tous. Ceci dit
que P GCD(P, Q − α) donne un facteur strict de P des que α est l’un des αi .
Le problème est que l’algorithme ne connaı̂t pas les αi (parce qu’il ne connaı̂t pas les Pi ), donc
il essaye tous les éléments α de Fp les uns après les autres. Pour chacun on calcule pgcd(P, Q−α)
jusqu’à trouver un facteur strict. Ceci donne l’algorithme suivant et démontre qu’il fonctionne :
38. voir par exemple http://www.math.rwth-aachen.de/~Frank.Luebeck/data/ConwayPol/index.html
39. Cette décomposition est inconnue de l’algorithme bien sûr !

76
Algorithme 8 : Algorithme de Berlekamp
Entrée : P ∈ Fp [X] sans facteur multiple, réductible
Sortie : D ∈ Fp [X] tel que D|P et 1 < deg D < deg P
Déterminer une base B de N = {x ∈ Fp [X]/⟨P ⟩|xp = x}
Si dim(N ) = 1, dire « P est irréductible »
Prendre Q ∈ Fp [X] qui représente un élément de B non constant
Pour α ∈ Z/pZ faire:
calculer D = pgcd(P, Q − α)
si 1 < deg(D) < deg(P ), renvoyer D

V.6.b Version randomisée


Si p est petit, l’algorithme de Berlekamp ci-dessus marche très bien. Si p est tres grand, la
boucle sur les α ∈ Z/pZ peut prendre (beaucoup) de temps.
L’idée pour améliorer est cela est la suivante. Rappelons que pour Q ∈ N , son image dans
p−1
r . On utilise que les α 2 valent 0 ou ±1 car α est dans le
Q
i Fp [X]/⟨P i ⟩ est (α1 , . . . , α r ) ∈ Fp i i
p−1
sous-corps premier de Fp [X]/(Pi ). Si Q ∈ N , l’image de Q 2 dans Fp [X]/Pi est donc egale a
p−1 p−1 p−1
0, ±1. Ceci signifie que Pi divise soit (Q 2 − 1), soit Q 2 ou bien Q 2 + 1 selon que αi = 0,
p−1
et αi ̸= 0 est un carre ou non. Ainsi, pgcd(P, Q 2 − 1) est égal à P (resp à 1) ssi tous (resp
p−1
aucun) des αi vérifient αi 2 = 1.
p−1
Notons C1 , C−1 , C0 l’ensemble des éléments α ∈ Z/pZ tels que α 2 vaut 1, −1 et 0 respec-
tivement (C0 = {0}, C1 est l’ensemble des carrés de Z/pZ× et C−1 l’ensemble des non carrés).
Ainsi C1 , C−1 , C0 sont de cardinal p−1 p−1
2 , 2 , et 1. Ce qu’on a dit se reformule ainsi : en calculant
p−1
pgcd(P, Q 2 − 1), on trouve un facteur propre de P sauf si tous les αi sont dans le même Cε
(avec ε ∈ {0, 1, −1}).
En choisissant Q ∈ N au hasard (ce qui revient à tirer les αi au hasard), la probabilité de
ne pas trouver de facteur propre est au plus celle de tirer au hasard r éléments de Z/pZ dans
le même Cε , probabilité qui est au plus 1/2r−1 ≤ 1/2 (si r > 1). Ceci montre que l’algorithme
suivant fonctionne et que le nombre moyen d’itérations de la boucle est ≤ 2.
Algorithme 9 : Algorithme de Berlekamp randomisé
Entrée : P ∈ Fp [X] sans facteur multiple, réductible
Sortie : D ∈ Fp [X] tel que D|P et 1 < deg D < deg P
Déterminer une base B de N = {x ∈ Fp [X]/⟨P ⟩|xp = x}
Si dim(N ) = 1, dire « P est irréductible »
Répéter
p−1
Choisir Q ∈ N au hasard. calculer D = pgcd(P, Q 2 )
Si 1 < deg(D) < deg(P ), renvoyer D, sinon recommencer

V.6.c Algo de Cantor Zassenhaus


C’est une simplification de la version randomisee qu’on vient de voir, dans laquelle on n’a
pas besoin de determiner le noyau N . On suppose p impair.
Par contre, on a besoin a la place que tous les facteurs irréductibles de P aient le meme
degré d, et on a besoin de connaitre ce degré. On s’y ramene facilement puisqu’on sait que
k
X p − X a comme facteurs irréductibles les polynômes de degré divisant k. On fait le pgcd de
i
P avec X p − X, pour i allant croissant, et on enleve a P les facteurs communs trouves, et on
recommence avec le i suivant.
Une fois ceci connu, on a que Fp [X]/P ≃ Fp [X]/P1 × . . . Fp [X]/Pr est un produits de corps
qui sont tous de meme cardinal pd . L’argument fait dans Fp tout a l’heure marche aussi bien

77
dans Fpd : Tout élément Q de Fp [X]/Pi eleve a la puissance (pd − 1)/2, donne ±1, 0. Ceci signifie
pd −1 pd −1 pd −1
que Pi divise soit (Q 2 − 1), soit Q 2 ou bien Q 2 + 1. On prend Q au hasard (en fait de
degré ≤ 2d suffit). La proba que tous les Pi divisent le meme est la proba que l’image de Q soit
dans le meme tiers pour tout i qui est au plus une chance sur 2 si r ≥ 2 (ie s’il y a plusieurs
facteurs).

78

Vous aimerez peut-être aussi