Chapitre 2 Exercice 12
10.04.04 RSA
Exercice 12 : Etude du système de chiffrement à clé publique RSA
On rappelle l'algorithme du MIT ( Rivest, Shamir, Adleman, 1978).
1- Choisir deux nombres p et q premiers et grands (p, q > 10100)
2 - Calculer n: = p * q z: = (p - 1) * (q - 1)
3 - Soit d un nombre premier avec z (z et d sont premiers entre eux). Z ne doit pas être divisible par D.
4 - Déterminer un entier e tel que e * d = 1 mod z .
Soit A un message binaire. Découper A en blocs de k bits tel que k soit le plus grand entier tel que 2k < n.
Soit P un bloc de k bits, le codage de P est donné par : C = E(P) = Pe (mod n)
Le déchiffage d'un message crypté C est donné par: P= D(C) = Cd (mod n)
Rappel : RSA (Algorithme à clé publique)
- Chiffrement public
o La clé est un couple d’entier K=(e,n)
o Chiffrement Ck(M)=Memodn
- Déchiffrement
o K’=(d,n) d’entiers
o Dk’(M)=Mdmodn
Les 3 règles de Diffie et Aldeman
1- Dk’(Ck(M))=M
Dk’ : Algorithme de déchiffrage Ck : fonction de chiffrement M : Message en clair
k : clé publique k’ : clé privée
2- Il est excessivement difficile de déduire Dk’ de Ck.
3- C ne peut pas être cassé par une attaque "Texte en Clair"
Exemple :
Ck peut être public. K<>k’ cryptosystème asymétrique (ou clé publique)
A B Algorithme de chiffrement C connu, ka et kb clés publiques.
ka kb
Envoie Message
A B Ckb(M) ; Dk’bn(Ckb(M))=M
M
Ckb(M) : Crypté par A, reçu par B
Dk’bn(Ckb(M))=M : Décrypté par B avec la clé privée.
1)- On donne les valeurs numériques suivantes : p = 3, q = 11 (trop petites en pratique, mais traitable en
exercice).
Calculer les valeurs des nombres d et e vérifiant les conditions de l'algorithme du MlT. Pour
avoir un couple unique on prend la plus petite valeur possible de d et pour cette valeur la plus
petite valeur possible de e.
Quelle est la clé publique et quelle est la clé secrète?
On utilise l’algorithme du MIT pour résoudre le problème.
Point 1 de l’algorithme : p=3 q=11
Point 2 de l’algorithme : n=3*11=33 z=(3-1)*(11-1)=2*10=20
Point 3 de l’algorithme : On recherche d le nombre premier qui ne divise pas z.
1 2 3 5 7 11 Donc, nous prenons d=3
Point 4 de l’algorithme : e*d=1mod20; 3*e=1 mod20; 1 mod20=21; => 3*e=21; e=21/3=7;
On constate que 7 et 20 n’ont pas de facteur commun.
Clé publique (e,n) = (7,33) Cl é privée (d,n)=(3,33)