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{Rappels d'arithmétique jusqu'au PGCD}
60 Soit deux entiers $a$ et $b$ dans $\Z$.
61 On dit que $a$ divise $b$ (que l'on note $a | b$)
62 s'il existe un entier $q \in \Z$ tel que $b = aq$.
64 Le plus grand diviseur commun (PGCD) de
65 $a$ et $b$, noté $a\land b$ est l'entier naturel qui vérifie
67 \item $a \land b | a$ et $a \land b | b$;
68 \item Si $d | a$ et $d | b$, alors $d | a\land b$.
73 Déterminer $550 \land 1540$.
77 %\subsection{Algorithme d'Euclide de calcul de PGCD}
79 Par définition, le PGCD de $a$ non nul avec
80 0 est $a$ (définition raisonnable, car 0
81 est divisible par tout entier non nul, donc par $a$, qui l'est aussi par $a$)
82 et enfin le PGCD de 0 et de 0 n'est pas
85 On se limite ici au cas de deux entiers $a$ et $b$ strictement positifs. Supposons par exemple $a>b$
88 \item La division euclidienne de $a$ par $b$ peut s'écrire $a=bq+r$ avec $0\infeg r<b$.
90 \item Montrons que \og $d$ est un diviseur commun à $a$ et $b$ \fg{}
91 est équivalent à \og $d$ est un diviseur commun à $b$ et $r$ \fg{}.
93 \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$.
95 \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')$.
96 Donc $d$ est un diviseur commun à $a$ et $b$.
99 Ainsi, les ensembles des diviseurs communs à $a$ et $b$
100 d'une part et à $b$ et $r$ d'autre part sont identiques.
101 En particulier $a\et b=b\et r$.
103 \item Si $r=0$ on a $a\et b= b\et 0$ qui est égal à $b$.
105 \item Sinon, $r$ est différent de $0$ et on peut donc effectuer la
106 division euclidienne de $b$ par $r$, qui donne un reste $r_{1}$,
107 tel que $0 \le r_{1}<r$ et $b\et r=r\et r_{1}$.
109 \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.
110 Le PGCD est alors l'avant-dernier reste (le dernier non nul).
114 Déterminer $154 \land 35$ par l'algorithme d'Euclide.
119 Donner le code d'un programme qui prend en entrée deux entiers naturels $a$
120 et $b$ tels que $a>b \ge 0$ et qui retourne leur PGCD
124 \begin{Prop}[Identite de Bézout]
125 On considère deux nombres entiers strictement positifs $a$ et $b$.
126 Il existe un couple d'entiers $x$ et $y$ tels que $ax+by=d$,
127 où $d$ est le PGCD de $a$ et de $b$.
131 Dans la preuve de la proposition précédente, on avait successivement
134 a &=& b \times q_1 +r_1 \label{eq:def:r1} \\
135 b &=& r_1 \times q_2 +r_2 \nonumber \\
136 r_1 &=& r_2 \times q_3 +r_3 \nonumber\\
137 & \vdots & \nonumber\\
138 r_{n-4} & = & r_{n-3} \times q_{n-2} + r_{n-2} \label{eq:def:rnm4} \\
139 r_{n-3} & = & r_{n-2} \times q_{n-1} + r_{n-1} \label{eq:def:rnm3} \\
140 r_{n-2} & = & r_{n-1} \times q_{n} + r_{n} \label{eq:def:rnm2}\\
141 r_{n-1} & = & r_{n} \times q_{n+1} + 0 \nonumber
145 On sait que $a\land b$ est $r_n$ le dernier reste non nul.
146 On remonte les équations une à une en démarrant de (\ref{eq:def:rnm2}).
148 r_{n} & = & r_{n-2} - r_{n-1} \times q_{n} \nonumber \\
149 & = & 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\\
150 & = & r_{n-2}. (1 + q_{n-1}. q_{n}) - r_{n-3}. q_{n} \textrm{ (factorisation)}\nonumber \\
151 & = & (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 \\
152 & \vdots & \nonumber \\
153 & = & \ldots \textrm{ (on remplace $r_{1}$ par son expression tirée de (\ref{eq:def:r1})}) \nonumber\\
154 & = &ax + by \nonumber
159 Montrer qu'il existe $x$ et $y$ tels que
160 $29x + 72y=1$ puis trouver une valeur pour $x$ et $y$.
165 Montrer que les propriétés $ a \land m = 1 $
166 et $ b \land m = 1 $ impliquent $ ab \land m = 1 $.
170 \begin{Def}[Nombres premiers entre eux]
171 Les deux entiers relatifs $a$ et $b$ sont premiers entre eux si
172 leur plus grand commun diviseur est égal à 1.
176 Montrer que 55 et 21 sont premiers entre eux.
185 \section{L'algorithme RSA}
187 \subsection{Les étapes détaillées de l'algorithme}
189 On rappelle qu'un système cryptographique à clé publique est
190 initialisé par le receveur, c.-à-d. celui qui veut recevoir des messages de
193 \paragraph{Première étape: choix des deux nombres $p$ et $q$.}
194 Le receveur choisit deux grands nombres premiers
195 $p$ et $q$ et calcule $n = pq$. Puis il calcule $\varphi(n)$,
196 où $\varphi : \N^* \rightarrow \N^* $ est la \emph{fonction d'Euler}
197 L'entier $\varphi(n)$ est le nombre d'entiers
198 dans $\{1, 2, \dots , n -1 \}$ qui sont premiers avec $n$.
201 Le receveur choisit $p=7$, $q=13$.
202 Construire l'ensemble des entiers qui sont premiers avec $n=pq$
203 et en déduire que $\varphi(91)=72$.
207 \paragraph{Deuxième étape: choix de la clé publique.}
208 Le receveur choisit $e \in
209 \{1, \dots , n-1\}$ premier avec $\varphi(n)$.
210 La clé publique est la paire $(e,n)$.
212 va s'en servir pour crypter son message à destination de ce receveur.
213 Le cryptage est détaillé
214 à la quatrième étape ci-dessous.
217 Montrer que $(29,91)$ est un candidat acceptable de clé publique.
220 \paragraph{Troisième étape: construction de la clé privée.}
221 Le receveur calcule l'entier $d \in \{1,\dots, n-1\}$
222 tel que le reste de la division de $ed$ par $\varphi(n)$ est 1.
223 Ceci se note aussi $ed \equiv 1 [\varphi(n)]$ qui se lie $ed$ est congru
224 à 1 modulo $\varphi(n)$.
225 La paire $(d,n)$ est la clé privée de décryptage.
226 Elle est secrète et permet au receveur de décrypter tous les messages reçus
227 et cryptés avec $(e,n)$.
230 Trouver la clé privée associée.
234 \paragraph{Quatrième étape: cryptage du message.}
235 L’expéditeur peut crypter tout message écrit sous la forme
236 d'un nombre $m$ appartenant à $\{1, \dots , n-1\}$ et qui est
238 Le message codé est le reste $a$ de la division de $m^e$ par $n$.
239 On a donc $m^e \equiv a [n]$, où $a \in \{1, \dots , n - 1\}$.
243 \item Montrer que l'expéditeur a la possibilité de crypter le message $m=59$.
244 \item Construire le message crypté $a$ à l'aide de la clé publique.
248 \paragraph{Cinquième étape: décryptage du message.}
249 Le receveur dispose de $a$ et de sa clé privée $(d,n)$.
250 Pour décrypter $a$, il calcule le reste dans la division par $n$
251 de $a^d$ (c.-à-d. $a^d [n]$).
252 Si aucune erreur de calcul n'a été effectuée, c'est le message initial $m$.
257 le message $a$ à l'aide de la clé privée. Il doit s'agir de $m$.
261 \subsection{Les points clés}
262 L'algorithme RSA repose sur plusieurs points clés rencontrés successivement:
264 \item la génération de deux grands nombres premiers $p$ et $q$ ;
265 \item la multiplication de grands nombres : $pq$, $ed$,
266 \item l'arithmétique modulaire;
267 \item l'algorithme d'Euclide de génération de PGCD et son corollaire de Bézout;
268 \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.
273 %\subsection{L'algorithme de RSA est correct}
275 \section{Les incontournables théorèmes de Bézout et de
278 \begin{Prop}[Théorème de Bézout]
279 Deux entiers strictement positifs
280 $a$ et $b$ sont premiers entre eux, si et seulement s'il
281 existe un couple $(x,y)$ d'entiers relatifs vérifiant $ax + by = 1$.
285 \item[\textbf{Seulement si.}] Supposons $a$ et $b$ premiers entre eux.
286 D'après l'identité de Bézout,
287 il existe donc un couple d'entiers $x$ et $y$ tels que $ax+by=1$,
288 car 1 est le PGCD de $a$ et de $b$.
290 Supposons qu'il existe un couple $(x,y)$
291 d'entiers relatifs vérifiant $ax + by = 1$ et $d = a \land b$.
292 L'entier $d$ divise les produits $ax$ et $by$. Donc $d$ divise
293 $ax + by$ et donc $d$ est 1.
297 \begin{Prop}[Théorème de Gau{\ss}]
298 Soient $a$, $b$ et $c$ trois entiers naturels.
299 Si $a$ divise le produit $bc$
300 et s'il est premier avec $b$, alors il divise $c$.
305 Faire la preuve du théorème de Gau{\ss}.
308 \begin{Prop}[Fonction d'Euler]
309 Si $p$ et $q$ sont deux nombres premiers distincts alors l'égalité
310 suivante permet de trouver le valeur de la fonction d'Euler en un seul
313 \varphi(pq)=(p-1)(q-1). \label{FEuler}
317 \begin{Exo}[Preuve de l'expression d'Euler]
318 On doit compter le cardinal des nombres de $\{1, 2, . . . , pq -1\}$ qui sont
321 \item Construire l'ensemble $P$ des entiers naturels multiples de $p$ inférieurs à $pq -1$. Combien en a-t-on?
322 \item Construire l'ensemble $Q$ des entiers naturels multiples de $q$ inférieurs à $pq -1$. Combien en a-t-on?
323 \item Supposons qu'un élément $k$ appartienne à la fois à $P$ et à $Q$.
324 Montrer que cela implique qu'il existe deux entiers naturels
325 $m_1$ et $m_2$ tels que $m_1.p = m_2.q$.
326 \item En utilisant le théorème de Gau{\ss}, montrer que cela est absurde.
327 \item En déduire l'équation (\ref{FEuler}).
337 %Refaire cet exo avec 27x +8y = 1
339 L'objectif est de résoudre l'équation $(E)$ $405x -120y =15$
340 d'inconnues $x$ et $y$.
342 \item Trouver le PGCD de 405 et 120 à l'aide de l'algorithme d'Euclide.
343 \item En déduire une solution particulière de cette équation.
344 \item En utilisant la solution particulière, montrer que $(E)$ est
345 équivalente à $27(x-3) = 8(y-10)$.
346 \item Utiliser le théorème de Gau{\ss} pour montrer que
347 l'ensemble des solutions de $(E)$ est $\{(8k+3;27k+10)| k \in \Z\}$.
354 Soit $p$ un nombre premier.
356 \item Calculer $\varphi(p^2)$.
357 \item Est-ce que RSA fonctionnerait aussi avec l'entier $n = p^2$ à la place de $n=pq$?
365 \section{Congruence modulo}
367 \begin{Def}[Congruence modulo]
368 Soit $a$ et $b$ deux entiers relatifs.
369 On dit que $a$ est congru $b$ modulo $n$ si $n$ divise $a-b$, c'est-à-dire
370 s'il existe $x \in \Z$ tel que $(a-b) = nx$.
371 On note $a \equiv b [n]$.
372 La relation \og $\equiv [n]$ \fg{}
373 est une relation d'équivalence appelée congruence modulo $n$.
377 Soit $a$, $b$, $c$, $d$, $x$ et $y$ dans $\Z$.
378 Si $a \equiv c[n]$ et $b \equiv d[n]$, alors
380 \item $a +b \equiv c + d [n]$;
381 \item $ab \equiv cd [n]$;
382 \item $ax +by \equiv cx +dy [n]$.
387 Démontrer la proposition précédente.
391 Soit deux entiers naturels $a$ et $n$ tels que $1< a< n$.
392 Si $a$ et $n$ sont premier entre eux,
393 alors il existe un unique $x \in \{1, \dots, n-1\}$ tel
394 que $ax \equiv 1[n]$.
399 \item[\textbf{Existence.}]
400 Comme $a$ et $n$ sont premiers entre eux, d'après le théorème de Bézout,
401 il existe $x$ et $y$ entiers tels que $ax+ny = 1$, soit encore $ax \equiv 1[n]$.
402 \item [\textbf{Unicité.}]
403 Supposons qu'il existe une seconde solution $x'\in \{1, \dots, n-1\}$ telle que
404 $ax' \equiv 1[n]$. Donc $a(x-x') \equiv 0[n]$. Or $n$ est premier avec $a$.
405 D'après le théorème de Gau{\ss}, $n$ divise donc $x-x'$.
406 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'$.
411 Trouvons les nombres $x$ tels que $7x+11$ soit multiple de 36. Dit autrement,
412 résoudre l'équation $7x \equiv -11 [36]$.
414 On cherche un \og inverse \fg{} de 7 c.-à-d. un nombre $t$, $1 < t < 35$
415 tel que $7t \equiv 1 [36]$.
416 Soit à résoudre $7t \equiv 1 [36]$ qui revient à trouver $t$ et $u$ tels
417 que $7t -36u = 1$, soit encore les coefficient de Bézout relatifs à
418 (7 et 36). On trouve successivement
420 36 & = & 7 \times 5 +1 \\
421 7 & = & 7 \times 1 + 0 \\
422 & \textrm{et donc}&\\
423 1 & = & 36 - 7 \times 5
425 et donc $t = -5$ (et $u=-1$).
426 On en déduit $7x \equiv -11 [36]$ est équivalent à
427 $(-5).7x \equiv (-5).-11 [36]$ soit encore
428 $x \equiv 55 [36] \equiv 19 [36]$.
432 Trouver les entiers relatif $x$ tels que
433 $261x +2$ soit multiple de 305.
440 \item Démonter que $3^5 \equiv 1 [11]$
441 \item En déduire que pour tous entiers naturels $k$ et $r$ on a
442 $3^{5k +r} \equiv 3^r [11]$.
443 \item $n$ étant un entier naturel, quels sont les restes possibles
444 dans la division de $3^n$ par 11?
445 \item Trouvez pour quelles valeurs de $n$, $3^n + 7$ est divisible par 11.
450 Soit $p$ un nombre premier tel que $p \equiv 3 [4]$.
451 Soit $a$ un entier qui est un carré, modulo $p$:
452 il existe $b$ tel que $a \equiv b^2 [p]$.
454 $a^{(p+1)/4}$ est une racine carré de $a$, modulo $p$.
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)}\\
496 On considère l'algorithme suivant:
497 on choisit deux nombres premiers $p$ et $q$
499 $p \equiv 2 [3]$ et $s \equiv 2 [3]$.
501 Alice veut envoyer un message à Bob.
502 Comme dans RSA, son message est un nombre $m \in \ \{1, . . . , n - 1\}$
503 tel que $m \land n = 1$
504 Le message codé d'Alice est le résultat $a= m^3[n]$.
505 Bob décode $a$ en calculant
507 m' \equiv a^{d} [n] \textrm{ où $d=\dfrac{2(p-1)(q-1)+1}{3}$}
509 Normalement $m$ doit être égal à $m'$.
512 \item Choisir $p=11$, $q=17$, $m=4$ puis construire le message codé ainsi que le message décodé.
513 \item Montrer que $d$ est toujours un entier.
514 \item Expliquer pourquoi $a$ et $m'$ ne sont pas divisibles par $n$.
515 \item Montrer que Bob a bien décodé le message d’Alice.
521 \begin{Prop}[Petit théorème de Fermat]
522 Si $p$ est un nombre premier et $a$ un entier
523 alors $a^{p} \equiv a [p]$.
527 La preuve se fait par récurrence sur $a$.
529 \item Pour $a=0$, c'est trivial.
530 \item Supposons la formule établie pour $k=a$ et montrons qu'elle l'est aussi
532 On remarque tout d'abord que pour chaque $k$, $0 < k < p$, le coefficient
533 binomial $\binom{p}{k} = \dfrac{p!}{k!(p-k)!}$ est divisible par $p$, c.-à-d.
534 $\binom{p}{k} \equiv 0 [p]$.
535 On a alors successivement:
538 \binom{p}{1}a^{p-1}+\binom{p}{2}a^{p-2}+\dots +\binom{p}{p-1}a^{1}+1\\
539 &\equiv& a^p +1 [p]\textrm{ (d'après la remarque sur les coeff. binomiaux)}\\\
540 &\equiv& a +1 [p]\textrm{ (par hypothèse de récurrence).}\\\
545 \begin{Prop}[Corrolaire du petit théorème de Fermat]
546 Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
547 alors $a^{p-1}-1$ est un multiple de $p$.
550 D'après le petit théorème de Fermat, $a^{p} \equiv a [p]$. Dit Autrement
551 $p$ divise $a^{p} - a = a (a^{p-1}-1)$. Or $p$ est premier avec $a$ d'après les
552 hypothèses. D'après le théorème de Gau{\ss}, $p$ divise $a^{p-1}-1$.
556 \begin{Exo}[Sujet du bac S Liban 2005]
557 % On rappelle le résultat suivant appelé le corollaire du
558 % petit théorème de Fermat.
560 % \emph{Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
561 % alors $a^{p-1}-1$ est un multiple de $p$.}
563 \item On considère l’équation $(E)$ : $109x-226y=1$ où $x$ et $y$
564 sont des entiers relatifs.
566 \item Déterminer $109\land 226$.
567 Que peut-on en conclure pour l'équation $(E)$?
568 \item Montrer que l'ensemble des solutions de $(E)$
569 est l'ensemble des couples de la forme
570 $(141+226k ;68+109k)$, où $k$ appartient à $\Z$.
571 En déduire qu'il existe un unique entier naturel non nul $d$
572 inférieur ou égal à 226 et un unique entier naturel non nul $e$ tels que
573 $109d =1+226 e$ (on précisera les valeurs des entiers $d$ et $e$).
575 \item Démontrer que 227 est un nombre premier.
576 \item On note $A=\{0,1,2,\dots,226\}$. On considère les deux fonctions
577 $f$ et $g$ de $A$ dans $A$ définies de la manière suivante:
579 \item A tout entier $a\in A$, $f$ associe le reste de
580 la division euclidienne de $a^{109}$ par 227.
581 \item A tout entier $a\in A$, $g$ associe le reste de la
582 division euclidienne de $a^{141}$ par 227.
585 \item Vérifier que $g(f(0))=0$ .
586 \item Montrer que, quel que soit l'entier non nul $a$ de $A$ , $a^{226}-1$ est multiple de 227.
587 \item En déduire que, quel que soit l'entier non nul $a$ de $A$,
588 $g(f(a))=a$ . Que peut-on dire de $f(g(a))=a$?
595 \subsection{Puissance de grands nombres}
598 Calculons $666^{999}[13]$.
601 666^{999} & \equiv & (13\times 51 + 3)^{999} [13]\\
602 & \equiv & 3^{999} [13]\\
603 & \equiv & 3^{12\times83 +3} [13] \\
604 & \equiv & 3^3 \times (3^{12})^{83} [13] \\
605 & \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)}\\
614 Calculer $2^{500} [13]$ et $26^{1000} [17]$.
619 % Montrer que si l'entier naturel $n$ est premier alors
620 % $$(x +1)^n \equiv x^n +1[n].$$
622 % On a même l'équivalence, cependant, l'autre sens est plus technique à démontrer.
630 \section{Génération de grands nombres premiers}
631 Dans ce qui suit, on nomme $\Prem$ l'ensemble des nombres premiers.
632 Depuis Euclide, on sait que $\Prem$ est de taille infinie.
633 Fermat avait cru donner une formule ne générant que des nombres premiers.
634 Il affirmait que pour tout $n \in \N$, le nombre
638 était premier. Or 641 divise $F_5$. Aujourd'hui, on pense que seuls
639 les nombres de $F_0$ à $F_4$ sont premiers.
641 \subsection{Distribution des nombres premiers parmi les entiers}
643 Même si on ne connaît pas de formule permettant de construire tous les
644 nombres premiers, tout n'est pas perdu puisque les nombres premiers
645 ne sont pas si rares que cela. Le théorème suivant donne même
646 la proportion approximative des entiers inférieurs ou égaux à
647 $N$ qui sont premiers.
648 \begin{Prop}[Théorème des nombres premiers]
649 La fonction $\pi:\N \rightarrow \N$ associe
650 à chaque nombre $N$ le nombre d'entiers inférieurs ou égaux à $N$ qui sont
651 premiers, soit $\pi(N) = |\{p \le N | p \textrm{ premier}\}|$.
652 Lorsque $N$ est grand, on a:
654 \pi(N) &\approx& \dfrac{N}{\ln(N)}
657 La preuve de ce théorème est d'un niveau très avancé et n'est pas reproduite
660 Pour obtenir un entier de 100 chiffres, il suffit de considérer
661 $N= 10^{100}$. Si on choisit au hasard un nombre dans $\N_{N}^{*}$,
662 la probabilité qu'il soit premier est:
664 \textrm{Prob}(n \textrm{ premier}) &\approx&
665 \dfrac{\dfrac{N}{\ln(N)}}{N} \\
669 Le tableau~\ref{Table:propPrem} donne une valeur approchée de
670 cette probabilité pour quelques nombres de chiffres.
673 \item la seconde ligne n'impose aucune restriction sur le dernier chiffre;
674 \item la troisième ligne impose que le dernier chiffre soit dans
675 $\{1,3,5,7,9\}$: il est inutile de vérifier que les
676 multiples de 2 sont premiers!
677 \item la quatrième ligne impose que le dernier chiffre soit dans $\{1,3,7,9\}$:
678 les multiples de 5 ne sont pas premiers!
680 On constate que si l'on tire au hasard un nombre (même de 100 chiffres),
681 parmi ceux qui se terminent par $\{1,3,7,9\}$ (ensemble noté $B$ par la suite)
682 la probabilité qu'il soit premier n'est pas infime. La solution au problème
683 de génération de nombres premiers repose sur la capacité ou non a disposer
684 d'un test efficace de primalité pour des grands nombres.
686 %% Attention ce tableau est généré par ailleurs
689 \begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|}
691 Nombre de chiffres & \textbf{75}& \textbf{100}& \textbf{125}& \textbf{150}& \textbf{175}& \textbf{200}& \textbf{225}& \textbf{250}& \textbf{275}& \textbf{300}\\
693 Dernier chiffre quelconque & 172& 230& 287& 345& 402& 460& 518& 575& 633& 690\\
695 Dernier chiffre impair & 86& 115& 143& 172& 201& 230& 259& 287& 316& 345\\
697 Dernier chiffre dans $\{1,3,7,9\}$& 69& 92& 115& 138& 161& 184& 207& 230& 253& 276\\
701 \caption{Probabilités inverse d'obtenir un nombre premier \label{Table:propPrem}}
705 On considère comme expérience aléatoire le fait de tirer un nombre au hasard
706 dans $B$. On a une probabilité $p$ que le nombre soit premier.
707 Soit $X$ la variable aléatoire qui compte le nombre
708 de fois où l'on a réalisé cette expérience avant d'obtenir un nombre premier.
709 $X$ suit une loi géométrique de paramètre $p$:
711 P(X=k) = (1-p)^{k-1}p.
713 Or l'espérance d'une variable aléatoire
714 suivant une loi géométrique de paramètre $p$ est $\frac{1}{p}$.
715 Pour 100 chiffres, il faudra en moyenne 92 tirages pour générer un
718 Il \og reste \fg{} à fournir une méthode efficace pour décider
719 de la primalité d'un entier, ce que présente la section suivante.
722 \subsection{Tests de primalité}
723 Chaque section donne un algorithme permettant de décider si un entier $p$ fourni
724 en entrée est premier ou non.
726 \subsubsection{Méthode naïve}
727 On vérifie s'il est divisible par l'un des entiers pairs compris entre 2 et
728 $\sqrt{p}$. Si la réponse est négative, alors $p$ est premier,
729 sinon il est composé. Pour améliorer la performance de cette méthode, on peut
730 calculer à l'avance une liste des nombres premiers inférieurs à $\sqrt{p}$
731 (avec un crible d'Ératosthène), pour ne tester que ceux-ci.
733 Par exemple, pour tester un nombre inférieur à 39 000,
734 il suffit de vérifier qu'il n'est pas multiple d'un nombre premiers inférieur
735 à 198 (car $198^2 = 39 204$); on doit faire au maximum 45 divisions.
737 \subsubsection{Tests probabilistes}
739 % \begin{Prop}[Corrolaire du petit théorème de Fermat]
740 % Si $p$ est un nombre premier et $a$ un entier non divisible par $p$,
741 % alors $a^{p-1}-1$ est un multiple de $p$, c'est-à-dire:
743 % \forall a\in \N \forall p \in \N ( p \in \Prem \textrm{ et } a \not\equiv 0[p]
744 % \Rightarrow a^{p-1}\equiv 1 [p]).
745 % \label{petittheremeFermat}
750 \paragraph{Test de Fermat.}
751 Le petit théorème de Fermat est une implication et non pas une équivalence:
753 \item si on prend un $p\in \N$ et un $a \in\N$ quelconque,
754 alors si $p$ est premier et $a$ non divisible par $p$, alors on peut en déduire que $a^{p-1}\equiv 1 [p]$;
755 \item rien ne dit que si on a $a^{p-1}\equiv 1 [p]$, alors $p$ est premier et $a$ non divisible par $p$.
756 \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.
758 Cependant si on effectue un grand nombre de fois l'expérience de choisir
759 $a \in \N_{n-1}^{*}$ et qu'à chaque fois on établit $a^{p-1}\equiv 1 [p]$,
760 alors $p$ est probablement premier.
761 Cependant ce n'est pas toujours le cas: par exemple $2^{340} \equiv 1 [341]$ et
762 pourtant $341 = 11 \times 31$.
765 Donner le code de la fonction \verb+testPrimaliteFermat(n,t)+ qui retourne
766 \verb+True+ si \verb+t+ evaluations de $\texttt{a}^{\texttt{n}-1}$ ont retourné $ 1 [\texttt{n}]$
767 pour un $a \in \N_{n-1}^{*}$ et \verb+False+ sinon.
772 \paragraph{Test de Miller-Rabin}
774 Soit $n$ un nombre premier impair,
775 alors nous pouvons écrire $n - 1$ comme $2^s \times d$,
776 où $s$ est un entier et $d$ est impair.
777 Alors, pour tout entier naturel $a \in \N_{n-1}^*$
778 tel que $a$ est premier avec $n$,
779 une des conditions suivantes doit être vérifiée:
781 \item $a^{d} \equiv 1 [n]$, ou bien
782 \item $a^{2^r\cdot d} \equiv -1 [n]$ pour un certain $0 \le r \le s-1$.
784 La preuve de cette propriété est admise
786 Le test de primalité de Miller-Rabin est basé sur les équations précédentes.
787 Si on choisit un grand nombre $t$ de fois $a \in \N_{n-1}^*$
788 et qu'on obtienne à chaque fois
790 \item $a^{d} \equiv 1 [n]$ ou
791 \item $a^{2^r\cdot d} \equiv -1 [n]$ pour un certain $0 \le r \le s-1$,
793 alors le nombre $n$ est probablement premier.
794 Dans le cas contraire ($a^{d} \not\equiv 1 [n]$ et
795 $a^{2^r \cdot d} \not\equiv -1 [n]$ pour tous les $0 \le r \le s-1$),
796 $n$ n'est pas premier.
799 Donner le code de la fonction \verb+testPrimaliteMillerRabin(n,t)+.
803 \section{Factorisation}
804 L'objectif de cette partie est de montrer qu'on peut factoriser $n$
805 sous la forme de $p\times q$ si ces deux derniers nombres ont été mal choisis.
809 On considère que l'étape 1 de l'algorithme RSA a généré deux nombre premiers $p$ et $q$ proches tels que $p>q$. On définit $t = \frac{p+q}{2}$ et $s = \frac{p-q}{2}$.
812 \item le produit $n = pq = t^2 - s^2$;
813 \item l'entier $t$ est légèrement supérieur à la racine carrée de $n$ et que $s $ est petit;
814 \item l'on peut utiliser ces informations pour factoriser $n$ c.-à-d. retrouver $p$ et $q$;
815 \item Factoriser 896861 et 318040531. % res=2953*3037 res = 17729*17939
816 \item Factoriser 9623827 et 343570291. % res=(3259, 2953) res = (19379, 17729)
821 L'objectif de ce TP est d'implanter toute la démarche RSA
822 avec les éléments vus en TD.
823 % Tout ceci est à synthétiser dans un document
824 % libreoffice à renvoyer à l'adresse \url{couchot@femto-st.fr} avec pour sujet
827 \item Quel est le plus petit nombre à trois chiffres?
828 Quel est le plus grand nombre à trois chiffres?
829 Comment générer aléatoirement un nombre qui a trois chiffres en utilisant
831 \item Même question que la question précédente, en remplaçant \og trois\fg{}
833 \item On a vu qu'un nombre se terminant par 0,2,4,5,6,8 n'est jamais premier.
834 Comment générer un nombre qui a $N$ chiffres, dont le dernier chiffre
835 n'est pas dans la liste précédente.
836 \item Pour affirmer qu'un nombre de 100 chiffres
837 est premier, on invoquera le test de Miller-Rabin avec 50
838 valeurs testées différentes $a$. Si toutes retournent qu'il est
839 probablement premier, on considérera qu'il l'est.
840 Construire la fonction \verb+genereUnNombrePremier(N)+ qui retourne
841 un nombre probablement premier selon cette méthode.
842 %Copier-coller cette fonction dans votre synthèse.
843 \item A l'aide de l'agorithme précédent, générer deux nombres premiers
844 $p$ et $q$ de 100 chiffres.
845 %Copier et coller ces deux nombres dans votre synthèse.
846 Calculer $n=pq$ puis \verb+phi+ telle
847 que \verb+phi=(p-1)*(q-1)+.
849 \item Contruire la partie $e$ de la clé publique $(e,n)$
850 comme un nombre premier de trente chiffres par exemple.
851 Si elle est première avec \verb+phi+, c'est une bonne clé, sinon on
852 regénere un nombre premier de trente chiffres.
853 %Copier et coller $e$ dans votre synthèse.
855 \item Donner le code la fonction \verb+bezout(+$a$,$b$\verb+)+
856 qui retourne $x$ et $y$ tels que $x.a + y.b = a \land b$.
860 % if b==0: return [1,0]
863 % return [uv[1],uv[0]-uv[1]*(a/b)]
866 Se servir de cette fonction pour générer la partie $d$ de
867 la clé privée $(d,n)$. Attention, faire en sorte que $0 \le d \le$\verb+phi+.
868 %Copier-coller les instructions permettant d'obtenir $d$.
869 %Copier-coller la valeur de $d$.
871 \item Chiffrer à l'aide de la clé publique $(e,n)$
872 le message $m=3402752281514000316845$
873 qui est un numéro de carte bancaire comprenant les 16 chiffres,
874 la date de validité et le code de sécurité. Le mesage chiffré est $a$.
875 %Copier-coller l'instructions permettant d'obtenir $a$.
876 %Copier-coller la valeur de $a$.
879 \item Déchiffrer $a$ à l'aide de la clé privée.
880 Vérifier que vous obtenez bien $m$ à nouveau.
881 %Copier-coller l'instructions permettant de déchiffrer $a$.
890 % \section{Conclusion}
891 % cf SMATH paragraphe applications p 223.