CRYPTOGRAPHIE TD N°2 (Solution) - Laboratoire Informatique d

publicité
Université d’Avignon, CERI /LIA
Master Informatique Sécurité M1&M2
CRYPTOGRAPHIE
TD N°2 (Solution)
Objectif du TD : Avoir quelques notions sur les méthodes de chiffrement symétrique et
asymétrique : Modes ECB, CFB, DES et RSA
Remarque : Support du cours est téléchargeable sur le lien :
http://lia.univ-avignon.fr/fileadmin/documents/Users/Intranet/chercheurs/ibrahimi/Webibrahimi/Crypto-ibrahimi.pdf
Chiffrement par blocs (block cypher)
Le principe général est de séparer en mots de taille fixe n et appliquer l'algorithme de chiffrement
pour chaque bloc.
1- Le mode ECB (Electronic Code Book)
Déterminer deux fonctions une pour le chiffrement et l’autre pour déchiffrement.
Quel est le problème de ce mode ? Proposez une solution pour ce problème ?
Soient M = 101100010100101 message en clair et une clé K = (1->2, 2->3, 3-> 4, 4->1) par
permutation. Chiffrez le message M.
Solution
1- Les algorithmes de chiffrement du message M = M1M2…Mn et déchiffrement par le mode
ECB s’effectuent de la façon suivante :
2- Le problème de ce mode est qu’il donne la possibilité de reconnaître les caractères du
message en clair dans celui chiffré. Ce qui facilite les attaques statistiques.
3- La taille de la clé K est 3 et donc il faut décomposer le message M en blocs de la même
taille que la clé. Vous pouvez compléter le dernier bloc par 0. M=M1M2M3M4 tels que
M 1= 1011, M2 = 0001, M3 = 0100, M4 = 1010.
Le résultat de chiffrement est C = C1C2C3C4 = 0111001010000101.
2- Le mode CBC (Cipher Block Chaining)
1- Donnez les algorithmes de chiffrement et déchiffrement de ce mode.
2- Soit VI = 1010 vecteur d’initialisation. Soient M = 101100010100101 message en clair et
une clé K = (1->2, 2->3, 3-> 4, 4->1) par permutation. Chiffrez le message M.
Solution
4- Les algorithmes de chiffrement du message M = M1M2…Mn et déchiffrement par le mode
CBC s’effectuent de la façon suivante :
CERI/LIA, K. Ibrahimi
2009-2010
1
Université d’Avignon, CERI /LIA
Master Informatique Sécurité M1&M2
5- La taille de la clé K est 3 et donc il faut décomposer le message M en blocs de la même
taille que la clé. Vous pouvez compléter le dernier bloc par 0. M=M1M2M3M4 tels que
M 1= 1011, M2 = 0001, M3 = 0100, M4 = 1010.
Le résultat de chiffrement est C = C1C2C3C4 = 0010011001001101.
3- CFB (Cypher FeedBack)
1- Donnez les algorithmes de chiffrement et déchiffrement de ce mode.
2- Expliquez le fonctionnement de ce mode.
Parmi ces modes lesquelles sont utilisés par l’algorithme DES et pourquoi ?
Expliquez les faiblisses du DES et son niveau de sécurité ?
Solution
1- L’algorithme de cryptage utilisé est noté E et le vecteur d’initialisation est VI.
1- Pour le chiffrement du message M = M0M1…Mn :
C0 = M0 ^ E(VI)
C0 = Mn ^ E(Mn-1), si (n > 0)
2- Pour le déchiffrement :
M0 = C0 ^ E(VI)
Mn = Cn ^ E(Cn1), si (n > 0)
2-Pour les autres questions voir le cours et les corrections du TD que nous avons fait.
Chiffrement asymétrique
Les méthodes de chiffrement asymétrique consistent ŕ transformer le message en un nombre puis ŕ
effectuer un calcul compliqué à l'aide de la clé publique (pour chiffrer). La clé privée permettra de
faire un calcul secondaire conduisant au message d'origine.
Rappel
RSA : la clé publique est un doublet (e, n). Si l’utilisateur A veut chiffrer son message, il le
transforme en un nombre entier M. Ce nombre doit être plus petit que n. Le message chiffré est tout
simplement C = Me mod n. Pour déchiffrer, l’utilisateur A dispose d'une clé privée d. Le
déchiffrement est fait ainsi : D = Cd mod n.
Exercice 1 : Fabrication des clés par RSA
L’utilisateur A choisit les facteurs premiers p = 11 et q = 23. Trouvez n, e et d.
Solution
1- Puisque les deux nombres 11 et 23 sont premiers entre eux, alors n est calculé par le produit
n = p q = 11*23 =253.
2- Il faut choisir un entier e le plut petit tel que :
1 < e < Φ(253) = (p-1)(q-1) = (11-1)(23-1) = 220
CERI/LIA, K. Ibrahimi
et PGCD(e, (p-1)(q-1)) =1
2009-2010
2
Université d’Avignon, CERI /LIA
d’où, on peut choisir e =3,
Master Informatique Sécurité M1&M2
car PGCD(3, 220) = 1.
3- L’entier d est calculé avec les conditions suivantes :
1 < d < (p-1)(q-1) et
de =1 mod (p-1)(q-1)
On utilisant l’algorithme d’Euclide étendu la valeur de d est 147.
Donc la clé publique de A est Kp = (e, n) et sa clé privée est Kpr = (d, n). Après il détruit les
nombres p, q et Φ(253).
Exercice 2 : Chiffrement par RSA
Utilisant la valeur de n trouvée dans l’exercice 1 et e, déterminez l’espace des messages en clair {0,
1, …, n-1}. Puis chiffrez le message m = 165 noté c.
Solution :
L’espace des messages en clair est constitué de tous les messages m avec 0<= m <n. Le message en
clair m est chiffré par la relation c = m^e mod n.
Pour m = 165, on obtient c = 165^3 mod 253 = 110.
Exercice 2 : Déchiffrement par RSA
Utilisant les valeurs de n, d et e trouvées dans l’exercice 1, déterminez à partir du message c
précédent le message m.
Solution :
De la même manière que l’exercice 2, le message c est déchiffré par la relation 110^147 mod 253 =
165.
CERI/LIA, K. Ibrahimi
2009-2010
3
Téléchargement