%% This is a LaTeX document. Hey, Emacs, -*- latex -*- , get it? \documentclass[12pt]{article} \usepackage[francais]{babel} \usepackage[latin1]{inputenc} \usepackage{times} % A tribute to the worthy AMS: \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsthm} % \usepackage{mathrsfs} \usepackage{wasysym} \usepackage{url} % \theoremstyle{definition} \newtheorem{comcnt}{Tout}[subsection] \newcommand\thingy{% \refstepcounter{comcnt}\smallbreak\noindent\textbf{\thecomcnt.} } \newtheorem{defn}[comcnt]{Définition} \newtheorem{prop}[comcnt]{Proposition} \newtheorem{lem}[comcnt]{Lemme} \newtheorem{thm}[comcnt]{Théorème} \newtheorem{cor}[comcnt]{Corollaire} \newtheorem{rmk}[comcnt]{Remarque} \newtheorem{exmps}[comcnt]{Exemples} \newcommand{\limp}{\mathrel{\Rightarrow}} \newcommand{\liff}{\mathrel{\Longleftrightarrow}} \newcommand{\pgcd}{\operatorname{pgcd}} \newcommand{\ppcm}{\operatorname{ppcm}} \newcommand{\signe}{\operatorname{signe}} \newcommand{\tee}{\mathbin{\top}} \newcommand{\Frob}{\operatorname{Fr}} \renewcommand{\qedsymbol}{\smiley} % % % \begin{document} \title{Rappels maths pour crypto} \author{David A. Madore} \maketitle {\footnotesize \begin{center} CVS: \verb=$Id: rappels-maths.tex,v 1.12 2008-11-26 17:35:18 david Exp $= \end{center} \par} \pretolerance=10000 \tolerance=8000 % % % \section{Entiers} \subsection{L'anneau des entiers} $\mathbb{Z}=\{\ldots,-3,-2,-1,0,1,2,3,\ldots\}$ ensemble des entiers relatifs. Sous-ensemble $\mathbb{N}$. Opérations : $+$, $\times$. Rappeler : $(\mathbb{Z},0,+)$ est un groupe abélien, $(\mathbb{Z},0,+,1,\times)$ est un anneau commutatif. Mieux : anneau intègre (si $uv=0$ alors $u=0$ ou $v=0$). Éléments inversibles : $1$ et $-1$. Relation d'ordre... % \subsection{Écriture $b$-adique} Si $b\geq 2$ est un entier naturel, tout entier naturel $A$ s'écrit de façon unique $A = \sum_{i=0}^{+\infty} a_i b^i$ avec $0\leq a_i1$, il y a toujours un nombre premier $p$ tel que $x < p < 2x$ (\v Ceby\v sëv : « postulat de Bertrand »). Le nombre $\pi(x)$ de nombres premiers $\leq x$ est équivalent à $\frac{x}{\ln x}$ lorsque $x\to +\infty$ (Hadamard \& de la Vallée Poussin : « théorème des nombres premiers »). Moralement : la probabilité qu'un nombre de $n$ bits aléatoire soit premier est environ $\frac{1}{n\,\ln 2}$. Beaucoup de questions ouvertes. Par exemple : Conjecture des nombres premiers jumeaux : existe-t-il une infinité de nombres premiers $p$ tels que $p+2$ soit aussi premier (tels que $3$, $5$, $11$, $17$, $29$, $41$, $59$, $71$...) ? \smallbreak \textbf{Lemme de Gauß :} pour $p$ premier, si $p$ divise $ab$ alors $p$ divise $a$ ou $p$ divise $b$. % \subsection{Décomposition en facteurs premiers} Pour tout entier $n$ \emph{non nul}, il existe une écriture \emph{unique} (à l'ordre près) de $n$ comme produit d'une \emph{unité} ($1$ ou $-1$) et de nombres premiers : en regroupant les facteurs premiers $p$, \[ n = u\, 2^{v_2(n)} \, 3^{v_3(n)} \cdots p^{v_p(n)}\cdots \] Ici, $v_p(n)$ (un entier naturel) est l'exposant de la plus grande puissance de $p$ qui divise $n$ : on l'appelle \emph{valuation $p$-adique} de $n$. Presque tous ces nombres sont nuls, ce qui permet de donner un sens au produit infini. Dire que $b|a$ signifie $v_p(b) \leq v_p(a)$ pour tout $p$. Quant à $u$, c'est simplement le signe de $n$. % \subsection{Remarques sur la complexité} Toujours pour des nombres de $n$ bits. \textbf{Tests de primalité :} \emph{polynomiaux}. Un test polynomial \emph{déterministe} est connu depuis seulement récemment (Agrawal-Kayal-Saxena), démontrablement en $O(n^{12})$, sans doute meilleur ($O(n^3)$ ?). En pratique, des tests probabilistes sont suffisants et plus efficaces (p.e., Miller-Rabin « pratiquement » en $O(n^2)$) éventuellement complétés par des certificats de primalité (p.e., test d'Atkin). \textbf{Algorithmes de factorisation :} \emph{lents}. Font appel à des résultats difficiles de théorie algébrique et analytique des nombres. La meilleure méthode connue (« méthode du crible général de corps de nombres ») a une complexité « attendue » (et heuristique) en $O(e^{n^{1/3}\,(\log n)^{2/3}\,(\textrm{cte}+o(1))})$ (avec $\textrm{cte} \approx 2$). On ne pourra donc pas envisager d'utiliser la décomposition en facteurs premiers pour calculer les pgcd. % \subsection{Valuation $p$-adique} Si $n$ est un entier et $p$ un nombre premier, $v_p(n)$ est l'exposant de la plus grande puissance de $p$ qui divise $n$. Si $a/b$ est un rationnel, on pose $v_p(a/b) = v_p(a)-v_p(b)$ (ne dépend pas de la représentation $a/b$ choisie). Par convention, $v_p(0) = +\infty$. Quelle est la valuation $2$-adique de $192$ ? $3$-adique ? $5$-adique ? Quelles sont les valuations $p$-adiques de $-\frac{24}{11}$, pour tous les $p$ possibles ? Propriétés de $v_p$ : produit (cf. lemme de Gauß), inégalité sur la somme (et cas d'égalité)... Dire que $x \in \mathbb{Q}$ est entier signifie exactement $v_p(x) \geq 0$ pour tout $p$. % \subsection{Division euclidienne} Si $a$ est un entier relatif et $b$ un entier naturel \emph{non nul}, il existe un unique couple $(q,r)$ tel que : \begin{itemize} \item $q$ est un entier relatif, \item $r$ est un entier naturel tel que $0\leq r2$), $\varphi(m)$ est toujours \emph{pair} (sauf pour $m=2$). Si $p$ est premier, alors tous les nombres entre $1$ et $p-1$ sont premiers avec $p$ : $(\mathbb{Z}/p\mathbb{Z})^\times = \{\bar 1,\ldots, \overline{p-1}\}$ (et notamment $\varphi(p) = p-1$). Tous les éléments de $\mathbb{Z}/p\mathbb{Z}$ sont inversibles sauf $\bar 0$ : on dit que l'anneau $\mathbb{Z}/p\mathbb{Z}$ est un \emph{corps} et on le note $\mathbb{F}_p$. % \subsection{Théorème chinois} Si $m$ et $n$ sont deux naturels non nuls \textbf{premiers entre eux}, considérons l'application dont les composantes sont les deux surjections canoniques : \[ \mathbb{Z}/(mn)\mathbb{Z} \to (\mathbb{Z}/m\mathbb{Z}) \times (\mathbb{Z}/n\mathbb{Z}) \] Il s'agit d'un \emph{morphisme d'anneaux} (car les surjections canoniques en sont !) : \begin{itemize} \item il est injectif car un entier multiple de $m$ et de $n$ est multiple de $mn$ (lemme de Gauß), \item il est surjectif car les cardinaux coïncident ($mn$ au départ et à l'arrivée), \end{itemize} c'est donc un \textbf{isomorphisme}. Dresser la table d'isomorphisme de $\mathbb{Z}/10\mathbb{Z}$ avec $(\mathbb{Z}/2\mathbb{Z}) \times (\mathbb{Z}/5\mathbb{Z})$... % \subsection{Théorème chinois explicite} Si on a une relation de Bézout $um+vn=1$, alors l'isomorphisme chinois a pour réciproque \[ \begin{array}{c} (\mathbb{Z}/m\mathbb{Z}) \times (\mathbb{Z}/n\mathbb{Z}) \to \mathbb{Z}/(mn)\mathbb{Z}\\ (x,y) \mapsto umy+vnx\\ \end{array} \] Exemple : trouver le nombre entre $0$ et $100$ congru à $9$ modulo $11$ et à $3$ modulo $13$. (Relation de Bézout : $6\times 11 - 5 \times 13 = 1$ ; ensuite, $6 \times 11 \times 3 - 5 \times 13 \times 9 \equiv 5\times 11 - 1\times 13 \equiv 42 \pmod{11\times 13}$.) \medskip Plus généralement, connaissant la classe d'un entier modulo $m_1,\ldots,m_k$, on peut retrouver sa classe modulo $\ppcm(m_1,\ldots,m_k)$. % \subsection{Calcul de l'indicatrice d'Euler} Si $m$ et $n$ (naturels non nuls) sont premiers entre eux, par le théorème chinois on a $(\mathbb{Z}/(mn)\mathbb{Z})^\times \cong (\mathbb{Z}/m\mathbb{Z})^\times \times (\mathbb{Z}/n\mathbb{Z})^\times$, donc \[ \varphi(mn) = \varphi(m)\,\varphi(n) \] Si $p$ est premier alors $\varphi(p^r) = (p-1)\,p^{r-1}$ (car être premier avec $p^r$ équivaut à être premier à $p$, et c'est le cas de $p-1$ entiers sur $p$). On en déduit : \[ \varphi(n) = n\,\prod_{p|n}\left(1-\frac{1}{p}\right) \] où $p$ parcourt les premiers divisant $n$. \textbf{Algorithmiquement :} \emph{lent} en général (demande de connaître la d.f.p.). % \subsection{Notions de théorie des groupes} Rappel de la définition d'un groupe (notations multiplicative, additive). Morphisme, isomorphisme de groupes. Ordre d'un groupe = son cardinal. Ordre d'un élément $g$ dans un groupe = le plus petit $m\geq 1$ tel que $g^m = 1$ (en notation multiplicative ; en notation additive, cela s'écrirait : $mg = 0$, i.e., un multiple de $g$). Notion de sous-groupe. Sous-groupe engendré par une partie = plus petit sous-groupe la contenant. Sous-groupe engendré par un élément $g$ : c'est l'ensemble des puissances de $g$ (en notation additive : multiples). L'ordre $m$ de ce sous-groupe est l'ordre de $g$. Ce sous-groupe est isomorphe à $\mathbb{Z}/m\mathbb{Z}$, avec $\bar 1 \mapsto g$. \textbf{Théorème de Lagrange :} Dans un groupe fini, l'ordre de tout sous-groupe divise l'ordre du groupe. En particulier, l'ordre d'un élément divise l'ordre du groupe : si $G$ est un groupe fini et $g \in G$ alors $g^{\#G} = 1$. % \subsection{Groupes cycliques} On dit qu'un groupe fini $G$ est \textbf{cyclique} lorsqu'il existe un élément $g$ (appelé \emph{générateur} de $G$) tel que tout élément de $G$ soit de la forme $g^k$ (une puissance de $g$, en notation multiplicative ; en notation additive, cela s'écrirait : $kg$, i.e., un multiple de $g$), autrement dit : le sous-groupe engendré par $g$ est $G$ tout entier. Le groupe \emph{additif} $\mathbb{Z}/m\mathbb{Z}$ est cyclique, avec pour générateur $1$ (mais ce n'est pas le seul possible ! cf. ci-dessous). Réciproquement, tout groupe cyclique est isomorphe à $\mathbb{Z}/m\mathbb{Z}$, avec $m$ l'ordre d'un générateur $g$ (qui est donc aussi l'ordre du groupe et ne dépend pas du générateur). D'où une autre définition possible : un groupe cyclique $G$ [de générateur $g$] est un groupe isomorphe à $\mathbb{Z}/m\mathbb{Z}$ [avec $1$ correspondant à $g$]. Les générateurs de $\mathbb{Z}/m\mathbb{Z}$ (comme groupe additif !) sont précisément les inversibles de $\mathbb{Z}/m\mathbb{Z}$ (comme anneau !). Démonstration... Attention ! on parlera aussi, plus loin, des générateurs du groupe \emph{multiplicatif} $(\mathbb{Z}/m\mathbb{Z})^\times$ (et de la question de savoir s'il y en a). Moralité : $\varphi(m)$ est aussi le nombre d'éléments d'un groupe cyclique (quelconque) d'ordre $m$ qui en sont un générateur. % \subsection{Théorème d'Euler} Si $m$ est un entier naturel non nul et $a$ un entier premier à $m$, alors \[ a^{\varphi(m)} \equiv 1 \pmod{m} \] Démonstration : l'élément $\bar a \in (\mathbb{Z}/m\mathbb{Z})^\times$ a un ordre qui doit diviser l'ordre du groupe, i.e. $\varphi(m)$. Attention ! ne pas confondre l'ordre d'un élément du groupe additif $\mathbb{Z}/m\mathbb{Z}$ et l'ordre d'un élément du groupe multiplicatif $(\mathbb{Z}/m\mathbb{Z})^\times$. Exemple : quel est l'ordre de $2$ dans $\mathbb{Z}/7\mathbb{Z}$ ? dans $(\mathbb{Z}/7\mathbb{Z})^\times$ ? Cas particulier : « petit théorème de Fermat » : si $p$ est premier, alors $a^{p-1} \equiv 1 \pmod{p}$ lorsque $a$ n'est pas multiple de $p$ ; donc, pour tout entier $a$ on a \[ a^p \equiv a \pmod{p} \] Ceci fournit une condition \emph{nécessaire} mais non suffisante pour qu'un nombre soit premier. % \subsection{Éléments primitifs} Soit $m$ un entier naturel non nul. On dit que $g \in (\mathbb{Z}/m\mathbb{Z})^\times$ est (un résidu) \textbf{primitif} (modulo~$m$) lorsqu'il engendre $(\mathbb{Z}/m\mathbb{Z})^\times$ (comme groupe abélien multiplicatif) --- ce qui entraîne que $(\mathbb{Z}/m\mathbb{Z})^\times$ est cyclique. Autrement dit, $g^{\varphi(m)}=1$ est optimal ($\varphi(m)$ est exactement l'ordre de $g$). Exemple : les puissances de $\bar 2$ modulo $9$ sont : $\bar 2,\bar 4,\bar 8,\bar 7,\bar 5,\bar 1$ ; il y en a bien $\varphi(9)=6$ donc $2$ est primitif modulo $9$. \smallbreak \textbf{Attention !} Ne pas confondre : \begin{itemize} \item $\mathbb{Z}/m\mathbb{Z}$ (groupe \emph{additif}, d'élément neutre $0$) est d'ordre $m$ et est \emph{toujours} cyclique (avec pour générateurs au moins $1$ et $-1$, et tous les éléments de $(\mathbb{Z}/m\mathbb{Z})^\times$). \item $(\mathbb{Z}/m\mathbb{Z})^\times$ (groupe \emph{multiplicatif}, d'élément neutre $1$) est d'ordre $\varphi(m)$ et est \emph{parfois} cyclique (auquel cas ses générateurs s'appellent éléments \emph{primitifs} et il y en a $\varphi(\varphi(m))$). \end{itemize} \medbreak \textbf{Théorème :} \begin{itemize} \item Si $p$ est un nombre premier impair, alors $(\mathbb{Z}/p\mathbb{Z})^\times$ est cyclique, i.e., il existe des éléments primitifs modulo $p$. (Il en existe exactement $\varphi(p-1)$.) \item Si $p$ est un nombre premier impair et $r\geq 2$, alors $(\mathbb{Z}/p^r\mathbb{Z})^\times$ est cyclique, i.e., il existe des éléments primitifs modulo $p^r$. (Il en existe exactement $\varphi(p^{r-1}(p-1))$.) \emph{Mieux} : $g$ est primitif modulo $p^r$ si et seulement si il l'est modulo $p^2$. \item Si $p=2$ et $1\leq r\leq 2$, alors $(\mathbb{Z}/2^r\mathbb{Z})^\times$ est trivialement cyclique. \item Si $p=2$ et $r \geq 3$, alors $(\mathbb{Z}/2^r\mathbb{Z})^\times$ \emph{n'est pas} cyclique : il est produit d'un groupe cyclique d'ordre $2$ engendré par $-1$ et d'un groupe cyclique d'ordre $2^{r-2}$ engendré par $5$ (l'ordre maximal possible d'un élément est $2^{r-2}$). \end{itemize} % \subsection{Exercices} \thingy Que vaut $10^{1000}$ modulo $7$ ? (Réponse : $4$.) Que vaut $10^{1000}$ modulo $6$ ? (Réponse : $4$.) Que vaut $10^{10^{1000}}$ modulo $7$ ? (Réponse : toujours $4$.) \thingy Quels sont les deux derniers chiffres (en base $10$) de $2^{1000!}$ ? \thingy Montrer que pour tout $a\in \mathbb{Z}$ on a $a^{1729} \equiv a \pmod{1729}$ (indication : $1729 = 7\times 13 \times 19$ ; utiliser le théorème chinois). \thingy À quoi est isomorphe le groupe $(\mathbb{Z}/56\mathbb{Z})^\times$ ? Quel est le plus grand ordre possible d'un élément de ce groupe ? \thingy \textbf{Théorème de Wilson :} $p$ est premier si, et seulement si, $(p-1)! \equiv -1 \pmod{p}$. \thingy \textbf{Théorème de Wolstenholme :} si $p\geq 5$ est premier, le numérateur de $\frac{1}{1}+\frac{1}{2}+\frac{1}{3}+\cdots+\frac{1}{p-1}$ est divisible par $p^2$. (Indications : on pourra regrouper $\frac{1}{k}$ et $\frac{1}{p-k}$, diviser par $p$, et chercher à étudier une congruence modulo $p$ ; on pourra faire usage du fait que $1^2+2^2+3^2+\cdots+(p-1)^2 = \frac{1}{6}p(p-1)(2p-1)$.) % \section{Polynômes} \subsection{Définition, structure d'anneau et degré} Soit $k$ un anneau commutatif quelconque, typiquement un corps (exemples importants : $\mathbb{F}_p = \mathbb{Z}/p\mathbb{Z}$ ou bien $\mathbb{Q}$, $\mathbb{R}$, $\mathbb{C}$). Un \textbf{polynôme} en $t$ à coefficients dans $k$ est une somme formelle $f = a_0 + a_1 t + a_2 t^2 + \cdots$ avec $a_i \in k$ où \emph{seul un nombre fini} des $a_i$ est non nul (sinon on parle de \textbf{série formelle}). \textbf{Opérations :} \begin{itemize} \item Addition : terme à terme ($c_i = a_i+b_i$). \item Multiplication : « produit de Cauchy » en développant formellement ($c_i = \sum_{j=0}^{j=i} a_j b_{i-j}$). \end{itemize} Si $k$ est un anneau commutatif, alors $k[t]$ aussi. \textbf{Degré} d'un polynôme : $\deg f =$ le plus grand $i$ tel que $a_i \neq 0$ (le degré du polynôme nul est question de convention). On peut donc écrire un polynôme de degré $\leq N$ comme $a_0 + \cdots + a_N t^N$ ; si $a_N = 1$ on dit que $f$ est \textbf{unitaire}. \textbf{Propriétés} du degré : \begin{itemize} \item $\deg (f+g) \leq \max(\deg f, \deg g)$ (avec égalité si $\deg f \neq \deg g$) \item $\deg (fg) = \deg f + \deg g$ (dès que $k$ est \emph{intègre}, en particulier sur un corps) \end{itemize} Si $k$ est un anneau commutatif intègre, alors $k[t]$ aussi. Attention, $k[t]$ n'est jamais un corps ! (Car $t$ n'a pas d'inverse pour la multiplication.) \medbreak À souligner : \emph{analogie} importante entre les polyômes, notamment dans $\mathbb{F}_p[t]$, et l'écriture en base $p$ des entiers. Différence importante : pas de retenue pour les polynômes. Complexité des opérations : cf. entiers. % \subsection{Opérations spécifiques aux polynômes} \textbf{Évaluation} de polynômes : si $f = a_0 + \cdots + a_N t^N$ et $x \in A$ (une $k$-algèbre, par exemple $k$ ou $k[t]$), on définit $f(x) = a_0 + \cdots + a_N x^N$. Cas particulier : \textbf{composition} : si $g \in k[t]$, on note $f\circ g$ plutôt que $f(g)$. \medbreak \textbf{Dérivée :} si $f = a_0 + a_1 t + \cdots + a_N t^N$ alors $f' = a_1 + 2 a_2 t + \cdots + N a_N t^{N-1}$. \textbf{Attention :} On peut avoir $f'=0$ sans avoir $f$ constant (e.g., $f = t^p$ dans $\mathbb{F}_p[t]$). \textbf{Dérivées successives :} $f^{(i+1)} = (f^{(i)})'$ pour $i \in \mathbb{N}$. % \subsection{Polynôme interpolateur, formule de Taylor} Dans cette section, soit $k$ un \emph{corps} et $f \in k[t]$. \medskip Soient $a_0,\ldots,a_N \in k$ deux à deux distincts, où $N \geq \deg f$, et $b_i = f(a_i)$, alors \[ f = \sum_{i=0}^N b_i \frac{\prod_{j\neq i}(t-a_j)}{\prod_{j\neq i}(a_i-a_j)} \] Permet de reconstruire un polynôme à partir de ses valeurs en suffisamment de points. \medbreak Si $N \geq \deg f$ et $N!$ n'est pas nul dans $k$, alors pour tout $a\in k$ : \[ f = f(a) + (t-a)\,f'(a) + \frac{(t-a)^2}{2}\,f''(a) + \cdots + \frac{(t-a)^N}{N!}\,f^{(N)}(a) \] Permet de reconstruire un polynôme à partir de ses dérivées successives en un point. % \subsection{Division euclidienne de polynômes} Sauf mention du contraire, $k$ est maintenant un \textbf{corps}. \smallskip \textbf{Division euclidienne} analogue à celle des entiers : Si $f\in k[t]$ et $g\in k[t]$ est \emph{non nul}, il existe un unique couple $(q,r)$ tel que : \begin{itemize} \item $q \in k[t]$, \item $r \in k[t]$ est (nul ou) de degré $\deg r < \deg g$ et \item $f = gq + r$. \end{itemize} \medbreak \textbf{Algorithme « naïf »} de division euclidienne : procéder par puissances \emph{décroissantes} : Soit $f = a_N t^N + \cdots + a_0$ et $g = b_D t^D + \cdots + b_0$ où $b_D \neq 0$ (donc $\deg g = D$) : \begin{itemize} \item si $N0$ contient un $\mathbb{Z}/p\mathbb{Z}$, qui en est un sous-corps $\mathbb{F}_p$ (donc $p$ est premier) : on dit que c'est le sous-corps premier. Le corps est alors un espace vectoriel dessus : le corps est fini, et si $d$ est sa dimension, son nombre d'éléments est $p^d$. Moralité : le nombre d'éléments d'un corps fini est une puissance $q = p^d$ d'un nombre premier $p$ (il n'y a pas de corps à $6$ ou $10$ éléments !), et le corps contient alors $\mathbb{F}_p = \mathbb{Z}/p\mathbb{Z}$ qu'on appelle son corps premier ; et $p$ s'appelle la caractéristique. % \subsection{Unicité} Dans un corps $F$ à $q$ éléments, on a $a^{q-1} = 1$ pour tout $a \in F^\times$ (par Lagrange) donc on a $a^q = a$ pour tout $a \in F$ (« petit théorème de Fermat » généralisé). Comme le polynôme $t^q-t$, de degré $q$, ne peut avoir que $q$ racines, si $F$ est contenu dans un corps $L$ plus gros, alors $F = \{x\in L : x^q = x\}$. Moralité : un corps ne peut contenir qu'un seul corps fini à $q$ éléments (pour $q$ fixé). En particulier, le sous-corps premier $\mathbb{F}_p$ d'un corps $L$ de caractéristique $p$ est $\mathbb{F}_p = \{x\in L : x^p = x\}$. On admet également l'unicité à isomorphisme près : deux corps finis à $q$ éléments, pour le même $q$, sont isomorphes. % \subsection{Morphisme de Frobenius} Si $K$ est un corps de caractéristique $p$ alors $\Frob\colon K\to K, x\mapsto x^p$ (le morphisme de Frobenius) est un morphisme de corps ($\Frob(xy) = \Frob(x)\,\Frob(y)$ toujours vrai, et $\Frob(x+y) = \Frob(x) + \Frob(y)$ car on est en caractéristique $p$ donc tous les coefficients binomiaux intermédiaires sont multiples de $p$ donc nuls). On le note aussi $\Frob_p$ pour éviter l'ambiguïté. Si $q = p^d$, on a souvent besoin d'introduire $\Frob^d = \Frob_q \colon x \mapsto x^q$ (composée $d$-ième du Frobenius). Notamment, dans un corps à $q = p^d$ éléments, puisque $x^q = x$ pour tout $x$, la composée $d$ fois de $\Frob_p$, soit $\Frob_q$, est l'identité. (Pour cette raison, on dit aussi que $\Frob_q$ est le Frobenius \emph{au-dessus} de $\mathbb{F}_q$.) % \subsection{Existence et inclusions des corps finis} Pour tout nombre premier $p$ et tout $d \geq 1$, il existe un corps à $q = p^d$ éléments, qu'on peut noter $\mathbb{F}_q$. On peut le voir comme $\mathbb{F}_q \cong \mathbb{F}_p[t]/(f)$ pour un certain polynôme $f \in \mathbb{F}_p[t]$ irréductible de degré $d$ (l'affirmation est qu'il en existe !). Si $q = p^d$ et $q' = p^{\prime d'}$, alors $\mathbb{F}_q$ est contenu dans $\mathbb{F}_{q'}$ (plus proprement : $\mathbb{F}_{q'}$ contient un sous-corps ayant $q$ éléments) si et seulement si : (1) $p=p'$ et (2) $d|d'$. Cela équivaut encore à : $q'$ est une puissance de $q$, soit $q' = q^e$. (Exemple : $\mathbb{F}_4$ est contenu dans $\mathbb{F}_{16}$ mais pas dans $\mathbb{F}_8$.) Lorsque c'est le cas, alors $\mathbb{F}_{q'} \cong \mathbb{F}_q[t]/(f)$ pour un certain polynôme $f \in \mathbb{F}_q[t]$ irréductible de degré $e = d'/d$. On va voir plus loin comment tester l'irréductibilité d'un polynôme sur un corps fini, et comment en produire. % \subsection{Polynôme minimal} [Dans les quelques sections qui suivent, le cas important est $q = p$ premier (lire alors $p^d$ pour $q^e$). On peut ignorer le cas plus général.] Rappel : dans $\mathbb{F}_q[t]/(f)$ (avec $f$ irréductible unitaire pour fixer les idées), on a $f(\bar t) = 0$, c'est-à-dire que $\bar t$ est racine de $f$. A contrario : \textbf{Prop :} Soit $x \in \mathbb{F}_{q^e}$, alors $x$ est racine d'un unique polynôme irréductible unitaire sur $\mathbb{F}_q$, et celui-ci est de degré divisant $e$. Ce polynôme s'appelle \textbf{polynôme minimal} de $x$ sur $\mathbb{F}_q$, et son degré (divisant $e$, donc) s'appelle le \textbf{degré} de $x$ sur $\mathbb{F}_q$. Naturellement, dans $\mathbb{F}_q[t]/(f)$, avec $f$ irréductible unitaire, le polynôme minimal de $\bar t$ sur $\mathbb{F}_q$ est $f$. Lorsque $a \in \mathbb{F}_q$, le polynôme minimal de $a$ est $t-a$, de degré $1$ ; réciproquement, un élément de $\mathbb{F}_{q^e}$ est dans $\mathbb{F}_q$ si et seulement si son degré est $1$. Si $x \in \mathbb{F}_{q^e}$ est de degré exactement $e$ (c'est-à-dire : pas moins), et que $f$ est son polynôme minimal, alors $\mathbb{F}_{q}[t]/(f) \cong \mathbb{F}_{q^e}$ (ce qu'on savait déjà...) en envoyant $\bar t$ sur $x$, et plus généralement la classe de $g \in \mathbb{F}_q[t]$ sur $g(x)$. Si on ne précise pas, le polynôme minimal s'entend sur le corps premier. Exercice : déterminer dans $\mathbb{F}_4$ vu comme $\mathbb{F}_2[t]/(t^2+t+1)$ les polynômes minimaux des différents éléments, et les degrés sur $\mathbb{F}_2$. (Réponse : $0$ et $1$ ont polynôme minimal $t$ et $t+1$ respectivement, et tous deux degré $1$ ; $\bar t$ a polynôme minimal $t^2+t+1$ et $\bar t+1$ aussi, tous deux ont degré $2$.) % \subsection{Éléments conjugués} [On peut toujours imaginer $q = p$ premier.] Si $f$ est irréductible unitaire de degré $e$ sur $\mathbb{F}_q$ alors dans $\mathbb{F}_q[t]/(f)$ les racines de $\bar t$ sont : $\bar t$, $\bar t^q$, $\bar t^{q^2}$, ..., $\bar t^{q^{e-1}}$. Cette situation porte un nom : On dit que deux éléments $x, x' \in \mathbb{F}_{q^e}$ sont \textbf{conjugués} lorsqu'ils vérifient les conditions équivalentes suivantes : \begin{itemize} \item $x$ et $x'$ ont le même polynôme minimal sur $\mathbb{F}_q$, \item il existe $i$ (qu'on peut prendre entre $0$ et $e-1$) tel que $x' = x^{q^i}$ (= on passe de l'un à l'autre en appliquant suffisamment de fois le Frobenius $\Frob_q$). \end{itemize} Le nombre d'éléments conjugués à $x$ (en comptant $x$ lui-même) est le degré de $x$. On parle d'un ensemble complet de conjugués (sur $\mathbb{F}_q$). % \subsection{Factorisation de $t^{q^e}-t$} [On peut toujours imaginer $q = p$ premier.] Dans la décomposition en facteurs irréductibles de $t^{q^e}-t$ dans $\mathbb{F}_q$ : \begin{itemize} \item chaque polynôme irréductible de degré divisant $e$ sur $\mathbb{F}_q$ apparaît une et une seule fois, \item chaque facteur correspond à un ensemble complet de conjugués (de cardinal égal au degré du facteur) dans $\mathbb{F}_{q^e}$, \item le nombre de facteurs de degré exactement $e$ est $\frac{1}{e}$ fois le nombre d'éléments appartenant à $\mathbb{F}_{q^e}$ mais à aucun $\mathbb{F}_{q^{e_1}}$ pour $e_1$ divisant strictement $e$. \end{itemize} \smallbreak Exercice : Expliquer pourquoi $t^{64}-t$ se décompose en irréductibles sur $\mathbb{F}_2$ en : $2$ facteurs de degré $1$, $1$ de degré $2$, $2$ de degré $3$ et $9$ de degré $6$. \medbreak Le nombre de polynômes irréductibles unitaires de degré $e$ dans $\mathbb{F}_q[t]$ est approximativement $\frac{1}{e}q^e$ (l'erreur est $O(q^{e/2})$). Autrement dit, la probabilité qu'un polynôme unitaire aléatoire dans $\mathbb{F}_q[t]$ soit irréductible est environ $\frac{1}{e}$ où $e$ est son degré. (Cf. théorème des nombres premiers.) \medbreak \textbf{Test d'irréductibilité de Rabin :} Étant donné $f \in \mathbb{F}_q[t]$ de degré $e$, il est irréductible si et seulement si les deux conditions suivantes sont vérifiées : \begin{itemize} \item $f$ divise $t^{q^e}-t$, et \item $f$ est premier avec $t^{q^{e_1}}-t$ pour tout diviseur strict $e_1$ de $e$ (en fait, on peut se contenter de tester pour les diviseurs stricts \emph{immédiats}, c'est-à-dire les $e_1 = e/\ell$ avec $\ell$ premier). \end{itemize} (Remarque : le premier s'écrit $t^{q^e}\equiv t \pmod{f}$, et pour le vérifier on applique un algorithme d'exponentiation rapide\footnote{Par exemple, dans ce cas, tout simplement élever $e$ fois successivement à la puissance $q$.} dans $\mathbb{F}_q[t]/(f)$. De même, la seconde condition se teste avec l'algorithme d'Euclide en commençant par calculer $t^{q^{e_1}}$ modulo $f$.) \smallskip Exercice : Vérifier que $f = t^4 + t + 1$ est irréductible dans $\mathbb{F}_2[t]$. (On a $t^4 \equiv t+1 \pmod{f}$ donc $t^8 \equiv t^2+1$ donc $t^{16} \equiv t^4 + 1 \equiv t$ donc le premier critère est vérifié. Pour le second, $t^4-t \equiv 1 \pmod{f}$ donc l'algorithme d'Euclide termine immédiatement et $t^4-t$ et $f$ sont bien irréductibles.) Vérifier que $g = t^4 + t^3 + 1$ est irréductible dans $\mathbb{F}_2[t]$. (On a $t^4 \equiv t^3+1 \pmod{g}$ donc $t^8 \equiv t^6+1 \equiv t^3+t^2+t$ donc $t^{16} \equiv t^6+t^4+t^2 \equiv t$ donc le premier critère est vérifié. Pour le second, $t^4-t \equiv t^3+t+1 \pmod{g}$ puis $g = t^4+t^3+1 \equiv t^2 \pmod{t^3+t+1}$ et enfin $t^3+t+1 \equiv 1 \pmod{t^2}$ donc $t^4-t$ et $g$ sont bien irréductibles.) \bigbreak \textbf{Note :} Contrairement à la situation dans les entiers, on peut effectuer efficacement la factorisation des polynômes sur les corps finis. % \subsection{Récapitulation : comment manipuler les $\mathbb{F}_q$} Moralité des paragraphes précédents : comment faire des calculs dans $\mathbb{F}_q$ avec $q = p^d$ ? On sait travailler dans $\mathbb{F}_p = \mathbb{Z}/p\mathbb{Z}$ (travailler dans $\mathbb{Z}$ et faire des divisions euclidiennes par $p$). Trouver un polynôme irréductible unitaire $f$ de degré $d$ dans $\mathbb{F}_p[t]$ : pour cela, choisir un polynôme unitaire aléatoire de degré $d$ parmi les $p^d$ possibles, utiliser le test de Rabin pour tester son irréductibilité, et recommencer jusqu'à obtenir un $f$ qui passe le test (en moyenne, on fera environ $d$ essais). Représenter les éléments de $\mathbb{F}_q \cong \mathbb{F}_p[t]/(f)$ par des polynômes de degré $