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)
Chapitre 2 Exercice 12
10.04.04 RSA
2) - Soit le message de 3 chiffres 1, 6, 15 soit par blocs de 5 bits la configuration de bits suivante :
00001 00110 01111
Coder ce message en utilisant les paramètres de chiffrement RSA précédents.
2k<n => P1 = 00001 P2=00110 P3=01111
Le message binaire est à découper en blocs de k bits tels que 2k<n et k doit être le plus grand possible.
2k<33; 25=32; => k=5; 25<33; n=33;
Le codage d’un bloc Cx=E(Px)=Pexmodn
C1=P1emodn=17mod33=1mod33
C2=P2emodn=67mod33=30mod33
C3=P3emodn=157mod33=27mod33
Coder un nombre mod33 combien de bits ? 0..32 => 6 Bits
Codage : 1 30 27
000001 011110 011011
Vérification du chiffrage :
Dx=D(Cx)=Cdx modn
D1=13 mod33 =1 mod33
D2=303mod33=27000mod33=6mod33
D3=273mod33=19683mod33=15mod33
3) - On reçoit le message suivant par blocs de 6bits (4 , 14 , 24):
000100 001110 011000
Donner la valeur initiale du message (texte en clair), en prenant les mêmes valeurs pour d, e et
k qu'à la question 2.
Déchiffrage :
Dx=D(Px)=Pdx modn
D1=43 mod33 =64mod33=31 mod33
D2=143mod33=2744mod33=5mod33
D3=243mod33=13824mod33=30mod33
Message en clair sur 32Bits :
31 5 30
11111 00101 11110
4) - Pourquoi ne peut-on prendre p et q petits ? Cela serait trop simple, nous pourrions factoriser n.
- Que se passe-t-il lorsque p et q sont de l'ordre de l0l0 ?
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !