Vous êtes sur la page 1sur 5

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é semi-
faibles. La probabilité (relativement faible) de tomber sur une de ces clés est de24/56

Pr. Khalil IBRAHIMI 2019-2020