Vous êtes sur la page 1sur 30

30/10/2019 1

3. Cryptographie moderne
Cryptographie symétrique

La cryptographie symétrique utilise deux types de chiffrement manipulant des mots


binaires :

• Le chiffrement par bloc


• Le chiffrement par flot

30/10/2019 2
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc
Le chiffrement par bloc consiste en premier lieu à découper le message à chiffrer en bloc
de taille fixe (exemple : 64 bits). Puis appliquer l’algorithme de chiffrement sur chaque
bloc.
On découpe le message M de n bits en s blocs de = n/s bits (on ajuste initialement la
taille du message en ajoutant des caractères sans signification afin que sa taille soit un
multiple de ). Un algorithme de chiffrement par blocs opère sur des blocs de bits,
pour produire en général un bloc de bits afin d’assurer la bijectivité du code.

30/10/2019 3
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc

L’algorithme de chiffrement est en général une succession des opérations


suivantes:

• Permutation
• Substitution
• Opération XOR (Ou Exclusif)

Dans ce qui suit, nous allons examiner un exemple pour chaque opération

30/10/2019 4
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc

30/10/2019 5
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc

30/10/2019 6
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc

30/10/2019 7
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Modes d’opérations

On distingue plusieurs modes d’opérations utilisés dans le chiffrement par bloc, les
plus courants sont les suivants :

• Le mode Electronic Code Book (ECB)

Dans ce mode, le message M est découpé en blocs mi


de taille fixe.
Chaque bloc est alors chiffré séparément par une
fonction Ek, paramétrée par une clé k . Ainsi un bloc
de message donné mi sera toujours codé de la même
manière. Ce mode de chiffrement est le plus simple
mais il est très vulnérable aux attaques.

Le déchiffrement nécessite l’inverse


de la fonction de codage:
30/10/2019 Déchiffrement : 8
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Modes d’opérations
• Le mode Cipher Block Chaining (CBC)

Le mode CBC a été introduit pour qu’un


bloc ne soit pas codé de la même
manière s’il est rencontré dans deux
messages différents. Il faut ajouter une
valeur initiale C0 aléatoire (ou IV pour
« Initial Value »). Chaque bloc est
d’abord modifié par XOR avec le bloc
chiffré précédent avant d’être lui même
chiffré. CBC est le mode de chiffrement
le plus utilisé. Le déchiffrement
nécessite l’inverse de la fonction de
codage:

Déchiffrement :
30/10/2019 9
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Modes d’opérations
• Le mode Cipher FeedBack (CFB)
L’intérêt de ce mode est que le déchiffrement ne nécessite pas
l’implémentation de la fonction : . Ce mode est donc moins sûr
que le CBC.

Déchiffrement :

30/10/2019 10
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Modes d’opérations
• Le mode Output FeedBack (OFB)
Une variante du mode précédent permet d’avoir un chiffrement et un
déchiffrement totalement symétrique, c’est le mode OFB .

Déchiffrement :
30/10/2019 11
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Modes d’opérations
• Le mode Counter-mode encryption (CTR)
Ce mode est également totalement symétrique, mais en outre facilement
parallélisable (chiffrement de plusieurs blocs en parallèle). Il fait intervenir le
chiffrement d’un compteur de valeur initiale T. L’intérêt d’un tel mode est que
les différents calculs sont indépendants, comme pour le mode ECB, mais
qu’un même bloc n’est jamais codé de la même façon.

Déchiffrement :

30/10/2019 12
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Chiffrement par blocs itérés

Les fonctions de chiffrement sont en général des itérations


d'une fonction de ronde g .

Les paramètres d'un chiffrement par blocs itérés sont la taille


des blocs n, le nombre de rondes (round) r et une clé K.

Le chiffré est obtenu par r applications itérées de la fonction


de ronde g au même clair dépendant d'une clé de ronde. Les
clés de ronde sont dérivées de la clé K.

30/10/2019 13
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Chiffrement par blocs itérés

2 Variantes :
➢ SPN
➢ Feistel
30/10/2019 14
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Réseau SPN
(Permutation Substitution Network)

Les réseaux SPN sont constitués


d'une succession de :

• substitution,
• permutation,
• XOR bit à bit avec la clé.

30/10/2019 15
30/10/2019 16
30/10/2019 17
30/10/2019 18
30/10/2019 19
30/10/2019 20
30/10/2019 21
30/10/2019 22
30/10/2019 23
30/10/2019 24
30/10/2019 25
30/10/2019 26
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Réseau Feistel

Une des techniques utilisé dans les


algorithmes de chiffrement par bloc est le
réseau de Feistel.
1 round
Il s’agit d’une succession d’étapes semblables
(“rondes”). On effectue une opération sur la
moitié des données, dont le résultat est
combiné à l’autre moitié, et on inverse les
deux parties.

Un réseau de Feistel est constitué de plusieurs


tours successifs. au final on obtient une
bijection partant des N bits d’entrée vers N
bits de sortie.

30/10/2019 27
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Réseau Feistel

30/10/2019 28
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Réseau Feistel

Exemple d’algorithme fonctionnant avec le réseau Feistel:

• DES (Data Encryption Standard): bloc=64bits, clé=56bits

• Triple DES

Exposé (5 pages max)

Vous aurez des questions à l’examen


30/10/2019 29
3. Cryptographie moderne
Cryptographie symétrique
❑ Le chiffrement par bloc Réseau Feistel

Exercice d’application

30/10/2019 30

Vous aimerez peut-être aussi