summaryrefslogtreecommitdiffstats
path: root/controle-20121127.tex
blob: 1d3c8d5a16e2aaee225b05f76e42fad637221f06 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
%% 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}