%% 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}
