Rappel sécurité

publicité
Chapitre 2
10.04.04
Exercice 12
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 > 10 100)
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
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"
M : Message en clair
Exemple :
Ck peut être public. K<>k’ cryptosystème asymétrique (ou clé publique)
A
ka
B
kb
Algorithme de chiffrement C connu, ka et kb clés publiques.
B
Ckb(M) ; Dk’bn(Ckb(M))=M
Envoie Message
A
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;
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)
e=21/3=7;
Chapitre 2
10.04.04
Exercice 12
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)=P exmodn
C1=P1emodn=17mod33=1mod33
C2=P2emodn=67mod33=30mod33
C3=P3emodn=157mod33=27mod33
Coder un nombre mod33 combien de bits ? 0..32
Codage :
1
30
000001
011110
=>
6 Bits
27
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
11111
00101
30
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 ?
Téléchargement