Yves Coudert
1
ENONCE : La méthode de codage RSA
(Niveau : Terminale S enseignement de spécialité)
La méthode de cryptographie RSA a été inventée en 1977 par Ron Rivest, Adi Shamir et Len Adleman ,au
Massachusetts Institute of Technology, à la suite de la découverte de la cryptographie à clé publique
(chiffrement asymétrique) par Diffie et Hellman. Le RSA est encore le système cryptographique à clé
publique le plus utilisé de nos jours.
Le RSA est basé sur la théorie des nombres premiers, et sa robustesse tient du fait qu’il n’existe aucun
algorithme de décomposition d’un nombre en facteurs premiers. Alors qu’il est facile de multiplier deux
nombres premiers, il est très difficile de retrouver ces deux entiers si l’on en connaît le produit.
Les clés publiques de codage sont deux entiers n et e, où n est le produit de deux nombres premiers p et q
très grands et e est un entier premier avec (p-1)(q-1).
La clé privée de décodage est d qui vérifie d x e ≡ 1 ( (p-1)(q-1) ).
Nous allons illustrer la méthode sur un exemple simplifié pour avoir des calculs abordables avec une
calculatrice en choisissant n = 26 = 2 x 13 et e =5. On va affecter à chaque lettre de l’alphabet un nombre
entier naturel compris entre 0 et 25. Par exemple, on peut utiliser le tableau suivant :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
A- Principe de codage RSA
On fait associe a chaque entier x représentant un symbole le reste y dans la division euclidienne de x
5
par 26.
1)
Coder le mot codage.
2)
a) Montrer que 5 et (2-1)(13-1)=12 sont premiers entre eux et écrire l’identité de Bézout associée.
b) Soit x un entier. Montrer que x
25
≡ x (2) et x x
25
≡ x (13) et conclure : x
25
≡ x (26)
c) Vérifier que la clé de décodage est d= 5 soit : si y ≡ x
5
(26) alors y
d
≡ x (26)
3)
Décoder le mot BON
B – Programmation du codage et décodage RSA
1) Ecrire un programme, à l’aide d’une calculatrice, qui permet de coder ou coder une « phrase »
constituée de nombres compris entre 0 et 26 avec soit les clés publiques n = 26 et e =5 ou la clé privée
d = 5. On pourra utiliser une liste pour entrer la phrase à coder ou décoder.
2) Appliquer le programme pour décoder : 5 10 7 8 6 8 15 0 15 8 14 13 18