2 % Objectifs pédagogiques :
3 % arithmétique classique (pgcd, diviseur)
6 % Théorème de Bezout, petit Fermat
7 % Nombres premiers : tests simples, avancés, disctribution
8 % Multiplications rapides:
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
16 \section{Introduction}
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}.
27 %\includegraphics[scale=0.5]{schemacrypto.pdf}
28 \includegraphics[scale=0.5]{schemacrypto.eps}
30 \caption{Schéma général d'une méthode de cryptage/décryptage}\label{Fig:schemageneral}
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.
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.
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}
58 \section{L'algorithme RSA}
60 \subsection{Les étapes détaillées de l'algorithme}
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
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
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$.
98 \subsection{Sur un exemple très petit}
99 Le receveur choisit $p=7$, $q=13$.
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.
108 le message $a$ à l'aide de la clé privée. Il doit s'agir de $m$.
112 \subsection{Les points clés}
113 L'algorithme RSA repose sur plusieurs points clés rencontrés successivement:
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.
122 \section{Rappels d'arithmétique}
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$.
128 Le plus grand diviseur commun (PGCD) de
129 $a$ et $b$, noté $a\land b$ est l'entier naturel qui vérifie
131 \item $a \land b | a$ et $a \land b | b$;
132 \item Si $d | a$ et $d | b$, alors $d | a\land b$.
135 \subsection{Algorithme d'Euclide de calcul de PGCD}
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
143 On se limite ici au cas de deux entiers $a$ et $b$ strictement positifs. Supposons par exemple $a>b$
146 \item La division euclidienne de $a$ par $b$ peut s'écrire $a=bq+r$ avec $0\infeg r<b$.
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{}.
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$.
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$.
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$.
161 \item Si $r=0$ on a $a\et b= b\et 0$ qui est égal à $b$.
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}$.
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).
172 Déterminer $154 \land 35$ par l'algorithme d'Euclide.
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
181 \subsection{Les incontournables Bézout et Gau{\ss}}
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$.
190 Dans la preuve de la proposition précédente, on avait successivement
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
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}).
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
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.
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$.
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$.
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.
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$.
252 Faire la preuve de ce théorème
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
260 \varphi(pq)=(p-1)(q-1). \label{FEuler}
264 \begin{Exo}[Preuve de l'expression d'Euler]
265 On doit compter le cardinal des nombres de $\{1, 2, . . . , pq -1\}$ qui sont
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}).
284 %Refaire cet exo avec 27x +8y = 1
286 L'objectif est de résoudre l'équation $(E)$ $405x -120y =15$
287 d'inconnues $x$ et $y$.
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\}$.
301 Soit $p$ un nombre premier.
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$?
309 On considère l'algorithme suivant:
310 on choisit deux nombres premiers $p$ et $q$
312 $p \equiv 2 [3]$ et $s \equiv 2 [3]$.
314 Alice veut envoyer un message à Bob.
315 Comme dans RSA, son message est un nombre $m \in \ \{1, . . . , n - 1\}$
316 tel que $m \land n = 1$
317 Le message codé d'Alice est le résultat $a= m^3[n]$.
318 Bob décode $a$ en calculant
320 m' \equiv a^{d} [n] \textrm{ où $d=\dfrac{2(p-1)(q-1)+1}{3}$}
322 Normalement $m$ doit être égal à $m'$.
325 \item Choisir $p=11$, $q=17$, $m=4$ puis construire le message codé ainsi que le message décodé.
326 \item Montrer que $d$ est toujours un entier.
327 \item Expliquer pourquoi $a$ et $m'$ ne sont pas divisibles par $n$.
328 \item Montrer que Bob a bien décodé le message d’Alice.
333 \begin{Exo}[Sujet du bac S Liban 2005]
334 On rappelle le résultat suivant appelé le corollaire du
335 petit théorème de Fermat.
337 \emph{Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
338 alors $a^{p-1}-1$ est un multiple de $p$.}
340 \item On considère l’équation $(E)$ : $109x-226y=1$ où $x$ et $y$
341 sont des entiers relatifs.
343 \item Déterminer $109\land 226$.
344 Que peut-on en conclure pour l'équation $(E)$?
345 \item Montrer que l'ensemble des solutions de $(E)$
346 est l'ensemble des couples de la forme
347 $(141+226k ;68+109k)$, où $k$ appartient à $\Z$.
348 En déduire qu'il existe un unique entier naturel non nul $d$
349 inférieur ou égal à 226 et un unique entier naturel non nul $e$ tels que
350 $109d =1+226 e$ (on précisera les valeurs des entiers $d$ et $e$).
352 \item Démontrer que 227 est un nombre premier.
353 \item On note $A=\{0,1,2,\dots,226\}$. On considère les deux fonctions
354 $f$ et $g$ de $A$ dans $A$ définies de la manière suivante:
356 \item A tout entier $a\in A$, $f$ associe le reste de
357 la division euclidienne de $a^{109}$ par 227.
358 \item A tout entier $a\in A$, $g$ associe le reste de la
359 division euclidienne de $a^{141}$ par 227.
362 \item Vérifier que $g(f(0))=0$ .
363 \item Montrer que, quel que soit l'entier non nul $a$ de $A$ , $a^{226}-1$ est multiple de 227.
364 \item En déduire que, quel que soit l'entier non nul $a$ de $A$,
365 $g(f(a))=a$ . Que peut-on dire de $f(g(a))=a$?
372 \section{Congruence modulo}
374 \begin{Def}[Congruence modulo]
375 Soit $a$ et $b$ deux entiers relatifs.
376 On dit que $a$ est congru $b$ modulo $n$ si $n$ divise $a-b$, c'est-à-dire
377 s'il existe $x \in \Z$ tel que $(a-b) = nx$.
378 On note $a \equiv b [n]$.
379 La relation \og $\equiv [n]$ \fg{}
380 est une relation d'équivalence appelée congruence modulo $n$.
384 Soit $a$, $b$, $c$, $d$, $x$ et $y$ dans $\Z$.
385 Si $a \equiv c[n]$ et $b \equiv d[n]$, alors
387 \item $a +b \equiv c + d [n]$;
388 \item $ab \equiv cd [n]$;
389 \item $ax +by \equiv cx +dy [n]$.
394 Démontrer la proposition précédente.
398 Soit deux entiers naturels $a$ et $n$ tels que $1< a< n$.
399 Si $a$ et $n$ sont premier entre eux,
400 alors il existe un unique $x \in \{1, \dots, n-1\}$ tel
401 que $ax \equiv 1[n]$.
406 \item[\textbf{Existence.}]
407 Comme $a$ et $n$ sont premiers entre eux, d'après le théorème de Bézout,
408 il existe $x$ et $y$ entiers tels que $ax+ny = 1$, soit encore $ax \equiv 1[n]$.
409 \item [\textbf{Unicité.}]
410 Supposons qu'il existe une seconde solution $x'\in \{1, \dots, n-1\}$ telle que
411 $ax' \equiv 1[n]$. Donc $a(x-x') \equiv 0[n]$. Or $n$ est premier avec $a$.
412 D'après le théorème de Gau{\ss}, $n$ divise donc $x-x'$.
413 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'$.
418 Trouvons les nombres $x$ tels que $7x+11$ soit multiple de 36. Dit autrement,
419 résoudre l'équation $7x \equiv -11 [36]$.
421 On cherche un \og inverse \fg{} de 7 c.-à-d. un nombre $t$, $1 < t < 35$
422 tel que $7t \equiv 1 [36]$.
423 Soit à résoudre $7t \equiv 1 [36]$ qui revient à trouver $t$ et $u$ tels
424 que $7t -36u = 1$, soit encore les coefficient de Bézout relatifs à
425 (7 et 36). On trouve successivement
427 36 & = & 7 \times 5 +1 \\
428 7 & = & 7 \times 1 + 0 \\
429 & \textrm{et donc}&\\
430 1 & = & 36 - 7 \times 5
432 et donc $t = -5$ (et $u=-1$).
433 On en déduit $7x \equiv -11 [36]$ est équivalent à
434 $(-5).7x \equiv (-5).-11 [36]$ soit encore
435 $x \equiv 55 [36] \equiv 19 [36]$.
439 Trouver les entiers relatif $x$ tels que
440 $261x +2$ soit multiple de 305.
447 \item Démonter que $35 \equiv 1 [11]$
448 \item En déduire que pour tous entiers naturels $k$ et $r$ on a
449 $35k +r \equiv 3r [11]$.
450 \item $n$ étant un entier naturel, quels sont les restes possibles
451 dans la division de $3^n$ par 11?
452 \item Trouvez pour quelles valeurs de $n$, $3^n + 7$ est divisible par 11.
460 On se place dans le contexte de cryptographie par RSA.
461 Démontrer que si la clé d'encryptage est $e < \varphi(n)$, alors
462 il existe une unique clé de décodage entre 1 et $\varphi(n)$.
465 \begin{Prop}[Théorème d'Euler]\label{th:Euler}
466 Soit $n \in \N^*$ et $m$, $m<n$ un entier relativement premier avec $n$.
469 m^{\varphi(n)}\equiv1 [n].
472 On laisse de côté la démonstration.
474 \begin{Prop}[Correction de RSA]
475 Le cryptage-décryptage du code RSA est correct:
476 on crypte un message $m$ tel que
477 $m\land n= 1$ en $a$ avec
478 $ m^e \equiv a [n]$ selon la clé $(e,n)$.
479 Alors le décryptage selon la clé $(d,n)$ redonne
480 le message initial : $a^d \equiv m [n]$.
484 a^d & \equiv & (m^e)^d [n]\\
485 & \equiv & m^{ed} [n] \textrm{ (réécriture)}\\
486 & \equiv & m^{k.\varphi(n)+1} [n] \textrm{ (définition de $d$)}\\
487 & \equiv & m^{k.\varphi(n)}m [n] \textrm{ (réécriture)}\\
488 & \equiv & (m^{\varphi(n)})^km [n] \textrm{ (réécriture)}\\
489 & \equiv & (1)^km [n] \textrm{ (théorème d'Euler)}\\
490 & \equiv & m [n] \textrm{ (réécriture)}\\
495 \begin{Prop}[Petit théorème de Fermat]
496 Si $p$ est un nombre premier et $a$ un entier
497 alors $a^{p} \equiv a [p]$.
501 La preuve se fait par récurrence sur $a$.
503 \item Pour $a=0$, c'est trivial.
504 \item Supposons la formule établie pour $k=a$ et montrons qu'elle l'est aussi
506 On remarque tout d'abord que pour chaque $k$, $0 < k < p$, le coefficient
507 binomial $\binom{p}{k} = \dfrac{p!}{k!(p-k)!}$ est divisible par $p$, c.-à-d.
508 $\binom{p}{k} \equiv 0 [p]$.
509 On a alors successivement:
512 \binom{p}{1}a^{p-1}+\binom{p}{2}a^{p-2}+\dots +\binom{p}{p-1}a^{1}+1\\
513 &\equiv& a^p +1 [p]\textrm{ (d'après la remarque sur les coeff. binomiaux)}\\\
514 &\equiv& a +1 [p]\textrm{ (par hypothèse de récurrence).}\\\
519 \begin{Prop}[Corrolaire du petit théorème de Fermat]
520 Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
521 alors $a^{p-1}-1$ est un multiple de $p$.
524 D'après le petit théorème de Fermat, $a^{p} \equiv a [p]$. Dit Autrement
525 $p$ divise $a^{p} - a = a (a^{p-1}-1)$. Or $p$ est premier avec $a$ d'après les
526 hypothèses. D'après le théorème de Gau{\ss}, $p$ divise $a^{p-1}-1$.
529 \subsection{Puissance de grands nombres}
532 Calculons $666^{999}[13]$.
535 666^{999} & \equiv & (13\times 51 + 3)^{999} [13]\\
536 & \equiv & 3^{999} [13]\\
537 & \equiv & 3^{12\times83 +3} [13] \\
538 & \equiv & 3^3 \times (3^{12})^{83} [13] \\
539 & \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)}\\
548 Calculer $2^{500} [13]$ et $26^{1000} [17]$.
553 Montrer que l'entier naturel $n$ est premier si et seulement si
554 $$(x +1) ^n \equiv x ^n +1[n].$$
561 \section{Génération de grands nombres premiers}
562 Dans ce qui suit, on nomme $\Prem$ l'ensemble des nombres premiers.
563 Depuis Euclide, on sait que $\Prem$ est de taille infinie.
564 Fermat avait cru donner une formule ne générant que des nombres premiers.
565 Il affirmait que pour tout $n \in \N$, le nombre
569 était premier. Or 641 divise $F_5$. Aujourd'hui, on pense que seuls
570 les nombres de $F_0$ à $F_4$ sont premiers.
572 \subsection{Distribution des nombres premiers parmi les entiers}
574 Même si on ne connaît pas de formule permettant de construire tous les
575 nombres premiers, tout n'est pas perdu puisque les nombres premiers
576 ne sont pas si rares que cela. Le théorème suivant donne même
577 la proportion approximative des entiers inférieurs ou égaux à
578 $N$ qui sont premiers.
579 \begin{Prop}[Théorème des nombres premiers]
580 La fonction $\pi:\N \rightarrow \N$ associe
581 à chaque nombre $N$ le nombre d'entiers inférieurs ou égaux à $N$ qui sont
582 premiers, soit $\pi(N) = |\{p \le N | p \textrm{ premier}\}|$.
583 Lorsque $n$ est grand, on a:
585 \pi(N) &\approx& \dfrac{N}{\ln(N)}
588 La preuve de ce théorème est d'un niveau très avancé et n'est pas reproduite
591 Pour obtenir un entier de 100 chiffres, il suffit de considérer
592 $N= 10^{100}$. Si on choisit au hasard un nombre $n$ dans $\N_{N}^{*}$,
593 la probabilité qu'il soit premier est:
595 \textrm{Prob}(n \textrm{ premier}) &\approx&
596 \dfrac{\dfrac{N}{\ln(N)}}{N} \\
600 Le tableau~\ref{Table:propPrem} donne une valeur approchée de
601 cette probabilité pour quelques nombres de chiffres.
604 \item la seconde ligne n'impose aucune restriction sur le dernier chiffre;
605 \item la troisième ligne impose que le dernier chiffre soit dans
606 $\{1,3,5,7,9\}$: il est inutile de vérifier que les
607 multiples de 2 sont premiers!
608 \item la quatrième ligne impose que le dernier chiffre soit dans $\{1,3,7,9\}$:
609 les multiples de 5 ne sont pas premiers!
611 On constate que si l'on tire au hasard un nombre (même de 100 chiffres),
612 parmi ceux qui se terminent par $\{1,3,7,9\}$ (ensemble noté $B$ par la suite)
613 la probabilité qu'il soit premier n'est pas infime. La solution au problème
614 de génération de nombres premiers repose sur la capacité ou non a disposer
615 d'un test efficace de primalité pour des grands nombres.
617 %% Attention ce tableau est généré par ailleurs
620 \begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|}
622 Nombre de chiffres & \textbf{75}& \textbf{100}& \textbf{125}& \textbf{150}& \textbf{175}& \textbf{200}& \textbf{225}& \textbf{250}& \textbf{275}& \textbf{300}\\
624 Dernier chiffre quelconque & 172& 230& 287& 345& 402& 460& 518& 575& 633& 690\\
626 Dernier chiffre impair & 86& 115& 143& 172& 201& 230& 259& 287& 316& 345\\
628 Dernier chiffre dans $\{1,3,7,9\}$& 69& 92& 115& 138& 161& 184& 207& 230& 253& 276\\
632 \caption{Probabilités inverse d'obtenir un nombre premier \label{Table:propPrem}}
636 On considère comme expérience aléatoire le fait de tirer un nombre au hasard
637 dans $B$. On a une probabilité $p$ que le nombre soit premier.
638 Soit $X$ la variable aléatoire qui compte le nombre
639 de fois où l'on a réalisé cette expérience avant d'obtenir un nombre premier.
640 $X$ suit une loi géométrique de paramètre $p$:
642 P(X=k) = (1-p)^{k-1}p.
644 Or l'espérance d'une variable aléatoire
645 suivant une loi géométrique de paramètre $p$ est $\frac{1}{p}$.
646 Pour 100 chiffres, il faudra en moyenne 92 tirages pour générer un
649 Il \og reste \fg{} à fournir une méthode efficace pour décider
650 de la primalité d'un entier, ce que présente la section suivante.
653 \subsection{Tests de primalité}
654 Chaque section donne un algorithme permettant de décider si un entier $p$ fourni
655 en entrée est premier ou non.
657 \subsubsection{Méthode naïve}
658 On vérifie s'il est divisible par l'un des entiers pairs compris entre 2 et
659 $\sqrt{p}$. Si la réponse est négative, alors $p$ est premier,
660 sinon il est composé. Pour améliorer la performance de cette méthode, on peut
661 calculer à l'avance une liste des nombres premiers inférieurs à $\sqrt{p}$
662 (avec un crible d'Ératosthène), pour ne tester que ceux-ci.
664 Par exemple, pour tester un nombre inférieur à 39 000,
665 il suffit de vérifier qu'il n'est pas multiple d'un nombre premiers inférieur
666 à 198 (car $198^2 = 39 204$); on doit faire au maximum 45 divisions.
668 \subsubsection{Tests probabilistes}
670 \begin{Prop}[Corrolaire du petit théorème de Fermat]
671 Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
672 alors $a^{p-1}-1$ est un multiple de $p$, c'est-à-dire:
674 \forall a\in \N \forall p \in \N ( p \in \Prem \textrm{ et } a \not\equiv 0[p]
675 \Rightarrow a^{p-1}\equiv 1 [p]).
676 \label{petittheremeFermat}
681 \paragraph{Test de Fermat.}
682 Le petit théorème de Fermat est une implication et non pas une équivalence:
684 \item si on prend un $p\in \N$ et un $a \in\N$ quelconque,
685 alors si $p$ est premier et $a$ non divisible par $p$, alors on peut en déduire que $a^{p-1}\equiv 1 [p]$;
686 \item rien ne dit que si on a $a^{p-1}\equiv 1 [p]$, alors $p$ est premier et $a$ non divisible par $p$.
687 \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.
689 Cependant si on effectue un grand nombre de fois l'expérience de choisir
690 $a \in \N_{n-1}^{*}$ et qu'à chaque fois on établit $a^{p-1}\equiv 1 [p]$,
691 alors $p$ est probablement premier.
692 Cependant ce n'est pas toujours le cas: par exemple $2^{340} \equiv 1 [341]$ et
693 pourtant $341 = 11 \times 31$.
696 Donner le code de la fonction \verb+testPrimaliteFermat(n,t)+ qui retourne
697 \verb+True+ si \verb+t+ evaluations de $\texttt{a}^{\texttt{p}-1}$ on retourné $ 1 [\texttt{p}]$
698 pour un $a \in \N_{n-1}^{*}$ et \verb+False+ sinon.
703 \paragraph{Test de Miller-Rabin}
705 Soit $n$ un nombre premier impair,
706 alors nous pouvons écrire $n - 1$ comme $2^s \times d$,
707 où $s$ est un entier et $d$ est impair.
708 Alors, pour tout entier naturel $a \in \N_{n-1}^*$
709 tel que $a$ est premier avec $n$,
710 une des conditions suivantes doit être vérifiée:
712 \item $a^{d} \equiv 1 [n]$, ou bien
713 \item $a^{2^r\cdot d} \equiv -1 [n]$ pour un certain $0 \le r \le s-1$.
715 La preuve de cette propriété est admise
717 Le test de primalité de Miller-Rabin est basé sur les équations précédentes.
718 Si on choisit un grand nombre $t$ de fois $a \in \N_{n-1}^*$
719 et qu'on obtienne à chaque fois
721 \item $a^{d} \equiv 1 [n]$ ou
722 \item $a^{2^r\cdot d} \equiv -1 [n]$ pour un certain $0 \le r \le s-1$,
724 alors le nombre $n$ est probablement premier.
725 Dans le cas contraire ($a^{d} \not\equiv 1 [n]$ et
726 $a^{2^r \cdot d} \not\equiv -1 [n]$ pour tous les $0 \le r \le s-1$),
727 $n$ n'est pas premier.
730 Donner le code de la fonction \verb+testPrimaliteMillerRabin(n,t)+.
734 \section{Factorisation}
735 L'objectif de cette partie est de montrer qu'on peut factoriser $n$
736 sous la forme de $p\times q$ si ces deux derniers nombres ont été mal choisis.
740 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}$.
743 \item le produit $n = pq = t^2 - s^2$;
744 \item l'entier $t$ est légèrement supérieur à la racine carrée de $n$ et que $s $ est petit;
745 \item l'on peut utiliser ces informations pour factoriser $n$ c.-à-d. retrouver $p$ et $q$;
746 \item Factoriser 9623827 et 343570291. % res=2953*3259 res = 17729*19379
750 % \section{Conclusion}
751 % cf SMATH paragraphe applications p 223.