S5, L3 Maths (MA) – Lionel Vaux Auclair

Corps finis

On construit un corps fini de cardinal $p^n$ pour tout $p$ premier et $n\in\mathbf{N}^\bullet$.

Vous savez peut-être déjà que tout corps fini $A$ a un cardinal de la forme $p^n$ où $p$ est la caractéristique de $A$ et, réciproquement, que pour tout $p$ premier, et tout $n$ non nul, il existe un corps de cardinal $p^n$ (unique à isomorphisme près).

C’est une chose de connaître l’existence d’un objet, mais ç’en est une autre de le construire explicitement : quelle tête a le corps de cardinal $2^8$ ? comment sont définies ses opérations ? Répondre à ces questions demande un peu de travail…

Dans la suite, $A$ est un corps (commutatif). Si $p$ est premier, on note $\mathbf{F}_p$ le corps $\mathbf{Z}/p\mathbf{Z}$.

Cardinal des corps finis

On montre que le cardinal d’un corps fini $A$ est nécessairement de la forme $p^n$ avec $p$ premier ($p$ étant alors la caractéristique de $A$).

On considère la fonction \[ \begin{array}{rcl} f:\mathbf{Z}&\to& A \\ n &\mapsto& n1_A \end{array} \] Cette fonction préserve les opérations d’anneau: son noyau $\{ n\mid f(n) = 0 \}$ est un idéal de $\mathbf{Z}$, donc il est nécessairement de la forme $p\mathbf{Z}$ et on appelle $p$ la caractéristique de $A$.

Lorsque $A$ est fini, $f$ n’est pas injective, donc son noyau n’est pas réduit à $0$ et $p\not=0$. L’image de $f$ est alors un sous-anneau de $A$, isomorphe à $\mathbf{Z}/p\mathbf{Z}$. Or $A$ est un corps, donc c’est un anneau intègre, donc l’image de $f$ aussi, et donc $p$ est nécessairement premier.

Par ailleurs, $A$ est muni d’une structure de $\mathbf{F}_p$-espace vectoriel, le produit externe étant donné par $\bar k\cdot a=f(k)\times a$: comme $A$ est fini, la dimension $n$ de $A$ est finie et donc $A$ a $p^n$ éléments.

Ajouter des racines

Soit $P$ un polynôme non nul. On note $A[X]/P$ le quotient de $A[X]$ par la relation $\sim_P$ de congruence modulo $P$ : formellement, $Q\sim_P R$ ssi $P\mid Q-R$, c’est-à-dire si $Q\mod P = R\mod P$. Comme pour $\mathbf{Z}/n\mathbf{Z}$, on peut identifier la classe $\bar Q$ de $Q$ avec le reste de la division de $Q$ par $P$.

Exercices

Remarque. On peut montrer (mais on ne le fait pas ici) que lorque $P$ est irréductible $A[X]/P$ est le corps de rupture de $P$: une extension minimale du corps $A$, dans laquelle $P$ admet au moins une racine (et que cette extension est essentiellement définie de manière unique par cette propriété).

Polynômes dérivés

Si $P=\sum_{i=0}^n a_i X^i$, on pose $D(P)=\sum_{i=1}^n i\times a_i X^{i-1}$ son polynôme dérivé (évidemment, si $A$ est $\mathbf{R}$ ou $\mathbf{C}$, $\widehat{D(P)}$ est la fonction dérivée de $\hat{P}$ au sens habituel).

Exercices

Un certain polynôme

On suppose que $A$ admet $q$ éléments, et on pose $U_n=X^{q^n}-X$, pour tout $n\in\mathbf{N}^\bullet$. On va démontrer:

Théorème. Le polynôme $U_n$ est le produit des polynômes unitaires irréductibles dans $A[X]$, de degré divisant $n$.

On rappelle (ou admet) le résultat suivant:

Lemme. Le groupe multiplicatif d’un corps fini est cyclique.

On en trouve des démonstrations dans des styles variés, par exemple :

Dans les exercices suivants, il est utile de ne pas oublier les autres cours de ce semestre…

Exercices

Existence de polynômes irréductibles en tout degré

On a donc établi que, dans la décomposition en polynômes irréductibles de $U_n$, chaque polynôme unitaire irréductible de degré $d\mid n$ apparait exactement une fois. En notant $m_d$ le nombre de polynômes unitaires irréductibles de degré $d$ sur $A$, on obtient: \[ q^n = d(U_n) = \sum_{d\mid n} d\times m_d . \]

Exercice

Critère d’irréductibilité

On sait donc qu’il y a des polynômes irréductibles en tout degré. Mieux, comme $\frac{q^n-q^{\lfloor n/2\rfloor+1}}{n} $ est équivalent à $\frac{q^n}{n}$ quand $n$ est grand, un polynôme unitaire de grand degré $n$ a à peu près une chance sur $n$ d’être irréductible. Ça a donc du sens de les tirer au hasard : reste à savoir, quand on tire un tel polynôme au hasard, s’il est bien irréductible.

Exercices

Trouver des polynômes irréductibles

Au moyen des résultats mathématiques précédents, on construire des corps finis en Python: pour déterminer un corps de cardinal $p^n$, il suffit de se donner un polynôme irréductible sur $F_p$, de degré $n$.

La première étape est de se doter d’une classe de polynômes à coefficients dans $F_p$ : on réutilise une bonne partie du travail précédent.

Exercices

Construire des corps finis

Pour construire un corps de cardinal $p^n$ avec $p$ premier, on n’a donc qu’à trouver un polynôme irréductible $Q$ de degré $n$ sur $F_p$, puis à considérer $F_p[X]/Q$. On obtient une bijection avec $\{ 0, \cdots, p^n-1 \}$, via \[ k = \sum_{i=0}^{n-1} a_i p^i \mapsto C_Q(k) = \sum_{i=0}^{n-1} a_i X^i. \] On a évidemment $C_Q(0)=\bar{0}$ et $C_Q(1)=\bar{1}$, mais il n’y bien sûr aucune raison pour que l’opération préserve les opérations.

Exercices

Pour aller plus loin

Une bonne partie de cette activité est directement inspirée du livre Cours d'algèbre. Primalité Divisibilité. de Michel Demazure (2008), dont je vous recommande très chaudement la lecture (on n’en a effleuré que certains points), ainsi que de sa « digestion » sur la page Wikipédia Corps fini.