ATLAS Ouvrir dans l'atlas →

ExerciceMaths expertes, chapitre 7 — PGCD · Approfondissements

Exercice 31 Cryptage RSA, tiré du BAC 2018

DémonstrationCalcul

Le but de cet exercice est d’envisager une méthode de cryptage à clé publique d’une information numérique, appelée système RSA, en l’honneur des mathématiciens Ronald Rivest, Adi Shamir et Leonard Adleman, qui ont inventé cette méthode de cryptage en 19771977 et l’ont publiée en 19781978.

Les questions 11 et 22 sont des questions préparatoires, la question 33 aborde le cryptage, la question 44 le décryptage.

1. Cette question envisage de calculer le reste dans la division euclidienne par 5555 de certaines puissances de l’entier 88.

(a) Vérifier que 87≡2  [55]8^{7}\equiv 2 \; [55]. En déduire le reste de la division euclidienne par 5555 du nombre 8218^{21}.

(b) Vérifier que 82≡9  [55]8^{2}\equiv 9 \; [55] puis en déduire à l'aide de la question a)a) le reste de la division euclidienne par 5555 de 8238^{23}.

2. Dans cette question, on considère l’équation (E)  :  23x−40y=1(E) \; : \; 23x-40y=1, dont les solutions sont des couples (x,y)(x,y) d’entiers relatifs.

(a) Justifier le fait que l’équation (E)(E) admet au moins un couple solution.

(b) Donner un couple, solution particulière de l’équation (E)(E).

(c) Déterminer tous les couples d’entiers relatifs solutions de l’équation (E)(E).

(d) En déduire qu’il existe un unique entier dd vérifiant les conditions 0⩽d<400\leqslant d<40 et 23d≡1  [40]23d\equiv 1 \; [40].

3. Cryptage dans le système RSA.

Une personne AA choisit deux nombres premiers pp et qq , puis calcule les produits N=p×qN=p\times q et n=(p−1)×(q−1)n=(p-1)\times(q-1). Elle choisit également un entier naturel cc premier avec nn. La personne publie le couple (N;c)(N;c) qui est une clé publique permettant à quiconque de lui envoyer un nombre crypté. Les messages sont numérotés et transformés en une suite d’entiers compris entre 00 et N−1N-1. Pour crypter un entier aa de cette suite, on procède ainsi : on calcule le reste bb dans la division euclidienne par NN du nombre aca^{c} et le nombre crypté est l’entier bb. Dans la pratique, cette méthode est sûre si la personne AA choisit des nombres premiers pp et qq très grands, s’écrivant avec plusieurs dizaines de chiffres. On va l’envisager ici avec des nombres plus simples : p=5p=5 et q=11q=11. La personne AA choisit également c=23c=23.

(a) Calculer les nombres NN et nn, puis justifier que cc vérifie la condition voulue.

(b) Un émetteur souhaite envoyer à la personne AA le nombre a=8a=8. Déterminer la valeur du nombre crypté bb.

4. Décryptage dans le système RSA.

La personne AA calcule dans un premier temps l’unique entier naturel dd vérifiant les conditions : 0⩽d<n0\leqslant d<n et cd≡1  [n]cd\equiv 1 \; [n]. Elle garde secret le nombre dd qui lui permet, et à elle seule, de décrypter les nombres qui lui ont été envoyés cryptés avec la clé publique. Pour décrypter un nombre crypté bb, la personne AA calcule le reste de la division euclidienne par NN du nombre bdb^{d} , et le nombre en clair (c’est-à-dire le nombre avant le cryptage) est le nombre aa. On admet l’existence et l’unicité de l’entier dd, et le fait que le décryptage fonctionne. Les nombres choisis par AA sont encore p=5p=5, q=11q=11 et c=23c=23.

(a) Quelle est la valeur de dd ?

(b) En appliquant la règle de décryptage, retrouver le nombre en clair lorsque le nombre crypté est b=17b=17.

Corrigé

1. (a) On calcule les puissances de 88 modulo 5555 de proche en proche : 82=64≡9  [55];84≡92=81≡26  [55]8^{2}=64\equiv 9\;[55] \quad ; \quad 8^{4}\equiv 9^{2}=81\equiv 26\;[55]

86≡26×9=234=4×55+14≡14  [55]8^{6}\equiv 26\times 9=234=4\times 55+14\equiv 14\;[55]
87≡14×8=112=2×55+2≡2  [55]8^{7}\equiv 14\times 8=112=2\times 55+2\equiv 2\;[55]

87≡2  [55]\boxed{8^{7}\equiv 2\;[55]} On en déduit, en élevant au cube : 821=(87)3≡23=8  [55]8^{21}=\left(8^{7}\right)^{3}\equiv 2^{3}=8\;[55]

Le reste de la division euclidienne de 821 par 55 est 8\boxed{\text{Le reste de la division euclidienne de } 8^{21} \text{ par } 55 \text{ est } 8}

(b) Le premier calcul ci-dessus donne 82≡9  [55]\boxed{8^{2}\equiv 9\;[55]}. On décompose alors : 823=821×82≡8×9=72=55+17≡17  [55]8^{23}=8^{21}\times 8^{2}\equiv 8\times 9=72=55+17\equiv 17\;[55]

Le reste de la division euclidienne de 823 par 55 est 17\boxed{\text{Le reste de la division euclidienne de } 8^{23} \text{ par } 55 \text{ est } 17}

2. (a) PGCD(23,40)=1\mathrm{PGCD}(23,40)=1 car 2323 est premier et ne divise pas 4040. Comme 11 divise 11, le corollaire de Bézout garantit : L’eˊquation (E) admet au moins un couple solution\boxed{\text{L'équation } (E) \text{ admet au moins un couple solution}}

(b) On cherche un couple par l'algorithme d'Euclide : 40=23×1+17(L1)23=17×1+6(L2)17=6×2+5(L3)6=5×1+1(L4)\begin{aligned} 40 &= 23\times 1+17 \qquad (L_{1}) \\ 23 &= 17\times 1+6 \qquad (L_{2}) \\ 17 &= 6\times 2+5 \qquad (L_{3}) \\ 6 &= 5\times 1+1 \qquad (L_{4}) \end{aligned} Remontée : 1=6−5×1or (L3):  5=17−6×2=6−(17−6×2)=3×6−17or (L2):  6=23−17=3×(23−17)−17=3×23−4×17or (L1):  17=40−23=3×23−4×(40−23)=7×23−4×40\begin{aligned} 1 &= 6-\textcolor{#9e0018}{5}\times 1 &&\text{or } (L_{3}) : \; 5=17-6\times 2 \\ &= 6-\textcolor{#9e0018}{(17-6\times 2)}=3\times\textcolor{#9e0018}{6}-17 &&\text{or } (L_{2}) : \; 6=23-17 \\ &= 3\times\textcolor{#9e0018}{(23-17)}-17=3\times 23-4\times\textcolor{#9e0018}{17} &&\text{or } (L_{1}) : \; 17=40-23 \\ &= 3\times 23-4\times\textcolor{#9e0018}{(40-23)}=7\times 23-4\times 40 && \end{aligned}

(x0 ;y0)=(7 ;4)car23×7−40×4=161−160=1\boxed{(x_{0}\,;y_{0})=(7\,;4) \quad \text{car} \quad 23\times 7-40\times 4=161-160=1}

(c) Soit (x ;y)(x\,;y) une solution. En soustrayant terme à terme : 23(x−7)−40(y−4)=0soit23(x−7)=40(y−4)23(x-7)-40(y-4)=0 \qquad \text{soit} \qquad 23(x-7)=40(y-4) Comme 4040 divise 23(x−7)23(x-7) et que PGCD(23,40)=1\mathrm{PGCD}(23,40)=1, le théorème de Gauss donne 40∣(x−7)40\mid(x-7) : il existe k∈ℤk\in\mathbb{Z} tel que x=40k+7x=40k+7. En reportant, 23×40k=40(y−4)23\times 40k=40(y-4), d'où y=23k+4y=23k+4. S={(40k+7 ;23k+4)  ;  k∈ℤ}\boxed{S=\left\{(40k+7\,;23k+4) \; ; \; k\in\mathbb{Z}\right\}} Vérification : 23(40k+7)−40(23k+4)=920k+161−920k−160=123(40k+7)-40(23k+4)=920k+161-920k-160=1.

(d) Dire que 23d≡1  [40]23d\equiv 1\;[40] signifie que 4040 divise 23d−123d-1, c'est-à-dire qu'il existe un entier yy tel que 23d−40y=123d-40y=1 : le couple (d ;y)(d\,;y) est solution de (E)(E). D'après la question c), dd s'écrit d=40k+7d=40k+7. La condition 0⩽d<400\leqslant d<40 impose alors k=0k=0. d=7 est l’unique entier veˊrifiant les deux conditions\boxed{d=7 \text{ est l'unique entier vérifiant les deux conditions}}

3. (a) N=p×q=5×11=55;n=(p−1)(q−1)=4×10=40N=p\times q=5\times 11=\boxed{55} \qquad ; \qquad n=(p-1)(q-1)=4\times 10=\boxed{40} Il reste à vérifier que c=23c=23 est premier avec n=40n=40, ce qui a été établi à la question 2a : PGCD(23,40)=1:la condition est bien remplie\boxed{\mathrm{PGCD}(23,40)=1 : \text{la condition est bien remplie}}

(b) Le nombre crypté bb est le reste de la division euclidienne de ac=823a^{c}=8^{23} par N=55N=55. C'est exactement le calcul de la question 1b : b=17\boxed{b=17}

4. (a) L'entier dd doit vérifier 0⩽d<n=400\leqslant d<n=40 et cd=23d≡1  [40]cd=23d\equiv 1\;[40] : c'est précisément la caractérisation de la question 2d. d=7\boxed{d=7}

(b) On calcule le reste de bd=177b^{d}=17^{7} modulo 5555, de proche en proche : 172=289=5×55+14≡14  [55]17^{2}=289=5\times 55+14\equiv 14\;[55]

174≡142=196=3×55+31≡31  [55]17^{4}\equiv 14^{2}=196=3\times 55+31\equiv 31\;[55]
176≡31×14=434=7×55+49≡49  [55]17^{6}\equiv 31\times 14=434=7\times 55+49\equiv 49\;[55]
177≡49×17=833=15×55+8≡8  [55]17^{7}\equiv 49\times 17=833=15\times 55+8\equiv 8\;[55]

a=8\boxed{a=8} On retrouve bien le nombre initial de la question 3b : le décryptage fonctionne.

Toute la sécurité du procédé repose sur le fait que dd se calcule à partir de n=(p−1)(q−1)n=(p-1)(q-1), donc de la factorisation N=p×qN=p\times q. Avec N=55N=55, cette factorisation est immédiate ; avec un NN de plusieurs centaines de chiffres, elle est hors de portée des ordinateurs actuels.

Dans l'édifice

Thèmes

équations diophantiennes, congruences, nombres premiers, cryptographie, suites

Notions

entiers modulo n (anneau des), nombre premier

Ouvrir dans l'atlas interactif →