43 0 775KB
Université Ibn Tofail, Faculté des Sciences, Kenitra Département Informatique
Correction TD2 Exercice 1: Le mode ECB (Electronic Code Book) a- Déterminer deux fonctions une pour le chiffrement et l’autre pour déchiffrement. Les algorithmes de chiffrement du message M = M1M2…Mn et déchiffrement par le mode ECB s’effectuent de la façon suivante : 𝐶𝑖 = 𝐸𝑘(𝑀𝑖) 𝑀𝑖 = 𝐷𝑘(𝐶𝑖) b- Quel est le problème de ce mode ? Proposez une solution pour ce problème ? - 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. Par exemple Deux blocs clairs identiques sont chiffrés de la même façon. Ceci facilite les attaques statistiques, notamment cela permet de repérer les blocs clairs utilisés les plus fréquemment. - Le mode ECB ne respecte pas l'intégrité des données. Un attaquant peut remplacer certains blocs chiffrés par d'autres blocs chiffrés du message, ou permuter deux blocs, sans que le destinataire s'en aperçoive - Comme solution la sécurité peut être améliorée si des bits de tampons aléatoires sont ajoutés à chaque bloc. D'un autre côté, les blocs de 64 bits ou plus doivent contenir suffisamment de caractéristiques uniques (entropie) pour que l'attaque d'un carnet de codage ait peu de chances de réussir. c- Soient M = 101100010100101 message en clair et une clé K = (1->2, 2->3, 3-> 4, 4->1) par permutation. Chiffrez le message M ? La taille de la clé K est 4 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 𝑀 1 = 1011, 𝑀2 = 0001, 𝑀3 = 0100, 𝑀4 = 1010 Le résultat de chiffrement est : 𝐶 = 𝐶1𝐶2𝐶3𝐶4 = 1101 1000 0010 0101
Exercice 2 : Le mode CBC (Cipher Block Chaining) 1- Donnez les algorithmes de chiffrement et déchiffrement de ce mode. Les algorithmes de chiffrement du message M = M1M2…Mn et déchiffrement par le mode CBC s’effectuent de la façon suivante : 𝐶1 = 𝐸𝑘(𝑀1 ⊕ 𝑉𝐼) 𝐶𝑖 = 𝐸𝑘(𝑀𝑖 ⊕ 𝐶𝑖 − 1) 𝑀1 = 𝐷𝑘(𝐶1) ⊕ 𝑉𝐼 𝑀𝑖 = 𝐷𝑘(𝐶𝑖) ⊕ 𝐶𝑖 − 1 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. Chiffrer le message M
Pr. Khalil IBRAHIMI
2019-2020
Université Ibn Tofail, Faculté des Sciences, Kenitra Département Informatique La taille de la clé K est 4 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: 𝑀 1 = 1011, 𝑀2 = 0001, 𝑀3 = 0100, 𝑀4 = 1010. Le résultat de chiffrement est : 𝐶 = 𝐶1𝐶2𝐶3𝐶4 = 0010 0110 0100 1101 C1= E(1010 ⊕ 1011)
Explication :
1010
⊕ 1011
0001 C1 =E (1010 ⊕ 1011)=E(0001) Avec la permutation de K = (1->2, 2->3, 3-> 4, 4->1) On obtient le résultat suivant : C1=E(0001)=0010 1011 ⊕
0001 ⊕
0100 ⊕
1010
⊕
1010
0010
0110
0100
0001
0011
0010
1110
C1 =>0 0 1 0
C2=>0 1 1 0
C3=> 0 1 0 0
C4=>1 1 0 1
Exercice 3 : CFB (Cypher FeedBack) 1- Donnez les algorithmes de chiffrement et déchiffrement de ce mode. L’algorithme de cryptage utilisé est noté E et le vecteur d’initialisation est VI. a) Pour le chiffrement du message M = M0M1…Mn: 𝐶0 = 𝑀0 ⊕ 𝐸(𝑉𝐼) 𝐶𝑛 = 𝑀𝑛 ⊕ 𝐸(𝑀𝑛 − 1), 𝑠𝑖 (𝑛 > 0) b) Pour le déchiffrement : 𝑀0 = 𝐶0 ⊕ 𝐸(𝑉𝐼) 𝑀𝑛 = 𝐶𝑛 ⊕ 𝐸(𝐶𝑛 − 1), 𝑠𝑖 (𝑛 > 0) 3- Expliquez le fonctionnement de ce mode. Les modes de chiffrement de rétroaction (mode CFB, Cipher Feed Back) et de rétroaction de sortie (mode OFB, Output Feed Back) ont un esprit très différent des modes précédents ECB CBC. Il s'agit cette fois d'utiliser la fonction de chiffrement CKCK comme un générateur pseudo-aléatoire de clés, et en essayant de simuler un chiffrement par masque jetable (on n'est d'ailleurs plus vraiment avec ces deux modes plus vraiment dans le chiffrement par blocs, mais plutôt dans le chiffrement par flots). Commençons par détailler le mode CFB.
Pr. Khalil IBRAHIMI
2019-2020
Université Ibn Tofail, Faculté des Sciences, Kenitra Département Informatique On appliqué l'algorithme suivant : - On partage le texte en bloc de n bits m1m2…mn. - On se donne un bloc d'initialisation de n bits V, et on pose z1=V. Ce bloc z1est la première clé de contexte. - Pour chaque bloc i, on calcule: 1. Le bloc chiffré correspondant, par la formule 𝒄𝒊 = 𝒎𝒊 ⊕ 𝒛𝒊; 2. La clé de contexte suivante, par la formule 𝒛𝒊 + 𝟏 = 𝑪𝑲(𝒄𝒊). Pour le déchiffrement, on utilise exactement le même algorithme, mais cette fois on retrouve le message initial par la formule 𝒎𝒊 = 𝒄𝒊 ⊕ 𝒛𝒊. Avec le mode CFB, on retrouve certaines propriétés du mode CBC, comme par exemple le fait que la modification d'un bloc de texte clair entraîne la modification de tous les blocs chiffrés à partir de celui-ci, faisant de ce mode un mode parfaitement adapté pour préserver l'intégrité des messages. 4- Expliquez le fonctionnement d’OFB Le fonctionnement du mode OFB est tout à fait similaire, mais on applique l'algorithme de chiffrement directement aux clés de contexte : - On partage le texte en bloc de n bits m1m2…mn. - On se donne un bloc d'initialisation de n bits V, et on pose z1=V. Ce bloc z1est la première clé de contexte. - Pour chaque bloc i, on calcule : 1. Le bloc chiffré correspondant, par la formule 𝒄𝒊 = 𝒎𝒊 ⊕ 𝒛𝒊; 2. La clé de contexte suivante, par la formule 𝒛𝒊 + 𝟏 = 𝑪𝑲(𝒛𝒊)
Exercice 4 4.1 - Supposons maintenant que le message chiffré C est transmis sur un canal bruyant. La transmission étant subit au bruit, la valeur d’un bit d’un seul bloc est modifiée. Combien de bloc(s) erronné(s) peuvent alors survenir au moment du déchiffrement dans les cas a, b, c et d? ECB = 1 Block erroné .les blocs chiffré sont indépendant CBC = (n – j + 1) ou j est le premier bloc qui a un but modifié Par exemple si on a 10 bloc et le 4eme bloc qui a avait un bit modifier alors tous les autres block après ce bloc serons modifier parce que il dépend de ce bloc (CipherText de ce bloc) Donc : n =10 et j=4 CBC = 10 – 4 + 1 =7 bloc modifié CFB= (n – j + 1) : similaire a CBC OFB = 1 Bloc erroné. Les blocs chiffrés sont indépendant 4.2. Qu’arrive-t-il si un bit du message en clair M est modifié avant que le chiffrement prenne place? Combien de blocs seront erronés après le déchiffrement pour les cas a, b, c et d? Si un bit du message en clair M est modifié avant le chiffrement. le Message Chiffré C après le déchiffrent donne une résultat M’ ou M’ ≠ M Les nombres de bloc erroné est : ECB = 1 Block CBC = (n – j + 1) ou j est numéro bloc qui a un but modifié dans le message M
Pr. Khalil IBRAHIMI
2019-2020
Université Ibn Tofail, Faculté des Sciences, Kenitra Département Informatique CFB= (n – j + 1) : similaire a CBC OFB = 1 Bloc
Exercice 5 Parmi ces modes lesquelles sont utilisés par l’algorithme DES et pourquoi ? ECB ECB ne doit pas être utilisé si vous cryptez plus d'un bloc de données avec la même clé. Ce mode souffre de plusieurs défauts de sécurité: - Deux blocs clairs identiques sont chiffrés de la même façon. Ceci facilite les attaques statistiques, notamment cela permet de repérer les blocs clairs utilisés les plus fréquemment. - Le mode ECB ne respecte pas l'intégrité des données. Un attaquant peut remplacer certains blocs chiffrés par d'autres blocs chiffrés du message, ou permuter deux blocs, sans que le destinataire s'en aperçoive. Exemple Imaginons que le message chiffré soit le montant d'une transaction électronique, et que l'attaquant arrive à permuter deux chiffres! Pour ces raisons, l'utilisation du mode ECB n'est pas recommandée. CBC CBC a un VI et a donc besoin d'un caractère aléatoire chaque fois qu'un message est crypté, changer une partie du message nécessite de tout rechiffrer après le changement, les erreurs de transmission dans un bloc chiffré détruisent complètement le texte en clair et modifient le décryptage du bloc suivant, décryptage peut être parallélisé / cryptage ne peut pas, le texte en clair est malléable dans une certaine mesure - cela peut être un problème. - L'inconvénient principal de ce mode est sa lenteur. Exemple Imaginons que l'on veuille faire du chiffrement/déchiffrement en temps réel, et en simultané (cas par exemple d'une communication téléphonique) et que les algorithmes de chiffrement et de déchiffrement CKCK et DLDL soient assez longs à mettre en œuvre. Alors le destinataire, pour commencer le déchiffrement de ceci, doit attendre d'avoir terminé celui de ci-1ci-1. Ainsi, le temps écoulé entre le chiffrement et le déchiffrement avec le mode CBC peut être trop long pour ce genre d'applications. CFB - Il est possible de chiffrer un flot de valeurs plus petites que la taille standard du bloc géré par l'algorithme. - Les répétitions de texte en clair sont masquées dans le texte chiffré. - La valeur du vecteur d'initialisation IV n'a pas besoin d'être secrète. - La perte de synchronisation (perte ou ajout d'un bit) est récupérable. OFB - Les répétitions de texte en clair sont masquées dans le texte chiffré. - La valeur du vecteur d'initialisation IV n'a pas besoin d'être secrète. - Ce mode n'amplifie pas les erreurs. Une erreur de transmission d'un bit affecte uniquement ce bit lors du décodage. Donc on utilise CFB/OFB dans le cryptage DES Expliquez les faiblisses du DES et son niveau de sécurité ? Cet algorithme ne devrait maintenant plus être utilisé du fait de son petit nombre de clés (256 ) qui paraissait énorme en 1970 mais qui est maintenant petit comparé à d'autres algorithmes
Pr. Khalil IBRAHIMI
2019-2020
Université Ibn Tofail, Faculté des Sciences, Kenitra Département Informatique et à la puissance de calcul disponible (le calcul distribué permet maintenant de trouver une clé très vite). De plus, de nombreuses attaques cryptographiques ont permis de découvrir des petites faiblesses dans le DES. Il faut noter aussi que le DES possède 4 clés faibles et 12 clé semifaibles. La probabilité (relativement faible) de tomber sur une de ces clés est de24/56
Pr. Khalil IBRAHIMI
2019-2020