%% This is a LaTeX document. Hey, Emacs, -*- latex -*- , get it? \documentclass[12pt]{article} \usepackage[francais]{babel} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \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{Frob}} \renewcommand{\qedsymbol}{\smiley} \DeclareUnicodeCharacter{00A0}{~} % % % \begin{document} \title{Rappels maths pour crypto} \author{David A. Madore} \maketitle {\footnotesize \immediate\write18{sh ./vc > vcline.tex} \begin{center} Git: \input{vcline.tex} \end{center} \immediate\write18{echo ' (stale)' >> vcline.tex} \par} \pretolerance=10000 \tolerance=8000 % % % \section{Entiers} \subsection{L'anneau des entiers} On appelle $\mathbb{Z}=\{\ldots,-3,-2,-1,0,1,2,3,\ldots\}$ l'ensemble des entiers relatifs. Il a pour sous-ensemble $\mathbb{N} = \{0,1,2,3,\ldots\}$ l'ensemble des entiers naturels (ou positifs). Sur $\mathbb{Z}$ on a les opérations : $+$ (addition) et $\times$ (multiplication) ; et les éléments remarquables : $0$, $1$. Ces données vérifient les propriétés suivantes : \begin{enumerate} \item Associativité de l'addition : $x+(y+z) = (x+y)+z$ \item Neutralité de zéro pour l'addition : $0+x = x+0 = x$ \item Existence d'opposés (=symétriques pour l'addition) : (pour chaque $x$, il existe un élément noté $-x$ tel que) $x + (-x) = (-x) + x = 0$ \item Commutativité de l'addition : $y+x = x+y$ \item Distributivité de la multiplication sur l'addition : $x(y+z) = xy + xz$ et $(x+y)z=xz+yz$ \item Associativité de la multiplication : $x(yz) = (xy)z$ \item Neutralité de un pour la multiplication : $1x = x1 = x$ \item Commutativité de la multiplication : $yx = xy$ \end{enumerate} Les trois premières propriétés traduisent le fait que $\mathbb{Z}$ est un \emph{groupe} pour l'addition ; les quatre premières, que $\mathbb{Z}$ est un \emph{groupe abélien} pour l'addition ; les sept premières propriétés traduisent le fait que $\mathbb{Z}$ est un \emph{anneau} ; les huit propriétés réunies traduisent le fait que $\mathbb{Z}$ est un \textbf{anneau commutatif}. Mieux : c'est un \emph{anneau intègre} : si $uv=0$ alors $u=0$ ou $v=0$ (la réciproque est vraie dans n'importe quel anneau : $0x = x0 = 0$). Éléments inversibles : un \textbf{inversible} ou une \textbf{unité} (dans un anneau commutatif) est un élément $x$ tel qu'il existe $y$ tel que $xy = 1$. Dans $\mathbb{Z}$, les inversibles sont $1$ et $-1$. On a aussi sur $\mathbb{Z}$ une relation d'ordre : c'est-à-dire une relation réflexive (on a toujours $x\leq x$), antisymétrique (si $x\leq y$ et $y\leq x$ alors $x=y$) et transitive (si $x\leq y$ et $y\leq z$ alors $x\leq z$). % \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 », démontré en 1850). De façon équivalente : si $p$ est premier, alors le nombre premier qui le suit immédiatement est $<2p$. 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 », démontré en 1896). 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$. Exemple : $7920 = 2^4\times 3^2\times 5\times 11$, c'est-à-dire que $v_2(7920)=4$, $v_3(7920)=2$, $v_5(7920)=1$, $v_7(7920)=0$, $v_{11}(7920)=1$, et $v_p(7920)=0$ pour n'importe quel nombre premier $p\geq 13$. % \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ß) : on a $v_p(xy) = v_p(x) + v_p(y)$ ; inégalité sur la somme : on a $v_p(x+y) \geq \min(v_p(x), v_p(y))$ avec égalité si $v_p(x) \neq v_p(y)$. Dire que $x \in \mathbb{Q}$ est entier signifie exactement $v_p(x) \geq 0$ pour tout $p$. Remarque : calculer $v_p(n)$, pour un $n$ donné et un $p$ premier donné, est facile. Ce qui est difficile dans la décomposition en facteurs premiers, c'est de trouver tous les $p$ tels que $v_p(n) > 0$ (ou en fait, en trouver \emph{un}). % \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}) \] Autrement dit, il s'agit de l'application qui envoie un entier $z$ modulo $mn$ sur sa classe modulo $m$ et sa classe modulo $n$. 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})$... \smallbreak Concrètement, le théorème chinois signifie : lorsque $m$ et $n$ sont premiers entre eux, se donner un entier modulo $mn$ revient au même que se donner cet entier modulo $m$ et modulo $n$ séparément (et, de plus, toutes les combinaisons d'une classe modulo $m$ et d'une classe modulo $n$ sont possibles pour une unique classe modulo $mn$). % \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} \] (Remarque : dans cette expression, on peut se contenter de calculer $uy$ modulo $n$ avant de le multiplier par $m$, et de même $vx$ modulo $m$ avant de le multiplier par $n$, ce qui est parfois plus efficace que de faire tout le calcul modulo $mn$.) 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 Généralisations du théorème chinois : \begin{itemize} \item Si $m$ et $n$ ne sont pas premiers entre eux, toute donnée d'une classe $x$ modulo $m$ et d'une classe $y$ modulo $n$ ne permet pas forcément de retrouver une classe modulo $mn$ (il faut, et il suffit, pour cela, que $x$ et $y$ soient « compatibles », c'est-à-dire congrus modulo $d = \pgcd(m,n)$). Lorsque $x$ et $y$ sont compatibles, alors on retrouve une unique classe modulo $\ppcm(m,n)$ (pour faire le calcul en pratique, diviser les nombres $m,n$ par $d',d''$ tels que $d'd''=d$ pour se ramener à deux nombres $m/d'$ et $n/d''$ premiers entre eux et dont le produit vaut $\frac{mn}{\pgcd(m,n)} = \ppcm(m,n)$). \item Si $m_1,\ldots,m_k$ sont premiers entre eux \emph{deux à deux}, alors la donnée d'une classe modulo le produit $m_1\cdots m_k$ équivaut à la donnée de classes modulo chacun des $m_i$ (pour faire le calcul en pratique, on utilise les classes modulo $m_1,m_2$ pour trouver une classe modulo $m_1 m_2$, puis celle-ci et la classe modulo $m_3$ déterminent une classe modulo $m_1 m_2 m_3$, etc.). \item En combinant ces deux généralisations : connaissant la classe d'un entier modulo $m_1,\ldots,m_k$, on peut retrouver sa classe modulo $\ppcm(m_1,\ldots,m_k)$. \end{itemize} % \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$. Exemple : $\varphi(63) = \frac{2}{3}\times\frac{6}{7}\times 63 = 36$. (Intuitivement : parmi les $n$ entiers de $0$ à $n-1$, pour chacun des nombres premiers $p$ divisant $n$, il y a une proportion $\frac{p-1}{p}$ des nombres qui ne sont pas multiples de $p$, et toutes ces propriétés sont indépendantes --- c'est essentiellement le théorème chinois --- donc la proportion des nombres qui ne sont multiples d'aucun des $p$ divisant $n$ est le produit des $\frac{p-1}{p}$.) \textbf{Algorithmiquement :} \emph{lent} en général (demande de connaître la d.f.p.). % \subsection{Notions de théorie des groupes} Un \textbf{groupe} est un ensemble $G$ muni d'une opération binaire $\star$ (c'est-à-dire une application $G\times G \to G$ dont on note $g \star g'$ l'image d'un couple $(g,g')$) et d'un élément remarquable $e$ tels que : \begin{itemize} \item Associativité de $\star$ : $x\star(y\star z) = (x\star y)\star z$ \item Neutralité de $e$ pour $\star$ : $e\star x = x\star e = x$ \item Existence de symétriques : pour chaque $x$, il existe un élément noté $x'$ tel que) $x \star x' = x' \star x = e$ \end{itemize} Lorsque de plus la loi $\star$ est commutative ($y\star x = x\star y$), on parle de \emph{groupe abélien} (ou commutatif). Exemples : l'addition sur les nombres réels (la loi $\star$ étant l'addition et le neutre $e$ étant le nombre $0$), ou sur les complexes, ou sur les entiers ; la multiplication sur les nombres réels non nuls (la loi $\star$ étant la multiplication et le neutre $e$ étant le nombre $1$), ou sur les réels strictement positifs, ou sur les complexes non nuls ; la composition des isométries du plan (la loi $\star$ étant la composition et le neutre $e$ étant l'identité). Contre-exemple : la multiplication sur les entiers (ou même sur les entiers non nuls) \emph{ne forme pas} un groupe, faute d'inverses pour les entiers autres que $\pm 1$. \smallbreak Généralement, un groupe est noté soit de façon multiplicative (on écrit $xy$ au lieu de $x\star y$ et $1$ au lieu de $e$, et dans ce cas on note $x^m$ l'élément $x\star x\star \cdots x$ avec $m$ fois $x$ et $x^{-1}$ le symétrique de $x$, alors appelé « inverse »), soit de façon additive (on écrit $x+y$ au lieu de $x\star y$ et $0$ au lieu de $e$, et dans ce cas on note $mx$ l'élément $x + x + \cdots + x$ avec $m$ fois $x$, et $-x$ le symétrique de $x$, alors appelé « opposé »). Très souvent on utilise une de ces deux notations de façon implicite. Attention : il ne faut pas s'imaginer qu'il existe une différence mathématique entre « groupes multiplicatifs » et « groupes additifs » : un groupe est un groupe, il se trouve simplement que pour certains d'entre eux on a plutôt l'habitude de noter multiplicativement et pour certains plutôt additivement. (La notation additive est en principe réservée aux groupes abéliens mais on n'en rencontrera pas de non-abéliens dans ce cours.) \medbreak Un \textbf{morphisme} de groupe $\psi\colon G \to G'$ est une application qui préserve la composition ($\psi(x\star y) = \psi(x) \star \psi(y)$), et du coup forcément aussi l'élément neutre ($\psi(e) = e$) et les symétriques (le symétrique de $\psi(x)$ est l'image du symétrique de $x$). Un \textbf{isomorphisme} de groupes est un morphisme bijectif ; moralement : les groupes $G$ et $G'$ sont abstraitement « le même » (mais éventuellement notés ou étiquetés différemment). Attention ! On aura souvent affaire, par exemple, à un morphisme entre un groupe noté additivement et un groupe noté multiplicativement : dans ce cas, cela signifie $\psi(x+y) = \psi(x)\,\psi(y)$. Exemple : l'exponentielle (de base $e$, disons) constitue un isomorphisme entre le groupe additif des réels et le groupe multiplicatif des réels strictement positifs. De façon générale, si $g$ est un élément d'un groupe $G$, on a un morphisme de groupes $\psi \colon \mathbb{Z} \to G$ défini par $\psi(i) = g^i$ en notation multiplicative (ou, ce qui revient au même en notation additive : $\psi(i) = i g$). L'\emph{image} de ce morphisme, c'est-à-dire l'ensemble de tous les $\psi(i)$ pour $i$ parcourant $\mathbb{Z}$, s'appelle le \emph{sous-groupe engendré par $g$ dans $G$} (cf. plus bas). Si on a $g^m = 1$ (on va voir que ceci signifie que $m$ est un multiple de l'ordre de $g$, cf. plus bas), alors le morphisme $\psi \colon \mathbb{Z} \to G, i \mapsto g^i$ défini ci-dessus vérifie : $\psi(i) = \psi(j)$ si $i \equiv j\pmod{m}$ (en effet, $j = i+km$ pour un certain $k \in \mathbb{Z}$, donc $g^j = g^i \cdot (g^m)^k = g^i$) ; par conséquent, on peut définir un nouveau morphisme de groupes $\bar\psi \colon \mathbb{Z}/m\mathbb{Z} \to G$ qui envoie $\bar\imath \in \mathbb{Z}/m\mathbb{Z}$ sur $g^i \in G$. On peut donc faire comme si on pouvait élever $g$ à une puissance dans $\mathbb{Z}/m\mathbb{Z}$. Ce morphisme sera extrêmement important dans la suite. \medbreak L'\textbf{ordre d'un groupe} est simplement son cardinal, lorsque celui-ci est fini. L'\textbf{ordre d'un élément} $g$ dans un groupe fini est le plus petit $m\geq 1$ tel que $g^m = 1$ (en notation multiplicative ; en notation additive, cela s'écrirait : $mg = 0$). Autrement dit, c'est le plus petit $m$ tel qu'en composant $m$ fois l'élément $g$ on retombe sur l'élément neutre. Si $m$ est l'ordre de $g$, alors le morphisme $\bar\psi \colon \mathbb{Z}/m\mathbb{Z} \to G$ est \emph{injectif}, c'est-à-dire que les $\bar\psi(\bar\imath)$ sont tous distincts quand $\bar\imath$ parcourt $\mathbb{Z}/m\mathbb{Z}$ (en effet, si $\bar\psi(\bar\imath) = \bar\psi(\bar\jmath)$ avec $\bar\imath\neq\bar\jmath$, on peut supposer $0 \leq i < j < m$ et alors $g^{j-i} = 1$, ce qui contredit la minimalité de $m$). Autrement dit, $\bar\psi$ définit un isomorphisme entre $\mathbb{Z}/m\mathbb{Z}$ et le groupe $\{g^i \colon i\in \mathbb{Z}\}$ des puissances de $g$. En particulier, l'ordre d'un élément $g$ est le nombre $\#\{g^i \colon i\in \mathbb{Z}\}$ de puissances distinctes de cet élément. Par ailleurs, si on a $g^n = 1$, cela signifie que l'ordre de $g$ \emph{divise} $n$ (en effet, $\bar\psi(\bar n)=\bar\psi(\bar 0)$ signifie $\bar n=\bar 0$ dans $\mathbb{Z}/m\mathbb{Z}$ où $m$ est l'ordre de $g$, c'est-à-dire que $n$ est \emph{multiple} de $m$). Il y a donc équivalence entre : $g^n = 1$ et $n$ est multiple de l'ordre de $g$. \medbreak Un \textbf{sous-groupe} $H$ d'un groupe $G$ est un sous-ensemble de $G$ qui est lui-même un groupe pour la même opération et le même élément neutre ; c'est-à-dire, c'est une partie $H$ de $G$ telle que $1 \in H$ et que $x,y \in H \limp xy \in H$ et que $x \in H \limp x^{-1} \in H$ (cette dernière partie étant d'ailleurs automatique si le groupe $G$ est fini). (Exemple : pour la multiplication, les nombres réels strictement positifs forment un sous-groupe du groupe des nombres réels non nuls.) Le sous-groupe engendré par une partie $E$ d'un groupe $G$ est le plus petit sous-groupe contenant $E$ (c'est-à-dire l'intersection de tous les sous-groupes de $G$ contenant $E$). On utilisera cette notion seulement dans le cas suivant : le \emph{sous-groupe engendré par un unique élément} $g$ de $G$ : c'est l'ensemble $\{g^i \colon i\in \mathbb{Z}\}$ des puissances de $g$. Comme on l'a vu ci-dessus, l'ordre $m = \#\{g^i \colon i\in \mathbb{Z}\}$ de ce sous-groupe est égal à l'ordre de $g$ (ce qui justifie le fait d'utiliser le même mot « ordre » pour les deux notions), et ce sous-groupe est isomorphe à $\mathbb{Z}/m\mathbb{Z}$, par l'isomorphisme $\bar\imath \mapsto g^i$. \medbreak \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. Ou encore : $G$ est cyclique de générateur $g$ si et seulement si l'ordre de $g$ est égal à l'ordre de $G$. 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, on a vu que 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), l'isomorphisme $\mathbb{Z}/m\mathbb{Z} \to G$ étant donné par $\bar\imath \mapsto g^i$. 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$]. \smallbreak Quels sont tous les générateurs de $\mathbb{Z}/m\mathbb{Z}$ (comme groupe additif !) ? Réponse : ce sont précisément les classes modulo $m$ des entiers premiers à $m$, c'est-à-dire les inversibles de $\mathbb{Z}/m\mathbb{Z}$ (comme anneau !). (Démonstration : si $\bar a$ engendre le groupe additif $\mathbb{Z}/m\mathbb{Z}$, alors en particulier il doit engendrer $\bar 1$, c'est-à-dire qu'on peut écrire $\bar 1 = \bar a + \bar a + \cdots + \bar a$, avec $u$ fois $\bar a$ disons, donc $\bar a \bar u = \bar 1$ dans l'anneau $\mathbb{Z}/m\mathbb{Z}$, et $\bar a$ y est bien inversible. Réciproquement, si $\bar a \bar u = \bar 1$, et si $\bar a + \bar a + \cdots + \bar a = 0$, avec $k$ fois $\bar a$, alors en multipliant par $\bar u$ on a $\bar 1 + \bar 1 + \cdots + \bar 1 = 0$, soit $\bar k = 0$, donc $k$ est multiple de $m$ : ceci prouve que l'ordre de $\bar a$ ne peut pas être plus petit que $m$.) Ainsi, pour $m$ entier naturel non nul et $a$ entier, il y a équivalence entre : \begin{itemize} \item les entiers $a$ et $m$ sont premiers entre eux, \item l'élément $\bar a$ a pour ordre (additif) $m$ dans le groupe $\mathbb{Z}/m\mathbb{Z}$, \item l'élément $\bar a$ est générateur du groupe $\mathbb{Z}/m\mathbb{Z}$, \item l'élément $\bar a$ est inversible dans l'anneau $\mathbb{Z}/m\mathbb{Z}$, \item l'élément $\bar a$ appartient au groupe $(\mathbb{Z}/m\mathbb{Z})^\times$ des inversible de l'anneau $\mathbb{Z}/m\mathbb{Z}$. \end{itemize} En particulier, $\mathbb{Z}/m\mathbb{Z}$ admet $\varphi(m)$ générateurs. Comme un groupe cyclique d'ordre $m$ est la même chose que (un groupe isomorphe à) $\mathbb{Z}/m\mathbb{Z}$, on en déduit : le nombre de générateurs de n'import quel groupe cyclique d'ordre $m$ est $\varphi(m)$. 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). Il ne faut pas confondre ! \medbreak De façon générale, l'ordre additif de $\bar a$ dans $\mathbb{Z}/m\mathbb{Z}$ vaut exactement $m/\pgcd(a,m)$. (Et réciproquement, les éléments de $\mathbb{Z}/m\mathbb{Z}$ dont l'ordre divise $d$, pour $d$ un diviseur de $m$, sont les [classes des] multiples de $m/d$.) % \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 d'après Lagrange doit diviser l'ordre du groupe, i.e. $\varphi(m)$. \textbf{Attention !} ne pas confondre l'ordre (« additif ») d'un élément du groupe additif $\mathbb{Z}/m\mathbb{Z}$ et l'ordre (« multiplicatif ») 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}$ ? (réponse : $7$ car $2+2+2+2+2+2+2 = 0$ dans $\mathbb{Z}/7\mathbb{Z}$ et qu'on ne trouve pas $0$ avant) ; et dans $(\mathbb{Z}/7\mathbb{Z})^\times$ ? (réponse : $3$ car $2\times 2\times 2 = 1$ dans $(\mathbb{Z}/7\mathbb{Z})^\times$ et qu'on ne trouve pas $1$ avant). Pour que l'ordre multiplicatif d'un élément $x$ dans $\mathbb{Z}/m\mathbb{Z}$ soit défini, il faut (et il suffit) que cet élément $x$ soit dans $(\mathbb{Z}/m\mathbb{Z})^\times$ (car c'est lui le groupe multiplicatif), et dans ce cas l'ordre additif vaut forcément $m$ car $x$ est un générateur du groupe cyclique $\mathbb{Z}/m\mathbb{Z}$. \smallbreak Cas particulier du théorème d'Euler : le « 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 \emph{optimal} : dire que $g$ est primitif modulo $m$ signifie que son ordre multiplicatif est \emph{exactement} $\varphi(m)$ (et pas un autre diviseur de $\varphi(m)$). 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., \emph{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} \smallbreak Attention à ne pas faire l'erreur suivante : si on a $g^{\varphi(m)}=1$, cela \emph{ne signifie pas} que $g$ soit primitif, et d'ailleurs c'est le cas pour tout élément inversible de $\mathbb{Z}/m\mathbb{Z}$ d'après le théorème d'Euler : pour pouvoir dire que $g$ est primitif, la condition importante est que $g^i \neq 1$ lorsque $0