%% 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 $32\,768$ tandis que la question (2) affirme qu'en fait il divise $256$). \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\,536}$ pour $0 < i < 256$, alors \emph{en particulier} on aurait $x^i \equiv 1 \pmod{257}$ puisque $257$ divise $65\,536$. 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 « 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}$. 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 ? 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$.) (3) Calculer les valeurs de $\alpha^i$ dans $E$ (c'est-à-dire la classe de $t^i$ modulo $f$) pour $i \leq 17$. 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 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$ ? Quel est l'ordre multiplicatif de $\beta = \alpha^{17}$ ? (6) Que vaut $\beta^{16}$ ? (7) Vérifier que $\beta^4 + \beta + 1 = 0$. 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}$. (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$ ? 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. % % % \end{document}