%% 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} \newcommand\exercice{% \refstepcounter{comcnt}\bigbreak\noindent\textbf{Exercice~\thecomcnt.}} \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}} \DeclareUnicodeCharacter{00A0}{~} % \newif\ifcorrige \corrigetrue \newenvironment{corrige}% {\ifcorrige\relax\else\setbox0=\vbox\bgroup\fi% \smallbreak\noindent{\underbar{\textit{Corrigé.}}\quad}} {{\hbox{}\nobreak\hfill\checkmark}% \ifcorrige\relax\else\egroup\fi\par} % % % \begin{document} \ifcorrige \title{INFMDI720\\Contrôle de connaissance --- Corrigé\\{\normalsize Rappels mathématiques pour la cryptographie}} \else \title{INFMDI720\\Contrôle de connaissance\\{\normalsize Rappels mathématiques pour la cryptographie}} \fi \author{} \date{27 novembre 2012} \maketitle \pretolerance=10000 \tolerance=8000 \vskip1truein\relax \textbf{Consignes :} Les exercices sont complètement indépendants. Ils pourront être traités dans un ordre quelconque, mais on demande de faire apparaître de façon très visible dans les copies où commence chaque exercice. Il n'est pas nécessaire de faire des réponses longues. L'usage de tous les documents (notes de cours manuscrites ou imprimées, livres) est autorisé. L'usage des calculatrices électroniques est interdit. Durée : 2h \newpage % % % \exercice La décomposition en facteurs premiers de $65\,535$ est : $3 \times 5 \times 17 \times 257$. (1a) Soit $x$ un entier : que vaut $x^{256}$ modulo $p = 257$ ? (On discutera selon la valeur de $x$ modulo $p$, et on dira clairement quelles sont toutes les valeurs possibles que peut prendre $x^{256}$ modulo $p$.) \begin{corrige} Le petit théorème de Fermat (ou le théorème d'Euler) affirme que $x^{256} \equiv 1 \pmod{257}$ si $x$ n'est pas nul modulo $257$ ; et si $x$ \emph{est} nul modulo $257$ (c'est-à-dire, multiple de lui), alors évidemment $x^{256} \equiv 0 \pmod{257}$. Les deux valeurs possibles de $x^{256}$ modulo $257$ sont donc $0$ et $1$. \end{corrige} (1b) Même question que (1a) mais cette fois pour $x^{256}$ modulo $p$ avec $p \in \{3,5,17\}$ (on prendra garde que l'exposant est toujours $256$ dans cette question, ce n'est pas une erreur de l'énoncé). \begin{corrige} Comme en (1a), on a $x^{p-1} \equiv 1 \pmod{p}$ si $x$ n'est pas nul modulo $p$ et $x^{p-1} \equiv 0 \pmod{p}$ si $x$ est nul modulo $p$ ; et comme $256$ est multiple de $p-1$ dans chacun des cas considérés (c'est-à-dire multiple de $2,4,16$), et comme toute puissance de $1$ vaut $1$ et toute puissance non nulle de $0$ vaut $0$, on a aussi $x^{256} \equiv 1 \pmod{p}$ si $x$ n'est pas nul modulo $p$ et $x^{256} \equiv 0 \pmod{p}$ si $x$ est nul modulo $p$. \end{corrige} (2) Montrer que $x^{256} \equiv 1 \pmod{65\,535}$ si $x$ est premier avec $65\,535$. Que peut-on en déduire sur l'ordre multiplicatif des éléments de $(\mathbb{Z}/65535\mathbb{Z})^\times$ ? \begin{corrige} Si $x$ est premier avec $65\,535$, cela signifie qu'il est n'est pas multiple de $p$ pour $p \in \{3,5,17,257\}$, autrement dit qu'il est non-nul modulo $p$ pour chacun de ces $p$. On a vu que dans ces conditions $x^{256} \equiv 1 \pmod{p}$ pour chacun de ces $p$. Comme $3,5,17,257$ sont premiers entre eux deux à deux, le théorème chinois assure que la congruence $x^{256} \equiv 1$ modulo ces quatre nombres implique la même congruence $x^{256} \equiv 1$ modulo leur produit, c'est-à-dire $x^{256} \equiv 1 \pmod{65\,535}$. Autrement dit, l'ordre multiplicatif de n'importe quel élément de $(\mathbb{Z}/65535\mathbb{Z})^\times$ divise $256$ (ou, si on préfère, est de la forme $2^i$ pour un $0\leq i \leq 8$). \end{corrige} (3) Que vaut $\varphi(65\,535)$ ? \begin{corrige} Par multiplicativité de $\varphi$, cela vaut $(3-1) \times (5-1) \times (17-1) \times (257-1) = 2 \times 4 \times 16 \times 256 = 2^{1+2+4+8} = 2^{15} = 32\,768$. \end{corrige} (4) Comparer le résultat de la question (2) à l'énoncé du théorème d'Euler modulo $65\,535$. \begin{corrige} Le théorème d'Euler modulo $65\,535$ assure que $x^{\varphi(65\,535)} \equiv 1 \pmod{65\,535}$ pour tout $x$ premier avec $65\,535$, c'est-à-dire $x^{32\,768} \equiv 1 \pmod{65\,535}$. Le résultat de la question (2) est plus fort puisqu'il affirme que déjà $x^{256} \equiv 1 \pmod{65\,535}$ (autrement dit, le théorème d'Euler affirme que l'ordre multiplicatif de n'importe quel élément de $(\mathbb{Z}/65535\mathbb{Z})^\times$ divise $2^{15}$ tandis que la question (2) affirme qu'en fait il divise $2^8$). \end{corrige} (5) Montrer que $x^{257} \equiv x \pmod{p}$ pour tout entier $x$ et pour tout $p \in \{3,5,17, 257\}$. \begin{corrige} Si $x$ n'est pas multiple de $p$, on a vu $x^{256} \equiv 1 \pmod{p}$ et on en déduit $x^{257} \equiv x \pmod{p}$ ; si $x$ est multiple de $p$, alors $x^{257} \equiv 0 \equiv x \pmod{p}$. \end{corrige} (6) En déduire que $x^{257} \equiv x \pmod{65\,535}$ pour tout entier $x$. \begin{corrige} Comme $3,5,17,257$ sont premiers entre eux deux à deux, le théorème chinois assure que la congruence $x^{257} \equiv x$ modulo ces quatre nombres implique la même congruence $x^{257} \equiv x$ modulo leur produit, c'est-à-dire $x^{257} \equiv x \pmod{65\,535}$. \end{corrige} (7) Rappeler pourquoi il existe des éléments de $(\mathbb{Z}/257\mathbb{Z})^\times$ dont l'ordre multiplicatif vaut exactement $256$. \begin{corrige} Ces éléments sont dits primitifs, et ils existent car $257$ est premier. \end{corrige} (8) On suppose que $x$ est un entier premier avec $65\,535$ et que l'ordre multiplicatif de sa classe modulo $257$ (qui est un élément de $(\mathbb{Z}/257\mathbb{Z})^\times$) vaut exactement $256$. Montrer que la classe de $x$ modulo $65\,535$ (qui est cette fois un élément de $(\mathbb{Z}/65535\mathbb{Z})^\times$) est elle aussi d'ordre multiplicatif $256$. \begin{corrige} On sait déjà que l'ordre multiplicatif de $x$ modulo $65\,535$ divise $256$ (c'est la question (2)), il s'agit de montrer qu'il n'est pas moindre. Mais si on avait $x^i \equiv 1 \pmod{65\,535}$ pour $0 < i < 256$, alors \emph{en particulier} on aurait $x^i \equiv 1 \pmod{257}$ puisque $257$ divise $65\,535$. Or on a supposé que l'ordre multiplicatif de $x$ modulo $257$ vaut $256$, ce qui signifie que $x^i \equiv 1 \pmod{257}$ ne se produit pas avant $256$. \end{corrige} (9) En déduire l'ordre multiplicatif maximal possible d'un élément de $(\mathbb{Z}/65535\mathbb{Z})^\times$. \begin{corrige} On a vu en question (2) que l'ordre multiplicatif d'un élément de $(\mathbb{Z}/65535\mathbb{Z})^\times$ divise toujours $256$, et on vient de voir en combinant (7) et (8) qu'il existe effectivement des éléments d'ordre $256$. \end{corrige} (10) Sans aucune hypothèse sur l'entier $x$, combien de valeurs distinctes peut prendre $x^{256}$ modulo $65\,535$ ? (On ne demande pas de calculer ces valeurs, uniquement de calculer leur nombre, c'est-à-dire, si on préfère, le cardinal de l'image de $x \mapsto x^{256}$ sur $\mathbb{Z}/65535\mathbb{Z}$.) \begin{corrige} On a vu que modulo chacun des $p \in \{3,5,17, 257\}$, il n'y a que deux valeurs possibles de $x^{256}$ modulo $p$, à savoir $0$ ou $1$. Comme $3,5,17,257$ sont premiers entre eux deux à deux, le théorème chinois assure qu'une congruence modulo $65\,535$ équivaut exactement à une congruence modulo chacun de $3,5,17, 257$. Appelons temporairement « valeur magique » une classe de congruence $65\,535$ qui est congrue à $0$ ou à $1$ modulo chacun des $4$ nombres $3,5,17, 257$ : il y a $16$ « valeurs magiques » (une pour chacune des combinaisons de $0$ ou de $1$ modulo chacun des $4$ nombres $3,5,17, 257$, ce qui fait $2^4 = 16$). D'après ce qu'on a vu, $x^{256}$ est toujours une valeur magique modulo $65\,535$. Et de plus, si $x$ lui-même est une valeur magique, alors $x^{i} \equiv x \pmod{65\,535}$ pour tout $i\geq 1$ puisque $0^{i} \equiv 0$ et $1^{i} \equiv 1$ modulo chacun des $p \in \{3,5,17, 257\}$. En particulier, $x^{256} \equiv x \pmod{65\,535}$ pour un tel $x$. Donc les $16$ valeurs magiques sont bien toutes atteintes par $x^{256}$. \end{corrige} % % % \exercice Soit $f = t^8 + t^4 + t^3 + t^2 + 1 \in \mathbb{F}_2[t]$. On admet que ce polynôme est irréductible. On pose $E = \mathbb{F}_2[t]/(f)$. (1) Combien d'éléments $E$ a-t-il ? Combien d'éléments $E^\times$ (le groupe des inversibles de $E$) a-t-il ? \begin{corrige} Comme $f$ est de degré $8$, l'anneau $E$ a $2^8 = 256$ éléments (représentés de façon unique par tous les polynômes de degré $<8$ sur $\mathbb{F}_2$). Comme $f$ est irréductible, cet anneau est, en fait, un corps. Ses éléments inversibles sont donc les éléments non nuls de $E$, et $E^\times$ a $255$ éléments. \end{corrige} On désignera par $\alpha \in E$ (plutôt que $\bar t$) la classe de $t$ modulo $f$. (2) Que peut-on dire \textit{a priori} de l'ordre multiplicatif de $\alpha$ ? C'est-à-dire : quelles sont les valeurs \textit{a priori} possibles ? (Remarque : $255 = 3 \times 5 \times 17$.) \begin{corrige} D'après le théorème de Lagrange, l'ordre multiplicatif de $\alpha$ doit diviser l'ordre du groupe $E^\times$, soit $255$. C'est donc un des nombres $3, 5, 17,\penalty0\, 3\times 5{=}15, \penalty0\, 3\times 17{=}51, \penalty0\, 5\times 17{=}85, \penalty0\, 3\times 5\times 17=255$ (la possibilité $1$ peut être écartée car $\alpha \neq 1$). \end{corrige} (3) Calculer les valeurs de $\alpha^i$ dans $E$ (c'est-à-dire la classe de $t^i$ modulo $f$) pour $i \leq 17$. \begin{corrige} On représente à chaque fois $\alpha^i$ par l'unique polynôme à coefficients dans $\mathbb{F}_2$ de degré $<8$ (en $\alpha$) auquel il est égal. Pour $0\leq i\leq 7$, il n'y a rien de mieux à écrire que $\alpha^i$. Pour $\alpha = 8$, on a bien sûr $\alpha^8 = \alpha^4 + \alpha^3 + \alpha^2 + 1$ d'après le polynôme $f$ lui-même. On obtient les valeurs suivantes en multipliant à chaque fois par $\alpha$ et en remplaçant $\alpha^8$, partout où il apparaît, par l'expression ci-dessus. Ceci donne : \begin{tabular}{r|l} $i$&$\alpha^i$\\ \hline $8$&$\alpha^4 + \alpha^3 + \alpha^2 + 1$\\ $9$&$\alpha^5 + \alpha^4 + \alpha^3 + \alpha$\\ $10$&$\alpha^6 + \alpha^5 + \alpha^4 + \alpha^2$\\ $11$&$\alpha^7 + \alpha^6 + \alpha^5 + \alpha^3$\\ $12$&$\alpha^7 + \alpha^6 + \alpha^3 + \alpha^2 + 1$\\ $13$&$\alpha^7 + \alpha^2 + \alpha + 1$\\ $14$&$\alpha^4 + \alpha + 1$\\ $15$&$\alpha^5 + \alpha^2 + \alpha$\\ $16$&$\alpha^6 + \alpha^3 + \alpha^2$\\ $17$&$\alpha^7 + \alpha^4 + \alpha^3$\\ \end{tabular} La valeur de $\alpha^{17}$ est bien celle qui était annoncée. (On pouvait aussi mener une division euclidienne pour chaque ligne, mais c'est très peu efficace.) \end{corrige} Pour permettre de vérifier les calculs, on donne le dernier résultat : $\alpha^{17} = \alpha^7 + \alpha^4 + \alpha^3$. On notera aussi $\beta$ cet élément $\alpha^{17} \in E$. (4) Calculer de même les valeurs de $\alpha^i$ les valeurs suivantes de $i$ : $34$, $51$, $68$ et $85$ (c'est-à-dire les multiples de $17$ jusqu'à $85$ inclus) ; si l'on préfère, ce sont les premières puissances de $\beta$. Pour simplifier certains calculs, on rappelle que $\Frob \colon x \mapsto x^2$ vérifie $\Frob(x_1 + x_2) = \Frob(x_1) + \Frob(x_2)$ dans $E$. \begin{corrige} Pour mener le calcul de $\alpha^{17} = \beta^2 = \Frob(\beta)$, on écrit $\beta = \alpha^7 + \alpha^4 + \alpha^3$, ce qui donne $\beta^2 = \alpha^{14} + \alpha^8 + \alpha^6 = \alpha^6 + \alpha^3 + \alpha^2 + \alpha$. On peut utiliser la même technique pour passer de $\alpha^{34} = \beta^2$ à $\alpha^{68} = \beta^4 = (\beta^2)^2$, ce qui donne $\alpha^{12} + \alpha^6 + \alpha^4 + \alpha^2 = \alpha^7 + \alpha^4 + \alpha^3 + 1$. En revanche, pour calculer $\alpha^{51} = \beta^3$ et $\alpha^{85} = \beta^5$, il n'y a pas mieux que de multiplier $\beta^2 = \alpha^6 + \alpha^3 + \alpha^2 + \alpha$ et $\beta^4 = \alpha^7 + \alpha^4 + \alpha^3 + 1$ respectivement par $\beta = \alpha^7 + \alpha^4 + \alpha^3$, développer le produit, et remplacer chaque puissance $\geq 8$ de $\alpha$ par la valeur connue (ou effectuer une division euclidienne par $f$). On obtient finalement : \begin{tabular}{r|l} $i$&$\alpha^i$\\ \hline $17$&$\alpha^7 + \alpha^4 + \alpha^3$\\ $34$&$\alpha^6 + \alpha^3 + \alpha^2 + \alpha$\\ $51$&$\alpha^3 + \alpha$\\ $68$&$\alpha^7 + \alpha^4 + \alpha^3 + 1$\\ $85$&$\alpha^7 + \alpha^6 + \alpha^4 + \alpha^2 + \alpha$\\ \end{tabular} La valeur de $\alpha^{85}$ est bien celle qui était annoncée. \end{corrige} Pour permettre de vérifier les calculs, on donne le dernier résultat : $\alpha^{85} = \alpha^7 + \alpha^6 + \alpha^4 + \alpha^2 + \alpha$. (5) Que vaut l'ordre multiplicatif de $\alpha$ ? Comment qualifie-t-on l'élément $\alpha$ de $E$ ? Quel est l'ordre multiplicatif de $\beta = \alpha^{17}$ ? \begin{corrige} On a vu en (2) que l'ordre de $\alpha$ est un des nombres $3, 5,\penalty0 15,\penalty0 17, \penalty0 51, \penalty0 85, \penalty0 255$. Or on a calculé $\alpha^i$ pour chacune des valeurs $3, 5,\penalty0 15,\penalty0 17, \penalty0 51, \penalty0 85$, et trouvé un résultat $\neq 1$. La seule possibilité qui demeure est donc $255$ : l'élément $\alpha$ est primitif dans $E$. Quant à l'ordre de $\beta$, puisque $\beta^i = \alpha^{17i}$ vaut $1$ si et seulement si $17i$ est un multiple de $255$, c'est-à-dire si et seulement si $i$ est un multiple de $\frac{255}{17} = 15$, c'est exactement $15$. (Ou si on préfère, il existe un isomorphisme $\psi \colon \mathbb{Z}/255\mathbb{Z} \to E^\times$ qui envoie $\bar\imath$ sur $\alpha^i$, et l'ordre multiplicatif de $\beta = \psi(17)$ est donc l'ordre additif de $17$ modulo $255$, soit $\frac{255}{17} = 15$.) \end{corrige} (6) Que vaut $\beta^{16}$ ? Quel est le degré absolu de $\beta$ ? \begin{corrige} Puisque $\beta$ est d'ordre $15$, on a $\beta^{15} = 1$ et $\beta^{16} = \beta$. Comme $\beta^2$ et $\beta^4$ et $\beta^8$ sont, pour leur part, différents de $1$ (toujours puisque $\beta$ est d'ordre $15$), le plus petit $r$ tel que $\Frob^r(\beta) := \beta^{2^r} = \beta$ est $4$, et le degré de $\beta$ est $4$. \end{corrige} (7) Vérifier que $\beta^4 + \beta + 1 = 0$. \begin{corrige} On a calculé $\beta^4 = \alpha^{68} = \alpha^7 + \alpha^4 + \alpha^3 + 1$, et c'est bien la même chose que $\beta + 1$, donc $\beta^4 + \beta + 1 = 0$. \end{corrige} On pose $g = t^4 + t + 1 \in \mathbb{F}_2[t]$, et $K = \mathbb{F}_2[t]/(g)$. On appelle $\Phi\colon \mathbb{F}_2[t] \to E$ l'application $P \mapsto P(\beta)$ qui à un polynôme $P \in \mathbb{F}_2[t]$ associe la valeur de celui-ci en $\beta$. Par exemple, la question (7) signifie que $\Phi(g) = 0$. (8) (a) Expliquer pourquoi $\Phi(h_1 + h_2) = \Phi(h_1) + \Phi(h_2)$ et $\Phi(h_1 h_2) = \Phi(h_1)\, \Phi(h_2)$ pour tous $h_1,h_2 \in \mathbb{F}_2[t]$. (b) Montrer que $\Phi(h) = \Phi(h')$ si $h \equiv h' \pmod{g}$. \begin{corrige} (a) La valeur en un point d'une somme ou d'un produit de polynômes est la somme ou le produit des valeurs de ces polynômes. (b) Si $h \equiv h' \pmod{g}$ c'est que $h-h' = qg$ pour un certain $q \in \mathbb{F}_2[t]$, donc $\Phi(h) - \Phi(h') = \Phi(q)\,\Phi(g)$, et comme $\Phi(g) = 0$ on a $\Phi(h) = \Phi(h')$. \end{corrige} (9) Déduire de (8b) qu'on peut définir une application $\varphi \colon K \to E$ qui envoie la classe (modulo $g$) d'un polynôme $h \in \mathbb{F}_2[t]$ sur $\Phi(h) \in E$. Déduire de (8a) que $\varphi(u_1 + u_2) = \varphi(u_1) + \varphi(u_2)$ et $\varphi(u_1 u_2) = \varphi(u_1) \, \varphi(u_2)$ pour tous $u_1,u_2 \in K$. Comment qualifie-t-on $\Phi$ et $\varphi$ ? \begin{corrige} Si $u \in K$, pour que la définition de $\varphi(u)$ ait un sens, il faut vérifier que $\Phi(h)$ ne dépend pas du polynôme $h \in \mathbb{F}_2[t]$ choisi pour représenter la classe $u$ modulo $g$ : or c'est précisément ce qui a été démontré en (8b). Par ailleurs, la définition même de l'addition et de la multiplication sur $K$ fait que la somme ou le produit de deux classes modulo $g$ sont représentées par la somme ou le produit de deux polynômes représentant ces classes : donc (8a) implique les propriétés voulues de $\varphi$ par rapport à l'addition et la multiplication. On dit que $\Phi$ et $\varphi$ sont des morphismes d'anneaux. \end{corrige} On désignera par $\gamma \in K$ (plutôt que $\bar t$) la classe de $t$ modulo $g$. Ainsi, on a $\varphi(\gamma) = \beta$ (puisque $\Phi(t) = \beta$). (10) Montrer que le cardinal de l'image de $\varphi$, autrement dit, le nombre de valeurs distinctes atteintes par $\varphi$, vaut au moins $16$. (On pourra, par exemple, dire ce que vaut $\varphi(\gamma^i)$ et compter toutes les valeurs ainsi atteintes, sans oublier d'ajouter $\varphi(0)$.) En déduire que $\varphi$ est injective (=deux éléments distincts de $K$ ont toujours des images distinctes dans $E$), et que le polynôme $g$ est irréductible. \begin{corrige} Comme $g$ est de degré $4$, l'anneau $K$ a pour cardinal $2^4 = 16$. Il faut prendre garde au fait qu'on ne sait pas encore que $K$ est un corps (à moins de vouloir vérifier autrement que $g$ est irréductible). Mais comme $\varphi(\gamma) = \beta$, on a $\varphi(\gamma^i) = \beta^i$ pour tout $i \in \mathbb{N}$. Comme $\beta$ est d'ordre $15$, ceci prend $15$ valeurs distinctes. Avec $\varphi(0) = 0$, ceci fournit $16$ valeurs distinctes dans l'image de $\varphi$. Mais comme $K$ n'a pas plus que $16$ éléments, on a montré que tous les éléments distincts de $K$ ont des images distinctes, i.e., $\varphi$ est injective. Pour conclure que $g$ est irréductible (i.e., que $K$ est bien un corps), on peut par exemple arguër que si $g = g_1 g_2$ avec $\deg g_1,\deg g_2 < 4$, alors $\Phi(g_1)\, \Phi(g_2) = \Phi(g) = 0$, mais $\Phi(g_i) = \varphi(\bar g_i)$ n'est pas nul car $\varphi$ est injective et que $g_i$ est le représentant standard de sa classe $\bar g_i$ modulo $g$, d'où une contradiction (car $E$ est un corps). Si on préfère, on peut faire valoir le fait que la question (6) montre que $\beta$ appartient à l'unique corps $F$ à $16$ éléments contenu dans $E$, donc tout polynôme en $\beta$ est aussi dans $F$, donc l'image de $\Phi$, qui est aussi l'image de $\varphi$, est dans $F$, donc est exactement $F$ puisqu'on a trouvé qu'elle était de cardinal $16$ --- donc $\varphi$ est un isomorphisme de $K$ sur $F$, et comme $F$ est un corps, $K$ en est aussi un (donc $g$ est irréductible). Enfin, on pouvait simplement invoquer le fait que, comme le degré de $\beta$ vaut $4$ (question (6)), et que le polynôme $g$ est unitaire de degré $4$ et annule $\beta$, le polynôme $g$ est le polynôme minimal de $\beta$, donc il est irréductible. \end{corrige} % % % \end{document}