Vous êtes sur la page 1sur 3

SYSTEME CRYPTOGRAPHIQUE RSA : LE COURS

Ce dernier chapitre du programme est plus difficile : il est destiné aux élèves curieux en mathé-
matiques et à ceux que la cryptographie intéresse.
Le système RSA est celui qui est utilisé pour sécuriser les transactions bancaires lors d’achats
via Internet.

I) Petit théorème de Fermat.

1. Le théorème.

Soit p un nombre premier et a un entier naturel.

ap ≡ a [p].

Démonstration.
On fixe le nombre premier p quelconque et on fait un raisonnement par récurrence sur
l’entier naturel a.

Initialisation :
La propriété est vraie pour a = 0 car 0p = 0 ≡ 0 [p].
Hérédité : On suppose que ap ≡ a [p] pour a fixé.
On montre que (a + 1)p ≡ a + 1 [p].
p−1 ( )
∑ p
p
(a + 1) = a + p
ap−k + 1p (*) d’après la formule du binôme de Newton.
k
k=1 ( )
p
Nous allons montrer que, pour tout k entre 1 et p − 1, est divisible par p.
( ) ( ) k
p p(p − 1)...(p − k + 1) p
En effet, = ⇔ k! = p(p − 1)...(p − k + 1).
k k!( ) k
p
On en déduit que p divise k! car (p − 1)...(p − k + 1) est entier.
k
Or p est premier et k est un entier entre 1 et p − 1, donc p est premier avec k et avec
tous les entiers entre 1 et k.
D’où p est ( premier
) avec k!.
p
p divise k! et p est premier avec k! donc, d’après le théorème de Gauss, p divise
( ) k
p
pour tout k entre 1 et p − 1.
k ( )
p
Finalement, ≡ 0 [p] pour tout k entre 1 et p − 1.
k
L’égalité (*) et l’hypothèse de récurrence montrent alors que (a + 1)p ≡ a + 1 [p].
Conclusion : Pour tout a ∈ IN, ap ≡ a [p] si p est premier.

2. Conséquence.

On en déduit une conséquence, qui nous sera utile pour le cryptage RSA.
Soit a un entier naturel.
ap−1 ≡ 1 [p] pour tout nombre premier p ne divisant pas a.

Démonstration.
On sait, d’après le petit théorème de Fermat, que ap ≡ a [p].
On en déduit ap − a ≡ 0 [p] ⇒ a(ap−1 − 1) ≡ 0 [p].
Donc p divise a(ap−1 − 1).
Or, par hypothèse, p ne divise pas a donc p est premier avec a (car p est un nombre
premier).
On déduit du théorème de Gauss que p divise ap−1 − 1 , ce qui signifie ap−1 − 1 ≡ 0 [p].
D’où le résultat.

Par exemple, 42 ≡ 1 [3] ou bien 64 ≡ 1 [5].

II) Le système cryptographique RSA.

1. Principe.

Lorsqu’on a étudié le cryptage affine (cryptage sous la forme ax + b), on a vu que, si on


connaissait la clé de chiffrement formée des entiers a, b et n, il était facile de trouver la
clé de déchiffrement formée des entiers c, d et n.
Ainis, c doit être tel que ac ≡ 1 [n] donc solution de l’équation ac − nk = 1 simple à
résoudre informatiquement.
La clé de chiffrement doit donc rester secrète, ce qui n’est pas aisé, vu les milliers de
transactions.
On dit que le chiffrement affine est à clé privée.

Le cryptage RSA permet de remédier à ce problème car la clé de chiffrement est connue
de tous.
Cependant, en connaissant cette clé, il est impossible (dans l’état actuel des connais-
sances), de trouver la clé de déchiffrement.
On dit que le cryptage RSA est à clé publique.

Comme on va le voir au paragraphe suivant, cette impossibilité résulte du fait mathé-


matique suivant :
Lorsqu’un nombre n s’écrit pq avec p et q premiers et distincts, il est très long de trouver
p et q connaissant n.
Bien entendu, lorsque les nombres sont simples, c’est facile.
Ainsi, à partir de n = 35, on trouve facilement p = 5 et q = 7.
Cependant, lorsque n, p et q sont TRES grand, cela prend un temps prohibitif, même
pour les ordinateurs les plus puissants.
Dans la réalité, n, p et q ont quelques centaines de chiffres !!!

Dans le cryptage RSA, la clé de chiffrement est composée d’un nombre n = pq (avec p et
q nombres premiers très grands) et d’un nombre c premier avec le produit (p − 1)(q − 1).
Cette clé est donc publique.
La clé de déchiffrement est composée d’un nombre d tel que cd ≡ 1 [(p − 1)(q − 1)] et
du nombre n.
Comme on l’a dit, le fait que p et q soient quasiment impossibles à obtenir à partir de
n rend la connaissance de d impossible pour un intrus.
2. Démonstration.

Nous allons justifier dans ce paragraphe pourquoi on a choisi dans la clé de chiffrement
un nombre c premier avec (p − 1)(q − 1) et pourquoi d, tel que cd ≡ 1 [(p − 1)(q − 1)],
constitue une clé de déchiffrement.

Soient donc n un nombre très grand tel que n = pq avec p et q nombres premiers égale-
ment très grands et c premier avec (p − 1)(q − 1), d’où la clé de chiffrement (c, n).
Pour crypter chaque chiffre x (d’une carte bancaire par exemple), on calcule
le reste dans la division de xc par n.
On a donc xc ≡ y [n] (*) et y est le chiffre crypté.

c étant premier avec (p − 1)(q − 1), il existe d et v entiers tels que cd − (p − 1)(q − 1)v = 1
d’après le théorème de Bezout.
Donc cd = 1 + (p − 1)(q − 1)v (et on obtient bien cd ≡ 1 [(p − 1)(q − 1)]).
De la congruence (*), on déduit :
(xc )d ≡ y d [n] ⇒ xcd ≡ y d [n] ⇒ x1+(p−1)(q−1)v ≡ y d [n] (**).

Or p ne divise pas x (car x est un chiffre et p est très grand), donc, d’après la conséquence
du petit théorème de Fermat :
q−1
xp−1 ≡ 1 [p] ⇒ (xp−1 ) ≡ 1 [p] ⇒ x(p−1)(q−1) ≡ 1 [p].
Le même raisonnement appliqué au nombre premier q donne x(p−1)(q−1) ≡ 1 [q].
Le nombre x(p−1)(q−1) − 1 est donc multiple de p et q donc il est multiplee de pq (car les
nombres premiers distincts p et q sont premiers entre eux).
On obtient alors x(p−1)(q−1) − 1 ≡ 0 [pq] ⇒ x(p−1)(q−1) ≡ 1 [n] ⇒ x(p−1)(q−1)v ≡ 1 [n].

La congruence (**) s’écrit alors x × x(p−1)(q−1)v ≡ y d [n] ⇒ x ≡ y d [n].


Pour décrypter y, on calcule le reste dans la division de y d par n.
La clé de décryptage est donc (d, n).

3. Exemple.

Prenons n = 21 (donc p = 3 et q = 7) et c = 5 premier avec (p − 1)(q − 1) = 12.


La clé de chiffrement est donc (5, 21).
Ici p et q sont faciles à trouver mais c’est impossible pour n très grand.

a) Chiffrement de x = 4.
Le reste de 45 dans la division par 21 est 16 d’après la calculatrice.
Donc 4 est chiffré 16 .

b) Déchiffrement de 16.
D’après la démonstration précédente, pour avoir la clé de déchiffrement, il suffit de
prendre n’importe quel nombre d tel que cd ≡ 1 [12], donc n’importe quelle valeur de d
telle que le couple (d, y) soit solution de l’équation diophantienne 5d − 12y = 1.
Prenons par exemple d = 17, obtenu avec y = 7.
Pour déchiffrer 16, il suffit donc de trouver le reste de 1617 dans la division par 21.
8
Or, 1617 = (162 ) × 16 ≡ 48 × 16 [21] ≡ 4 [21] avec la calculatrice.
On retrouve bien 4.

En conclusion, la clé de chiffrement (publique rappelons le) est formée de 21 et 5 et la


clé de déchiffrement est formée de 21 et 17.

Vous aimerez peut-être aussi