Vous êtes sur la page 1sur 3

1

Université Sidi Mohamed Ben Abdellah Faculté Plydisciplinaire de Taza


Département de Mathématique, de Physique et d'Informatique
TD Cryptographie et Sécurité Informatique - SMI/S6 - 2017/18
Série 2
Exercice 1.
On considère un diagramme de Feistel à deux rondes sur des chaînes de 8 bits avec deux
fonctions f1 et f2 .
1. On pose f1 (a) := a ⊕ 1011etf2 (a) := a ⊕ 0101,pour toute chaîne a de 4 bits.
(a) Calculer l'image de la chaîne 11010011 par ce diagramme.
(b) Déterminer une chaîne de 8 bits dont l'image par le diagramme est elle-même.
2. La propriété précédente, à savoir il existe une chaîne dont l'image par le diagramme
de Feistel est elle-même, est-elle vraie pour toutes les fonctions f1 et f2 ? Justier votre
réponse par une démonstration ou un contre-exemple.

Exercice 2. (Chirement par blocs - block cypher)


Le principe général est de scinder le message à chirer M en mots (blocs) de taille
xe n(M = M1 M2 ...Mn ) et d'appliquer l'algorithme de chirement pour chaque bloc.
Plusieurs modes sont mis en place pour pratiquer ce type de chies :

Le mode ECB (Electronic Code Book) :


Le mode ECB s'eectuent de la façon suivante : Ci = EK (Mi ) et Mi = DK (Ci ), avec EK
et DK sont respectivement les fonctions de chirement et de déchirement.
1) Soient M = 101100010100101 le message en clair et EK = (1 −→ 2, 2 −→ 3, 3 −→
4, 4 −→ 1) par permutation. Chirez le message M.
2) Quel est le problème de ce mode? Proposez une solution pour ce problème?

Le mode CBC (Cipher Block Chaining-mode chaînage de blocs) :


L'algorithme de chirement de ce mode est données par :
C[1] = EK (M [1] ⊕ V I)
C[n] = EK (M [n] ⊕ C[n − 1]), pour n > 1.
1. Soit V I = 1010 vecteur d'initialisation. Soient M = 101100010100101 message en clair
et la fonction de chirement est la permutation : EK = (1 −→ 2, 2 −→ 3, 3 −→ 4, 4 −→
1). Chirez le message M.
2. Donner l'algorithme de déchirement du mode CBC.
3. Déchirer le résultat de la question 1.

Le mode CFB (Cypher FeedBack ou chirement à rétroaction) :


Avec les modes EBC ou CBC, le chirement ne peut pas commencer avant qu'un bloc
2

complet de données n'ait été reçu, ce qui peut poser un problème dans certaines applica-
tions réseaux, où les données à traiter se présentent sous forme de paquets de la taille de
l'octet.
Le mode CFB , permet de chirer les données par unités plus petites que la taille de bloc.
On appelle mode de chirement à rétroaction à k bits le mode CFB qui chire les données
par unités de k bits. L'algorithme de chirement de ce mode est données par :
Pour chirer un texte en mode CFB à k bits, on manipule un registre de décalage de la
taille d'un bloc de texte en clair qu'on rempli par un vecteur d'initialisation. On eectue
les opérations suivantes (ici M[.] et C[.] sont des blocs de k bits) :
I[1] = V I
I[n] = (I[n − 1]  k)|C[n − 1], pour n > 1
C[n] = M [n] ⊕ M SBk (e(I[n])), pour n ≥ 1.
X  k : les bits de la variable X sont décalés vers la gauche de k positions, | : Concaté-
nation et M SBk (X) : most signicant k bits( k bits de poids fort i.e. les k bits les plus à
gauche).
1. Chirez avec le mode CFB le message M utilisé ci-dessus avec le même vecteur
d'initialisation.
2. Donner l'algorithme de déchirement du mode CFB.
3. Déchirer le résultat de la question 1.

Le mode OFB (Output Feedback ou de rétroaction de sortie) :


Le mode (OFB), ressemble beaucoup au mode CFB, sauf que ce sont les k premiers bits
du résultat du chirement du registre de décalage qui sont ajoutés à droite du registre de
décalage et non les k premiers bits du texte chiré.
On eectue les opérations suivantes (ici M[.] et C[.] sont des blocs de k bits) :
I[1] = V I
I[n] = (I[n − 1]  k)|e(I[n − 1]), pour n > 1
C[n] = M [n] ⊕ M SBk (e(I[n])), pour n ≥ 1.
X  k : les bits de la variable X sont décalés vers la gauche de k positions, | : Concaté-
nation et M SBk (X) : most signicant k bits( k bits de poids fort i.e. les k bits les plus à
gauche).
1. Chirez avec le mode CFB le message M utilisé ci-dessus avec le même vecteur
d'initialisation.
2. Donner l'algorithme de déchirement du mode CFB.
3. Déchirer le résultat de la question 1.

Exercice 3.
On note IF2 le corps à 2 éléments. On rappelle que dans AES on travaille sur des octets
qui sont interprétés comme des éléments du corps à 256 éléments noté, IF256 , qui est
représenté de la manière suivante:
1. IF256 ∼
= IF2 [X]/(X 8 + X 4 + X 3 + X + 1)IF2 [X], et que tout élément de IF256 est identié
3

avec un polynôme de IF2 [X] de degré ≤ 7.


2. On identie l'octet a7 a6 ... a0 avec le polynôme a0 + a1 X+ ... +a7 X 7 .
Calculer dans AES
1. La somme des octets 10110101 et 01100110
2. Le produit des octets 01100010 et 01101100
3. L'inverse multiplicatif de l'octet 00010011
Exercice 4.
Prenons la clef de 128 bits K = 00000000000000000000000000000000 en hexadécimal pour
un cryptosystème AES.
1) Vérier que les clefs dérivées pour chacun des dix étages sont:
RoundKey[00] = 00000000000000000000000000000000
RoundKey[01] = 62636363626363636263636362636363
RoundKey[02] = 9B9898C9F9FBFBAA9B9898C9F9FBFBAA
RoundKey[03] = 90973450696CCFFAF2F457330B0FAC99
RoundKey[04] = EE06DA7B87A1581759ED42B27E91EE2B
RoundKey[05] = 7F2E2B88F8443E098DDA7CBBF34B9290
RoundKey[06] = EC614B851425758C99FF09376AB49BA7
RoundKey[07] = 217517873550620BACAF6B3CC61BF09B
RoundKey[08] = 0EF903333BA9613897060A04511DFA9F
RoundKey[09] = B1D4D8E28A7DB9DA1D7BB3DE4C664941
RoundKey[10] = B4EF5BCB3E92E21123E951CF6F8F188E
2) Expliquer sur cet exemple comment l'opération ExpandKey montre bien la réalisation
des concepts de diusion et de confusion de Shannon.
3) Construire la diversication complète de la clé (en hexadécimal)
2B7E151628AED2A6ABF7158809CF4F3C
Rappel : les principes de confusion et de diusion de C. Shannon :
(1) La confusion gomme les relations entre le texte clair et le texte chiré pour éviter les attaques par
analyse statistique. Autrement dit un changement d'un seul bit dans le texte clair doit aecter un grand
nombre de bits (idéalement tous) du texte chiré.
(2) La diusion disperse la redondance du texte clair dans le texte chiré, par exemple deux lettres doublées
ne doivent pas rester côte à côte après cryptage.
Exercice 5.
Given the plaintext [0001 0203 0405 0607 0809 0A0B 0C0D 0E0F] and the key [0101 0101
0101 0101 0101 0101 0101 0101]
a. Show the original contents of state, displayed as a 4x4 matrix.
b. Show the value of state after initial AddRoundKey.
c. Show the value of State after SubBytes.
d. Show the value of State after ShiftRows.
e. Show the value of State after MixColumns.
Exercice 6.
Let M be the plain text message M = 0123456789ABCDEF, where M is in hexadecimal
(base 16) format. Let K be the hexadecimal key K = 133457799BBCDFF1. Apply the
DES encryption algorithm to encode de message M.

Vous aimerez peut-être aussi