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

Private GIT Repository
symboles -a
[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.eps}
28 \end{center}
29 \caption{Schéma général d'une méthode de cryptage/décryptage}\label{Fig:schemageneral}
30 \end{figure}
31 Dans cette figure, rien ne précise cependant que la clé de
32 cryptage est la même que celle de décryptage.
33 Lorsqu'une méthode se fondent sur une clé unique pour chiffrer et déchiffrer
34 un message on emploie le terme de cryptographie \emph{symétrique}. 
35 Se pose immédiatement  le problème de confidentialité de la clé et la  mise 
36 en {\oe}uvre de celle-ci 
37 surtout lorsque le nombre de destinataires est grand: 
38 il faut une clé pour chacun d'entre eux.
39
40 Pour résoudre ce problème d'échange de clés, la cryptographie 
41 \emph{asymétrique} a été mise au point dans les années 1970.
42 Elle se base sur le principe d'une clé publique pour le chiffrement et 
43 d'une clé privée pour le déchiffrement.
44 Chaque destinataire (receveur)
45 diffuse sa clé publique à quiconque désire chiffrer 
46 un message. Le message crypté  ne pourra être déchiffré qu'avec la clé privée,
47 qui elle reste confidentielle.
48
49 RSA est un algorithme de cette famille. Son étude d'un point de vue mathématique
50  est l'objectif de ce TD.
51 Il s'inspire largement de~\cite{RSA09} 
52
53 % Annonce plan
54
55
56
57 \section{L'algorithme RSA}
58
59 \subsection{Les étapes détaillées de l'algorithme}
60
61 On rappelle qu'un système cryptographique à clé publique est
62 initialisé par le receveur, c.-à-d. celui qui veut recevoir des messages de
63 manière sure. 
64
65 \paragraph{Première étape: choix des deux nombres $p$ et $q$.} 
66 Le receveur choisit deux grands nombres premiers
67 $p$ et $q$ et calcule $n = pq$. Puis il calcule $\varphi(n)$, 
68 où $\varphi : \N^* \rightarrow \N^* $ est la \emph{fonction d'Euler} 
69 définie par $\varphi(n)$  est le nombre d'entiers dans $\{1, 2, \dots , n -1 \}$ 
70 qui sont premiers avec $n$.
71 \paragraph{Deuxième  étape: choix de la clé publique.} 
72 Le receveur choisit $e \in 
73 \{1, \dots , n-1\}$  premier avec $\varphi(n)$.
74 La clé publique est la paire $(e,n)$. L'expéditeur
75 va s'en servir pour crypter son message à la quatrième étape ci-dessous.
76 \paragraph{Troisième  étape: construction de la clé privée.}
77 Le receveur calcule l'entier $d \in \{1,\dots, n-1\}$
78 tel que le reste de la division de $ed$ par $\varphi(n)$ est 1. 
79 Ceci se note aussi $ed \equiv 1 [\varphi(n)]$ qui se lie $ed$ est congru 
80 à 1 modulo $\varphi(n)$.
81 La paire $(d,n)$ est la clé privée de décryptage. Elle
82 est secrète et permet au receveur de décrypter tous les messages reçus
83 et cryptés avec $(e,n)$. 
84 \paragraph{Quatrième  étape: cryptage du message.}
85 L’expéditeur peut crypter tout message écrit sous la forme 
86 d'un nombre $m$ appartenant à $\{1, \dots , n-1\}$ et qui est 
87 premier avec $n$. 
88 Le message codé est le reste $a$ de la division de $m^e$ par $n$. 
89 On a donc $m^e \equiv a [n]$, où $a \in \{1, \dots , n - 1\}$.
90 \paragraph{Cinquième  étape:  décryptage du message.} 
91 Le receveur dispose de $a$ et de sa clé privée $(d,n)$. 
92 Pour décrypter $a$, il calcule le reste dans la division par $n$
93 de $a^d$ (c.-à-d. $a^d [n]$). 
94 Si aucune erreur de calcul n'a été effectuée, c'est le message initial $m$.
95
96
97 \subsection{Sur un exemple très petit}
98 Le receveur choisit $p=7$, $q=13$.
99 \begin{enumerate}
100 \item Construire l'ensemble des entiers qui sont premiers avec $n=pq$ 
101   et en déduire que $\varphi(91)=72$.
102 \item Montrer que $(29,91)$ est un candidat acceptable de clé publique.
103 \item Trouver la clé privée associée.
104 \item Montrer que  l'expéditeur a la possibilité de crypter le message $m=59$.
105 \item Construire le message crypté $a$ à l'aide de la clé publique.
106 \item Décrypter
107  le message $a$ à l'aide de la clé privée. Il doit s'agir de $m$. 
108 \end{enumerate} 
109
110
111 \subsection{Les points clés}
112 L'algorithme RSA repose sur plusieurs points clés rencontrés successivement:
113 \begin{itemize}
114 \item la génération de deux grands nombres premiers $p$ et $q$ ;
115 \item la multiplication de grands nombres : $pq$, $ed$,   
116 \item l'arithmétique modulaire;
117 \item l'algorithme d'Euclide de génération de PGCD et son corollaire de Bézout;
118 \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.
119 \end{itemize}
120
121 \section{Rappels d'arithmétique}
122
123 Soit deux entiers $a$ et $b$ dans $\Z$.
124 On dit que $a$ divise $b$ (que l'on note $a | b$)
125 s'il existe un entier $q \in \Z$ tel que $b = aq$. 
126
127 Le plus grand diviseur commun (PGCD) de 
128 $a$ et $b$, noté $a\land b$ est l'entier naturel qui vérifie 
129 \begin{itemize}
130 \item $a \land b | a$ et $a \land  b | b$;
131 \item Si $d | a$ et $d | b$, alors $d | a\land b$.
132 \end{itemize}
133
134 \subsection{Algorithme d'Euclide de calcul de PGCD}
135
136 Par définition, le PGCD de $a$ non nul avec
137 0 est $a$ (définition raisonnable, car 0
138 est divisible par tout entier non nul, donc par $a$, qui l'est aussi par $a$) 
139 et enfin le PGCD de 0 et de 0 n'est pas
140 défini.
141
142 On se limite ici au cas de deux entiers $a$ et $b$ strictement positifs. Supposons par exemple $a>b$
143
144 \begin{enumerate}
145 \item La division euclidienne de $a$ par $b$ peut s'écrire $a=bq+r$ avec $0\infeg r<b$.
146
147 \item Montrons que \og $d$ est un diviseur commun à $a$ et $b$ \fg{}
148   est équivalent à  \og $d$ est un diviseur commun à $b$ et $r$ \fg{}.
149 \begin{itemize}
150 \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$.
151
152 \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')$.
153 Donc $d$ est un diviseur commun à $a$ et $b$.
154 \end{itemize}
155
156 Ainsi, les ensembles des diviseurs communs à $a$ et $b$ 
157 d'une part et à $b$ et $r$ d'autre part sont identiques.
158 En particulier $a\et b=b\et r$.
159
160 \item Si $r=0$ on a $a\et b= b\et 0$ qui est égal à $b$.
161
162 \item Sinon,  $r$ est différent de $0$ et on peut donc effectuer la
163   division euclidienne de $b$ par $r$, qui donne un reste $r_{1}$, 
164   tel que $0 \le r_{1}<r$ et $b\et r=r\et r_{1}$.
165
166 \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.
167   Le PGCD est alors l'avant-dernier reste (le dernier non nul).
168 \end{enumerate}
169
170 \begin{Exo}
171 Déterminer $154 \land 35$ par l'algorithme d'Euclide.
172 \end{Exo}
173
174
175 \begin{Exo}
176 Donner le code d'un programme qui prend en entrée deux entiers naturels $a$ 
177 et $b$ tels que $a>b \ge 0$ et qui retourne leur PGCD 
178 \end{Exo}
179
180 \subsection{Les incontournables Bézout et Gau{\ss}}
181
182 \begin{Prop}[Identite   de Bézout]
183 On considère deux nombres entiers strictement positifs $a$ et $b$. 
184 Il existe un couple d'entiers $x$ et $y$ tels que $ax+by=d$, 
185 où $d$ est le PGCD de $a$ et de $b$. 
186 \end{Prop}
187
188 \begin{Proof}
189 Dans la preuve de la proposition précédente, on avait successivement
190
191 \begin{eqnarray}
192 a &=& b \times q_1 +r_1 \label{eq:def:r1} \\
193 b &=& r_1 \times q_2 +r_2 \\
194 r_1 &=& r_2 \times q_3 +r_3 \\
195 & \vdots & \nonumber\\
196 r_{n-4} & = & r_{n-3} \times q_{n-2} + r_{n-2} \label{eq:def:rnm4} \\
197 r_{n-3} & = & r_{n-2} \times q_{n-1} + r_{n-1} \label{eq:def:rnm3} \\
198 r_{n-2} & = & r_{n-1} \times q_{n} + r_{n} \label{eq:def:rnm2}\\
199 r_{n-1} & = & r_{n} \times q_{n+1} + 0 
200 \end{eqnarray}
201
202
203 On sait que $a\land b$ est $r_n$ le dernier reste non nul.
204 On remonte les équations une à une en démarrant de (\ref{eq:def:rnm2}).
205 \begin{eqnarray}
206 r_{n}  & = & r_{n-2} - r_{n-1} \times q_{n}  \nonumber \\
207   & = & r_{n-2} - (r_{n-3} - r_{n-2} \times q_{n-1}) \times q_{n} (\textrm{on remplace $r_{n-1}$ par sa def dans (\ref{eq:def:rnm3})}) \nonumber\\
208   & = & r_{n-2}. (1 + q_{n-1}. q_{n}) - r_{n-3}. q_{n} (\textrm{factorisation})\nonumber \\
209    & = & (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 sa def dans (\ref{eq:def:rnm4})}) \nonumber \\
210 & \vdots & \nonumber \\
211 & = & \ldots (\textrm{on remplace $r_{1}$ par sa def dans (\ref{eq:def:r1})}) \nonumber\\ 
212 & = ax + by \nonumber
213 \end{eqnarray}
214
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 s 
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   Le $d$ divise $ax$ et $d$ divise $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 \begin{Exo}[Preuve de l'expression d'Euler]
264 On doit compter le cardinal des nombres de $\{1, 2, . . . , pq -1\}$ qui sont 
265 premiers avec $pq$.
266 \begin{enumerate}
267 \item Construire l'ensemble $P$ des entiers naturels multiples de $p$ inférieurs à $pq -1$. Combien en a-t-on?
268 \item Construire l'ensemble $Q$ des entiers naturels multiples de $q$ inférieurs à $pq -1$. Combien en a-t-on?
269 \item Supposons qu'un élément $k$ appartienne à la fois à $P$ et à $Q$.
270   Montrer que cela implique qu'il existe deux entiers naturels 
271   $m_1$ et $m_2$ tels que $m_1.p = m_2.q$.
272 \item En utilisant le théorème de Gau{\ss}, montrer que cela est absurde.
273 \item En déduire l'équation (\ref{FEuler}).
274 \end{enumerate}
275 \end{Exo}
276
277
278
279
280 %Refaire cet exo avec 27x +8y = 1
281 \begin{Exo}
282 L'objectif est de résoudre l'équation $(E)$ d'inconnues $x$ et $y$ 
283 $405x -120y =15$.
284 \begin{enumerate}
285 \item Trouver le PGCD de 405 et 120  à l'aide de l'algorithme d'Euclide.
286 \item En déduire une solution particulière de cette équation.
287 \item En utilisant la solution particulière, montrer que $(E)$ est 
288   équivalente à $27(x-3) = 8(y-10)$.
289 \item Utiliser le théorème de Gauss pour montrer que 
290   l'ensemble solution de $(E)$ est $\{(8k+3;27k+10)| k \in \Z\}$. 
291 \end{enumerate}
292 \end{Exo}
293
294
295
296
297 \begin{Exo}[Sujet du bac S Liban 2005]
298 On rappelle le résultat suivant appelé petit théorème de Fermat.
299
300 \emph{Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
301  alors $a^{p-1}-1$ est un multiple de $p$.}
302 \begin{enumerate}
303 \item  On considère l’équation $(E)$ : $109x-226y=1$ où $x$ et $y$
304   sont des entiers relatifs.
305 \begin{enumerate}
306 \item  Déterminer $109\land 226$. 
307   Que peut-on en conclure pour l'équation $(E)$? 
308 \item  Montrer que l'ensemble des solutions de $(E)$  
309   est l'ensemble des couples de la forme 
310   $(141+226k ;68+109k)$, où $k$ appartient à $\Z$.
311   En déduire qu'il existe un unique entier naturel non nul $d$ 
312   inférieur ou égal à 226 et un unique entier naturel non nul $e$ tels que
313   $109d =1+226 e$ (on précisera les valeurs des entiers $d$ et $e$).
314 \end{enumerate}
315 \item Démontrer que 227 est un nombre premier.
316 \item  On note $A=\{0,1,2,\dots,226\}$. On considère les deux fonctions 
317   $f$ et $g$ de $A$ dans $A$ définies de la manière suivante: 
318 \begin{itemize}
319 \item  A tout entier $a\in A$, $f$ associe le reste de
320   la division euclidienne de $a^{109}$ par 227.
321 \item A tout entier $a\in A$, $g$ associe le reste de la
322   division euclidienne de $a^{141}$ par 227.
323 \end{itemize}
324 \begin{enumerate}
325 \item Vérifier que $g(f(0))=0$ .
326 \item Montrer que, quel que soit l'entier non nul $a$ de $A$ , $a^{226}-1$ est multiple de 227.
327 \item En déduire que, quel que soit l'entier non nul $a$ de $A$, 
328 $g(f(a))=a$ . Que peut-on dire de $f(g(a))=a$?
329 \end{enumerate}
330 \end{enumerate}
331 \end{Exo}
332 \section{Arithmétique modulaire}
333 % cf TD maths discrète; 
334 % Corollaire 7.6 du chap RSA
335 % unicité de la clef de décodage
336
337
338 \subsection{Puissance de grands nombres}
339
340 \section{Génération de grands nombres premiers}
341
342 \section{Factorisation}
343
344
345 \section{Conclusion}
346 cf SMATH paragraphe applications p 223.