]> AND Private Git Repository - modelisationMathS3.git/blob - rsa.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
a96d0a218530f7186b0e729625d0bb8491ec39a1
[modelisationMathS3.git] / rsa.tex
1
2 % Objectifs pédagogiques :
3 % arithmétique classique (pgcd, diviseur)
4 % algorithme RSA
5 % calculs modulo 
6 % Théorème de Bezout,  petit Fermat
7 % Nombres premiers : tests simples, avancés, disctribution
8 % Multiplications rapides:  
9 % Puissance rapides 
10 % Factorisation 
11
12 % Cryptographie RSA : comprendre et approfondir
13 % on doit discuter de la taille des nombres premier pour pouvoir coder tout mot.
14 % on doit pouvoir déduire  de l'unicité de la clé d pour une cle e
15
16 \section{Introduction}
17
18 La \emph{cryptographie}, où l'art d'écrire avec une clé, 
19 est apparue en même temps que l'écriture.
20 Dès qu'une information doit être transmise de manière sure,
21 le message doit être protégé de toute interception: il est crypté par l'émetteur
22 et décrypté par le récepteur.
23 Dans le cas où l'on utilise une clé de cryptage, on a le schéma présenté 
24 à la figure~\ref{Fig:schemageneral}.
25 \begin{figure}[ht]
26 \begin{center}
27 %\includegraphics[scale=0.5]{schemacrypto.pdf}
28 \includegraphics[scale=0.5]{schemacrypto.eps}
29 \end{center}
30 \caption{Schéma général d'une méthode de cryptage/décryptage}\label{Fig:schemageneral}
31 \end{figure}
32 Dans cette figure, rien ne précise cependant que la clé de
33 cryptage est la même que celle de décryptage.
34 Lorsqu'une méthode se fondent sur une clé unique pour chiffrer et déchiffrer
35 un message on emploie le terme de cryptographie \emph{symétrique}. 
36 Se pose immédiatement  le problème de confidentialité de la clé et la  mise 
37 en {\oe}uvre de celle-ci 
38 surtout lorsque le nombre de destinataires est grand: 
39 il faut une clé pour chacun d'entre eux.
40
41 Pour résoudre ce problème d'échange de clés, la cryptographie 
42 \emph{asymétrique} a été mise au point dans les années 1970.
43 Elle se base sur le principe d'une clé publique pour le chiffrement et 
44 d'une clé privée pour le déchiffrement.
45 Chaque destinataire (receveur)
46 diffuse sa clé publique à quiconque désire chiffrer 
47 un message. Le message crypté  ne pourra être déchiffré qu'avec la clé privée,
48 qui elle reste confidentielle.
49
50 RSA est un algorithme de cette famille. Son étude d'un point de vue mathématique
51  est l'objectif de ce TD.
52 Il s'inspire largement de~\cite{RSA09} 
53
54 % Annonce plan
55
56
57
58 \section{L'algorithme RSA}
59
60 \subsection{Les étapes détaillées de l'algorithme}
61
62 On rappelle qu'un système cryptographique à clé publique est
63 initialisé par le receveur, c.-à-d. celui qui veut recevoir des messages de
64 manière sure. 
65
66 \paragraph{Première étape: choix des deux nombres $p$ et $q$.} 
67 Le receveur choisit deux grands nombres premiers
68 $p$ et $q$ et calcule $n = pq$. Puis il calcule $\varphi(n)$, 
69 où $\varphi : \N^* \rightarrow \N^* $ est la \emph{fonction d'Euler} 
70 définie par $\varphi(n)$  est le nombre d'entiers dans $\{1, 2, \dots , n -1 \}$ 
71 qui sont premiers avec $n$.
72 \paragraph{Deuxième  étape: choix de la clé publique.} 
73 Le receveur choisit $e \in 
74 \{1, \dots , n-1\}$  premier avec $\varphi(n)$.
75 La clé publique est la paire $(e,n)$. L'expéditeur
76 va s'en servir pour crypter son message à la quatrième étape ci-dessous.
77 \paragraph{Troisième  étape: construction de la clé privée.}
78 Le receveur calcule l'entier $d \in \{1,\dots, n-1\}$
79 tel que le reste de la division de $ed$ par $\varphi(n)$ est 1. 
80 Ceci se note aussi $ed \equiv 1 [\varphi(n)]$ qui se lie $ed$ est congru 
81 à 1 modulo $\varphi(n)$.
82 La paire $(d,n)$ est la clé privée de décryptage. Elle
83 est secrète et permet au receveur de décrypter tous les messages reçus
84 et cryptés avec $(e,n)$. 
85 \paragraph{Quatrième  étape: cryptage du message.}
86 L’expéditeur peut crypter tout message écrit sous la forme 
87 d'un nombre $m$ appartenant à $\{1, \dots , n-1\}$ et qui est 
88 premier avec $n$. 
89 Le message codé est le reste $a$ de la division de $m^e$ par $n$. 
90 On a donc $m^e \equiv a [n]$, où $a \in \{1, \dots , n - 1\}$.
91 \paragraph{Cinquième  étape:  décryptage du message.} 
92 Le receveur dispose de $a$ et de sa clé privée $(d,n)$. 
93 Pour décrypter $a$, il calcule le reste dans la division par $n$
94 de $a^d$ (c.-à-d. $a^d [n]$). 
95 Si aucune erreur de calcul n'a été effectuée, c'est le message initial $m$.
96
97
98 \subsection{Sur un exemple très petit}
99 Le receveur choisit $p=7$, $q=13$.
100 \begin{enumerate}
101 \item Construire l'ensemble des entiers qui sont premiers avec $n=pq$ 
102   et en déduire que $\varphi(91)=72$.
103 \item Montrer que $(29,91)$ est un candidat acceptable de clé publique.
104 \item Trouver la clé privée associée.
105 \item Montrer que  l'expéditeur a la possibilité de crypter le message $m=59$.
106 \item Construire le message crypté $a$ à l'aide de la clé publique.
107 \item Décrypter
108  le message $a$ à l'aide de la clé privée. Il doit s'agir de $m$. 
109 \end{enumerate} 
110
111
112 \subsection{Les points clés}
113 L'algorithme RSA repose sur plusieurs points clés rencontrés successivement:
114 \begin{itemize}
115 \item la génération de deux grands nombres premiers $p$ et $q$ ;
116 \item la multiplication de grands nombres : $pq$, $ed$,   
117 \item l'arithmétique modulaire;
118 \item l'algorithme d'Euclide de génération de PGCD et son corollaire de Bézout;
119 \item la factorisation, qui tant qu'elle n'est pas réalisable sur des grands nombres, garantit la sécurité du cryptage des données.
120 \end{itemize}
121
122 \section{Rappels d'arithmétique}
123
124 Soit deux entiers $a$ et $b$ dans $\Z$.
125 On dit que $a$ divise $b$ (que l'on note $a | b$)
126 s'il existe un entier $q \in \Z$ tel que $b = aq$. 
127
128 Le plus grand diviseur commun (PGCD) de 
129 $a$ et $b$, noté $a\land b$ est l'entier naturel qui vérifie 
130 \begin{itemize}
131 \item $a \land b | a$ et $a \land  b | b$;
132 \item Si $d | a$ et $d | b$, alors $d | a\land b$.
133 \end{itemize}
134
135 \subsection{Algorithme d'Euclide de calcul de PGCD}
136
137 Par définition, le PGCD de $a$ non nul avec
138 0 est $a$ (définition raisonnable, car 0
139 est divisible par tout entier non nul, donc par $a$, qui l'est aussi par $a$) 
140 et enfin le PGCD de 0 et de 0 n'est pas
141 défini.
142
143 On se limite ici au cas de deux entiers $a$ et $b$ strictement positifs. Supposons par exemple $a>b$
144
145 \begin{enumerate}
146 \item La division euclidienne de $a$ par $b$ peut s'écrire $a=bq+r$ avec $0\infeg r<b$.
147
148 \item Montrons que \og $d$ est un diviseur commun à $a$ et $b$ \fg{}
149   est équivalent à  \og $d$ est un diviseur commun à $b$ et $r$ \fg{}.
150 \begin{itemize}
151 \item  Soit $d$ un diviseur commun à $a$ et $b$, qui peuvent alors s'écrire $a=da'$ et $b=db'$. L'égalité $a=bq+r$ devient $da'=db'q+r$ ou encore $r=d(a'-b'q)$, donc $d$ est aussi un diviseur commun à $b$ et $r$.
152
153 \item Réciproquement, soit $d$ un diviseur commun à $b$ et $r$, qui peuvent alors s'écrire $b=db'$ et $r=dr'$ et l'égalité $a=bq+r$ devient $a=d(b'q+r')$.
154 Donc $d$ est un diviseur commun à $a$ et $b$.
155 \end{itemize}
156
157 Ainsi, les ensembles des diviseurs communs à $a$ et $b$ 
158 d'une part et à $b$ et $r$ d'autre part sont identiques.
159 En particulier $a\et b=b\et r$.
160
161 \item Si $r=0$ on a $a\et b= b\et 0$ qui est égal à $b$.
162
163 \item Sinon,  $r$ est différent de $0$ et on peut donc effectuer la
164   division euclidienne de $b$ par $r$, qui donne un reste $r_{1}$, 
165   tel que $0 \le r_{1}<r$ et $b\et r=r\et r_{1}$.
166
167 \item Cet algorithme est itéré jusqu'à l'obtention d'un reste nul, ce qui se produit obligatoirement puisqu'il s'agit d'entiers et que la suite des restes ainsi construite est strictement décroissante.
168   Le PGCD est alors l'avant-dernier reste (le dernier non nul).
169 \end{enumerate}
170
171 \begin{Exo}
172 Déterminer $154 \land 35$ par l'algorithme d'Euclide.
173 \end{Exo}
174
175
176 \begin{Exo}
177 Donner le code d'un programme qui prend en entrée deux entiers naturels $a$ 
178 et $b$ tels que $a>b \ge 0$ et qui retourne leur PGCD 
179 \end{Exo}
180
181 \subsection{Les incontournables Bézout et Gau{\ss}}
182
183 \begin{Prop}[Identite   de Bézout]
184 On considère deux nombres entiers strictement positifs $a$ et $b$. 
185 Il existe un couple d'entiers $x$ et $y$ tels que $ax+by=d$, 
186 où $d$ est le PGCD de $a$ et de $b$. 
187 \end{Prop}
188
189 \begin{Proof}
190 Dans la preuve de la proposition précédente, on avait successivement
191
192 \begin{eqnarray}
193 a &=& b \times q_1 +r_1 \label{eq:def:r1} \\
194 b &=& r_1 \times q_2 +r_2 \nonumber \\
195 r_1 &=& r_2 \times q_3 +r_3 \nonumber\\
196 & \vdots & \nonumber\\
197 r_{n-4} & = & r_{n-3} \times q_{n-2} + r_{n-2} \label{eq:def:rnm4} \\
198 r_{n-3} & = & r_{n-2} \times q_{n-1} + r_{n-1} \label{eq:def:rnm3} \\
199 r_{n-2} & = & r_{n-1} \times q_{n} + r_{n} \label{eq:def:rnm2}\\
200 r_{n-1} & = & r_{n} \times q_{n+1} + 0 \nonumber 
201 \end{eqnarray}
202
203
204 On sait que $a\land b$ est $r_n$ le dernier reste non nul.
205 On remonte les équations une à une en démarrant de (\ref{eq:def:rnm2}).
206 \begin{eqnarray}
207 r_{n}  & = & r_{n-2} - r_{n-1} \times q_{n}  \nonumber \\
208   & = & r_{n-2} - (r_{n-3} - r_{n-2} \times q_{n-1}) \times q_{n} \textrm{ (on remplace $r_{n-1}$ par son expression tirée de  (\ref{eq:def:rnm3})}) \nonumber\\
209   & = & r_{n-2}. (1 + q_{n-1}. q_{n}) - r_{n-3}. q_{n} \textrm{ (factorisation)}\nonumber \\
210    & = & (r_{n-4} - r_{n-3} \times q_{n-2}). (1 + q_{n-1}. q_{n}) - r_{n-3}. q_{n}\textrm{ (on remplace $r_{n-2}$ par son expression tirée de (\ref{eq:def:rnm4})}) \nonumber \\
211 & \vdots & \nonumber \\
212 & = & \ldots \textrm{ (on remplace $r_{1}$ par son expression tirée de (\ref{eq:def:r1})}) \nonumber\\ 
213 & = &ax + by \nonumber
214 \end{eqnarray}
215 \end{Proof}
216
217
218
219 \begin{Def}[Nombres premiers entre eux]
220 Les deux entiers relatifs $a$ et $b$ sont premiers entre eux si 
221 leur plus grand commun diviseur est égal à 1.
222 \end{Def}
223
224
225
226 \begin{Prop}[Théorème de Bézout]
227 Deux entiers strictement positifs 
228 $a$ et $b$ sont premiers entre eux, si et seulement s'il
229 existe un couple $(x,y)$ d'entiers relatifs vérifiant $ax + by = 1$.
230 \end{Prop}
231 \begin{Proof}
232 \begin{itemize}
233 \item[\textbf{Seulement si.}] Supposons $a$ et $b$ premiers entre eux. 
234 D'après l'identité de Bézout, 
235 il existe donc un couple d'entiers $x$ et $y$ tels que $ax+by=1$, 
236 car 1 est le PGCD de $a$ et de $b$. 
237 \item[\textbf{Si.}] 
238   Supposons qu'il existe un couple $(x,y)$ 
239   d'entiers relatifs vérifiant $ax + by = 1$ et $d = a \land b$.
240   L'entier $d$ divise les produits $ax$ et $by$. Donc $d$ divise 
241   $ax + by$ et donc $d$ est 1.   
242 \end{itemize}
243 \end{Proof}
244
245 \begin{Prop}[Théorème de Gau{\ss}]
246 Soient $a$, $b$ et $c$ trois entiers naturels. 
247 Si $a$ divise le produit $bc$ 
248 et s'il est premier avec $b$, alors il divise $c$.
249 \end{Prop}
250
251 \begin{Exo}
252 Faire la preuve de ce théorème
253 \end{Exo}
254
255 \begin{Prop}[Fonction d'Euler]
256 Si $p$ et $q$ sont deux nombres premiers distincts alors l'égalité
257 suivante permet de trouver le valeur de la fonction d'Euler en un seul 
258 produit:
259 \begin{equation}
260 \varphi(pq)=(p-1)(q-1). \label{FEuler}
261 \end{equation} 
262 \end{Prop}
263
264 \begin{Exo}[Preuve de l'expression d'Euler]
265 On doit compter le cardinal des nombres de $\{1, 2, . . . , pq -1\}$ qui sont 
266 premiers avec $pq$.
267 \begin{enumerate}
268 \item Construire l'ensemble $P$ des entiers naturels multiples de $p$ inférieurs à $pq -1$. Combien en a-t-on?
269 \item Construire l'ensemble $Q$ des entiers naturels multiples de $q$ inférieurs à $pq -1$. Combien en a-t-on?
270 \item Supposons qu'un élément $k$ appartienne à la fois à $P$ et à $Q$.
271   Montrer que cela implique qu'il existe deux entiers naturels 
272   $m_1$ et $m_2$ tels que $m_1.p = m_2.q$.
273 \item En utilisant le théorème de Gau{\ss}, montrer que cela est absurde.
274 \item En déduire l'équation (\ref{FEuler}).
275 \end{enumerate}
276 \end{Exo}
277
278
279
280
281
282
283
284 %Refaire cet exo avec 27x +8y = 1
285 \begin{Exo}
286 L'objectif est de résoudre l'équation $(E)$ $405x -120y =15$ 
287 d'inconnues $x$ et $y$.
288 \begin{enumerate}
289 \item Trouver le PGCD de 405 et 120  à l'aide de l'algorithme d'Euclide.
290 \item En déduire une solution particulière de cette équation.
291 \item En utilisant la solution particulière, montrer que $(E)$ est 
292   équivalente à $27(x-3) = 8(y-10)$.
293 \item Utiliser le théorème de Gau{\ss} pour montrer que 
294   l'ensemble des solutions de $(E)$ est $\{(8k+3;27k+10)| k \in \Z\}$. 
295 \end{enumerate}
296 \end{Exo}
297
298
299
300 \begin{Exo}
301   Soit $p$ un nombre premier.
302 \begin{enumerate}
303 \item Calculer $\varphi(p^2)$.
304 \item Est-ce que RSA  fonctionnerait aussi avec l'entier $n = p^2$ à la place de $n=pq$?
305 \end{enumerate}
306 \end{Exo}
307
308
309 \begin{Exo}[Sujet du bac S Liban 2005]
310 On rappelle le résultat suivant appelé le corollaire du 
311 petit théorème de Fermat.
312
313 \emph{Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
314  alors $a^{p-1}-1$ est un multiple de $p$.}
315 \begin{enumerate}
316 \item  On considère l’équation $(E)$ : $109x-226y=1$ où $x$ et $y$
317   sont des entiers relatifs.
318 \begin{enumerate}
319 \item  Déterminer $109\land 226$. 
320   Que peut-on en conclure pour l'équation $(E)$? 
321 \item  Montrer que l'ensemble des solutions de $(E)$  
322   est l'ensemble des couples de la forme 
323   $(141+226k ;68+109k)$, où $k$ appartient à $\Z$.
324   En déduire qu'il existe un unique entier naturel non nul $d$ 
325   inférieur ou égal à 226 et un unique entier naturel non nul $e$ tels que
326   $109d =1+226 e$ (on précisera les valeurs des entiers $d$ et $e$).
327 \end{enumerate}
328 \item Démontrer que 227 est un nombre premier.
329 \item  On note $A=\{0,1,2,\dots,226\}$. On considère les deux fonctions 
330   $f$ et $g$ de $A$ dans $A$ définies de la manière suivante: 
331 \begin{itemize}
332 \item  A tout entier $a\in A$, $f$ associe le reste de
333   la division euclidienne de $a^{109}$ par 227.
334 \item A tout entier $a\in A$, $g$ associe le reste de la
335   division euclidienne de $a^{141}$ par 227.
336 \end{itemize}
337 \begin{enumerate}
338 \item Vérifier que $g(f(0))=0$ .
339 \item Montrer que, quel que soit l'entier non nul $a$ de $A$ , $a^{226}-1$ est multiple de 227.
340 \item En déduire que, quel que soit l'entier non nul $a$ de $A$, 
341 $g(f(a))=a$ . Que peut-on dire de $f(g(a))=a$?
342 \end{enumerate}
343 \end{enumerate}
344 \end{Exo}
345
346
347
348 \section{Congruence modulo}
349
350 \begin{Def}[Congruence modulo]
351 Soit $a$ et $b$ deux entiers relatifs.
352 On dit que $a$ est congru $b$ modulo $n$ si $n$ divise $a-b$, c'est-à-dire
353 s'il existe $x \in \Z$ tel que $(a-b) = nx$.
354 On note    $a \equiv b [n]$. 
355 La relation \og $\equiv [n]$ \fg{}
356 est une relation d'équivalence appelée congruence modulo $n$.
357 \end{Def}
358
359 \begin{Prop}
360 Soit $a$, $b$, $c$, $d$, $x$ et $y$ dans $\Z$. 
361 Si $a \equiv c[n]$ et  $b \equiv d[n]$, alors
362 \begin{enumerate}
363 \item $a +b \equiv c + d [n]$;
364 \item $ab \equiv cd [n]$;
365 \item $ax +by \equiv cx +dy [n]$.
366 \end{enumerate}
367 \end{Prop}
368
369 \begin{Exo}
370 Démontrer la proposition précédente.
371 \end{Exo}
372
373 \begin{Prop}
374 Soit deux entiers naturels $a$ et $n$ tels que $1< a< n$.
375 Si $a$ et $n$ sont premier entre eux, 
376 alors il existe un unique $x \in \{1, \dots, n-1\}$ tel 
377 que $ax \equiv 1[n]$.
378 \end{Prop}
379
380 \begin{Proof}
381 \begin{itemize}
382 \item[\textbf{Existence.}]
383 Comme $a$ et $n$ sont premiers entre eux, d'après le théorème de Bézout,
384 il existe $x$ et $y$ entiers tels que $ax+ny = 1$, soit encore $ax \equiv 1[n]$.
385 \item [\textbf{Unicité.}]
386 Supposons qu'il existe une seconde solution $x'\in \{1, \dots, n-1\}$ telle que 
387 $ax' \equiv 1[n]$. Donc $a(x-x') \equiv 0[n]$. Or $n$ est premier avec  $a$.
388 D'après le théorème de Gau{\ss}, $n$ divise donc $x-x'$.
389 Or $x-x'\in \{-n+2,-n+3,\dots,-1,0,1, \dots, n-2\}$. Le seul nombre divisible par $n$ est 0 et donc $x=x'$.
390 \end{itemize} 
391 \end{Proof}
392
393 \begin{Exp}
394 Trouvons les nombres $x$ tels que $7x+11$ soit multiple de 36. Dit autrement, 
395 résoudre l'équation $7x \equiv -11 [36]$. 
396
397 On cherche un \og inverse \fg{} de 7 c.-à-d. un nombre $t$, $1 < t < 35$ 
398 tel que $7t \equiv 1 [36]$. 
399 Soit à résoudre $7t \equiv 1 [36]$ qui revient à trouver $t$ et $u$ tels
400 que  $7t -36u = 1$, soit encore les coefficient de Bézout relatifs à 
401 (7 et 36). On trouve successivement 
402 \begin{eqnarray*}
403 36 & = & 7  \times 5 +1 \\ 
404 7 & = & 7 \times 1 + 0 \\
405 & \textrm{et donc}&\\
406 1 & = & 36 - 7 \times 5
407 \end{eqnarray*}
408 et donc $t = -5$ (et $u=-1$). 
409 On en déduit $7x \equiv -11 [36]$ est équivalent à 
410 $(-5).7x \equiv (-5).-11 [36]$ soit encore 
411 $x \equiv 55 [36] \equiv 19 [36]$.
412 \end{Exp}
413
414 \begin{Exo}
415 Trouver les entiers relatif $x$ tels que 
416 $261x +2$ soit multiple de 305.
417 \end{Exo}
418
419
420
421 \begin{Exo}
422 \begin{enumerate}
423 \item Démonter que $3^5 \equiv 1 [11]$
424 \item En déduire que pour tous entiers naturels $k$ et $r$ on a 
425                                         $3^{5k +r} \equiv 3^r [11]$.
426 \item  $n$ étant un entier naturel, quels sont les restes possibles
427   dans la division de $3^n$ par 11?
428 \item  Trouvez pour quelles valeurs de $n$, $3^n + 7$ est divisible par 11.
429 \end{enumerate}
430 \end{Exo}
431
432
433
434
435 \begin{Exo}
436 On se place dans le contexte de cryptographie par RSA.
437 Démontrer que si la clé d'encryptage est $e < \varphi(n)$, alors 
438 il existe une unique clé de décodage entre 1 et $\varphi(n)$.
439 \end{Exo}
440
441 \begin{Prop}[Théorème d'Euler]\label{th:Euler}
442 Soit $n \in \N^*$ et $m$, $m<n$ un entier relativement premier avec $n$.
443 Alors 
444 \begin{equation}
445 m^{\varphi(n)}\equiv1 [n].
446 \end{equation}
447 \end{Prop}
448 On laisse de côté la démonstration.
449
450 \begin{Prop}[Correction de RSA]
451 Le cryptage-décryptage du code RSA est correct: 
452 on crypte un message $m$ tel que 
453 $m\land n= 1$ en $a$ avec  
454 $ m^e  \equiv a [n]$ selon la clé $(e,n)$.
455 Alors le décryptage selon la clé $(d,n)$ redonne
456 le message initial : $a^d \equiv m [n]$.
457 \end{Prop} 
458 \begin{Proof}
459 \begin{eqnarray*}
460 a^d & \equiv &   (m^e)^d [n]\\
461 & \equiv &   m^{ed} [n] \textrm{ (réécriture)}\\
462 & \equiv &   m^{k.\varphi(n)+1} [n] \textrm{ (définition de $d$)}\\
463 & \equiv &   m^{k.\varphi(n)}m [n] \textrm{ (réécriture)}\\
464 & \equiv &   (m^{\varphi(n)})^km [n] \textrm{ (réécriture)}\\
465 & \equiv &   (1)^km [n] \textrm{ (théorème d'Euler)}\\
466 & \equiv &   m [n] \textrm{ (réécriture)}\\
467 \end{eqnarray*}
468 \end{Proof}
469
470
471 \begin{Exo}
472 On considère l'algorithme suivant: 
473 on choisit deux nombres premiers $p$ et $q$
474 distincts tels que 
475 $p \equiv 2 [3]$ et $s \equiv 2 [3]$.
476 Soit $n = pq$. 
477 Alice veut envoyer un message  à Bob. 
478 Comme dans RSA, son message est un nombre $m \in \ \{1, . . . , n - 1\}$ 
479 tel que $m \land  n = 1$
480 Le message codé d'Alice est le résultat $a= m^3[n]$.
481 Bob décode $a$ en calculant 
482 \[
483 m' \equiv a^{d} [n] \textrm{ où $d=\dfrac{2(p-1)(q-1)+1}{3}$} 
484 \]
485 Normalement $m$ doit être égal à $m'$.
486
487 \begin{enumerate}
488 \item Choisir $p=11$, $q=17$, $m=4$ puis construire le message codé ainsi que le message décodé.
489 \item  Montrer que $d$ est toujours un entier.
490 \item Expliquer pourquoi $a$ et $m'$ ne sont pas divisibles par $n$.
491 \item Montrer que Bob a bien décodé le message d’Alice.
492 \end{enumerate}
493
494 \end{Exo}
495
496
497 \begin{Prop}[Petit théorème de Fermat]
498 Si $p$ est un nombre premier et $a$ un entier 
499 alors $a^{p} \equiv a [p]$.
500 \end{Prop}
501
502 \begin{Proof}
503 La preuve se fait par récurrence sur $a$. 
504 \begin{itemize}
505 \item Pour $a=0$, c'est trivial.
506 \item Supposons la formule établie pour $k=a$ et montrons qu'elle l'est aussi
507 pour $k=a+1$. 
508 On remarque tout d'abord que pour chaque $k$, $0 < k < p$, le coefficient 
509 binomial $\binom{p}{k} = \dfrac{p!}{k!(p-k)!}$ est divisible par $p$, c.-à-d.
510 $\binom{p}{k} \equiv 0 [p]$.
511 On a alors successivement:
512 \begin{eqnarray*}
513 (k+1)^p &=& a^p + 
514 \binom{p}{1}a^{p-1}+\binom{p}{2}a^{p-2}+\dots +\binom{p}{p-1}a^{1}+1\\
515 &\equiv& a^p +1 [p]\textrm{ (d'après la remarque sur les coeff. binomiaux)}\\\
516 &\equiv& a +1 [p]\textrm{ (par hypothèse de récurrence).}\\\
517 \end{eqnarray*}
518 \end{itemize}
519 \end{Proof}
520
521 \begin{Prop}[Corrolaire du petit théorème de Fermat]
522 Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
523 alors $a^{p-1}-1$ est un multiple de $p$.
524 \end{Prop}
525 \begin{Proof}
526 D'après le petit théorème de Fermat, $a^{p}  \equiv a [p]$. Dit Autrement
527 $p$ divise $a^{p} - a = a (a^{p-1}-1)$. Or $p$ est premier avec  $a$ d'après les 
528 hypothèses. D'après le théorème de Gau{\ss}, $p$ divise $a^{p-1}-1$.
529 \end{Proof}
530
531 \subsection{Puissance de grands nombres}
532
533 \begin{Exp}
534 Calculons $666^{999}[13]$.
535 On a successivement:
536 \begin{eqnarray*}
537 666^{999} & \equiv & (13\times 51 + 3)^{999} [13]\\ 
538  & \equiv & 3^{999} [13]\\ 
539  & \equiv & 3^{12\times83 +3} [13] \\
540  & \equiv & 3^3 \times (3^{12})^{83} [13] \\
541  & \equiv & 3^3 \times (1)^{83} [13] \textrm{(car $3^{12}\equiv 1 [13]$ d'après le corollaire du petit théorème de Fermat)}\\ 
542  & \equiv & 27 [13]\\
543  & \equiv & 1 [13]
544 \end{eqnarray*} 
545 \end{Exp}
546
547
548
549 \begin{Exo}
550 Calculer $2^{500} [13]$ et $26^{1000} [17]$.
551 \end{Exo}
552
553
554 \begin{Exo}
555 Montrer que si l'entier naturel $n$ est premier alors
556 $$(x +1)^n \equiv x^n +1[n].$$
557
558 On a même l'équivalence, cependant, l'autre sens est plus technique à démontrer.
559
560 \end{Exo}
561
562
563
564
565
566 \section{Génération de grands nombres premiers}
567 Dans ce qui suit, on nomme $\Prem$ l'ensemble des nombres premiers.
568 Depuis Euclide, on sait que $\Prem$ est de taille infinie.
569 Fermat avait cru donner une formule ne générant que des nombres premiers.
570 Il affirmait que pour tout $n \in \N$, le nombre 
571 \begin{eqnarray}
572 F_n &= & 2^{2^n} +1 
573 \end{eqnarray}
574 était premier. Or 641 divise $F_5$. Aujourd'hui, on pense que seuls 
575 les nombres de $F_0$ à $F_4$ sont premiers.
576
577 \subsection{Distribution des nombres premiers parmi les entiers}
578
579 Même si on ne connaît pas de formule permettant de construire tous les 
580 nombres premiers, tout n'est pas perdu puisque les nombres premiers 
581 ne sont pas si rares que cela. Le théorème suivant donne même 
582 la proportion approximative des entiers inférieurs ou égaux à
583 $N$  qui sont premiers.
584 \begin{Prop}[Théorème des nombres premiers]
585 La fonction $\pi:\N \rightarrow \N$  associe 
586 à chaque nombre $N$ le nombre d'entiers inférieurs ou égaux à $N$ qui sont 
587 premiers, soit $\pi(N) = |\{p \le N | p \textrm{ premier}\}|$.
588 Lorsque $n$ est grand, on a:
589 \begin{eqnarray}
590 \pi(N) &\approx& \dfrac{N}{\ln(N)}
591 \end{eqnarray}
592 \end{Prop}
593 La preuve de ce théorème est d'un niveau très avancé et n'est pas reproduite 
594 ici.
595
596 Pour obtenir un  entier de 100 chiffres, il suffit de considérer 
597 $N= 10^{100}$. Si on choisit au hasard un nombre $n$ dans $\N_{N}^{*}$,
598 la probabilité qu'il soit premier est: 
599 \begin{eqnarray*}
600 \textrm{Prob}(n \textrm{ premier}) &\approx&
601  \dfrac{\dfrac{N}{\ln(N)}}{N} \\
602  &\approx&
603  \dfrac{1}{\ln(N)}
604 \end{eqnarray*}
605 Le tableau~\ref{Table:propPrem} donne une valeur approchée de 
606 cette probabilité pour quelques nombres de chiffres. 
607 Dans celui-ci:
608 \begin{itemize}
609 \item la seconde ligne n'impose aucune restriction sur le dernier chiffre;
610 \item la troisième ligne impose que le dernier chiffre soit dans 
611   $\{1,3,5,7,9\}$: il est  inutile de vérifier que les
612   multiples de 2 sont premiers!
613 \item la quatrième ligne impose que le dernier chiffre soit dans $\{1,3,7,9\}$:
614   les multiples de 5 ne sont pas premiers!
615 \end{itemize}
616 On constate que si l'on tire au hasard un nombre (même de 100 chiffres), 
617 parmi ceux qui se terminent par $\{1,3,7,9\}$ (ensemble noté $B$ par la suite) 
618 la probabilité qu'il soit premier n'est pas infime. La solution au problème 
619 de génération de nombres premiers repose sur la capacité ou non a disposer 
620 d'un test efficace de primalité pour des grands nombres.
621
622 %% Attention ce tableau est généré par ailleurs 
623 \begin{table}[ht]
624 \begin{center}
625 \begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|}
626  \hline 
627 Nombre de chiffres & \textbf{75}& \textbf{100}& \textbf{125}& \textbf{150}& \textbf{175}& \textbf{200}& \textbf{225}& \textbf{250}& \textbf{275}& \textbf{300}\\
628 \hline 
629 Dernier chiffre quelconque & 172& 230& 287& 345& 402& 460& 518& 575& 633& 690\\
630 \hline 
631 Dernier chiffre impair & 86& 115& 143& 172& 201& 230& 259& 287& 316& 345\\
632 \hline 
633 Dernier chiffre dans $\{1,3,7,9\}$& 69& 92& 115& 138& 161& 184& 207& 230& 253& 276\\
634 \hline
635  \end{tabular}
636 \end{center}
637 \caption{Probabilités inverse d'obtenir un nombre premier \label{Table:propPrem}}
638 \end{table}
639
640
641 On considère comme expérience aléatoire le fait de tirer un nombre au hasard 
642 dans $B$. On a une probabilité $p$ que le nombre soit premier.
643 Soit $X$ la variable aléatoire qui compte le nombre 
644 de fois où l'on a réalisé cette expérience avant d'obtenir un nombre premier.
645 $X$ suit une loi géométrique de paramètre $p$:
646 \[
647 P(X=k) = (1-p)^{k-1}p.
648 \]
649 Or l'espérance d'une variable aléatoire
650 suivant une loi géométrique de paramètre $p$ est $\frac{1}{p}$.
651 Pour 100 chiffres, il faudra en moyenne 92 tirages pour générer un 
652 nombre premier. 
653
654 Il \og reste \fg{} à fournir une méthode efficace pour décider 
655 de la primalité d'un entier, ce que présente la section suivante.
656
657
658 \subsection{Tests de primalité}
659 Chaque section donne un algorithme permettant de décider si un entier $p$ fourni
660 en entrée est premier ou non.
661
662 \subsubsection{Méthode naïve}
663 On vérifie s'il est divisible par l'un des entiers pairs compris entre 2 et 
664 $\sqrt{p}$. Si la réponse est négative, alors $p$ est premier, 
665 sinon il est composé. Pour améliorer la performance de cette méthode, on peut 
666 calculer à l'avance une liste des nombres premiers inférieurs à $\sqrt{p}$
667 (avec un crible d'Ératosthène), pour ne tester que ceux-ci.
668
669 Par exemple, pour tester un nombre inférieur à 39 000, 
670 il suffit de vérifier  qu'il n'est pas multiple d'un nombre premiers inférieur
671 à 198 (car $198^2 = 39 204$); on doit faire au maximum 45 divisions.
672
673 \subsubsection{Tests probabilistes}
674
675 \begin{Prop}[Corrolaire du petit théorème de Fermat]
676 Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
677 alors $a^{p-1}-1$ est un multiple de $p$, c'est-à-dire:
678 \begin{equation}
679  \forall a\in \N \forall p \in \N (   p \in \Prem \textrm{ et }   a \not\equiv  0[p] 
680   \Rightarrow a^{p-1}\equiv 1 [p]).
681 \label{petittheremeFermat}
682 \end{equation}
683 \end{Prop}
684
685
686 \paragraph{Test de Fermat.}
687 Le petit théorème de Fermat est une implication et non pas une équivalence:
688 \begin{itemize}
689 \item si on prend un $p\in \N$ et un $a \in\N$ quelconque, 
690   alors si $p$ est premier et $a$ non divisible par $p$, alors on peut en déduire que $a^{p-1}\equiv 1 [p]$;
691 \item rien ne dit que si on a  $a^{p-1}\equiv 1 [p]$, alors $p$ est premier et $a$ non divisible par $p$.
692 \item rien ne dit non plus que que si on a  $a^{p-1}\equiv 1 [p]$ et que $a$ non divisible par $p$, alors $p$ est premier.
693 \end{itemize}
694 Cependant si on effectue un grand nombre de fois l'expérience de choisir 
695 $a \in \N_{n-1}^{*}$ et qu'à chaque fois on établit $a^{p-1}\equiv 1 [p]$, 
696 alors $p$ est probablement premier.
697 Cependant ce n'est pas toujours le cas: par exemple $2^{340} \equiv 1 [341]$ et 
698 pourtant $341 =  11 \times 31$.
699
700 \begin{Exo}
701 Donner le code de la fonction \verb+testPrimaliteFermat(n,t)+ qui retourne 
702 \verb+True+ si \verb+t+ evaluations de $\texttt{a}^{\texttt{p}-1}$ on retourné $ 1 [\texttt{p}]$ 
703 pour un $a \in \N_{n-1}^{*}$ et \verb+False+ sinon.
704 \end{Exo}
705
706
707
708 \paragraph{Test de Miller-Rabin}
709
710 Soit $n$ un nombre premier impair,
711 alors nous pouvons écrire $n - 1$ comme $2^s \times d$, 
712 où $s$ est un entier et $d$ est impair.
713 Alors, pour tout entier naturel $a \in \N_{n-1}^*$
714 tel que $a$ est premier avec $n$, 
715 une des conditions suivantes doit être vérifiée:
716 \begin{enumerate}
717 \item $a^{d} \equiv 1 [n]$, ou bien  
718 \item $a^{2^r\cdot d} \equiv -1 [n]$ pour un certain $0 \le r \le s-1$.
719 \end{enumerate} 
720 La preuve de cette propriété est admise
721
722 Le test de primalité de Miller-Rabin est basé sur les équations précédentes.
723 Si on choisit un grand nombre $t$ de fois $a \in \N_{n-1}^*$
724 et qu'on obtienne à chaque fois 
725 \begin{itemize}
726 \item $a^{d} \equiv 1 [n]$ ou 
727 \item $a^{2^r\cdot d} \equiv -1 [n]$ pour un certain $0 \le r \le s-1$,
728 \end{itemize}
729 alors le nombre $n$ est probablement premier.
730 Dans le cas contraire ($a^{d} \not\equiv 1 [n]$ et 
731 $a^{2^r \cdot d} \not\equiv -1 [n]$ pour tous les  $0 \le r \le s-1$),
732 $n$ n'est pas premier.
733
734 \begin{Exo}
735 Donner le code de la fonction \verb+testPrimaliteMillerRabin(n,t)+.
736 \end{Exo}
737
738
739 \section{Factorisation}
740 L'objectif de cette partie est de montrer qu'on peut factoriser $n$ 
741 sous la forme de $p\times q$ si ces deux derniers nombres ont été mal choisis.
742
743
744 \begin{Exo}
745 On considère que l'étape 1 de l'algorithme RSA a généré deux nombre premiers $p$ et $q$ tels que $p>q$. On définit  $t = \frac{p+q}{2}$ et $s = \frac{p-q}{2}$.
746 Montrer que
747 \begin{enumerate}
748 \item le produit $n = pq = t^2 - s^2$;
749 \item l'entier $t$ est légèrement supérieur à la racine carrée de $n$ et que $s $ est petit;
750 \item l'on peut utiliser ces informations pour factoriser $n$ c.-à-d. retrouver $p$ et $q$;
751 \item Factoriser 9623827 et  343570291. % res=2953*3259     res = 17729*19379
752 \end{enumerate}
753 \end{Exo}
754
755 % \section{Conclusion}
756 % cf SMATH paragraphe applications p 223.