Vous êtes sur la page 1sur 35

Licence d’Excellence

Data Science et Sécurité des Systèmes d’Information


Semestre 5

Module Cryptographie
Chapitre 2

Chiffrement symétrique

Année universitaire 2023-2024


1
Chiffrement symétrique

• Le chiffrement symétrique (ou chiffrement à clé secrète) est la méthode de chiffrement la plus
élémentaire et la plus ancienne.
• Elle utilise une seule clé pour le processus à la fois de chiffrement et de déchiffrement des
données.
• Les entités communiquant via le chiffrement symétrique doivent échanger la clé secrète de
manière sécurisée.
• Le problème principal du chiffrement symétrique réside dans la transmission de la clé secrète via
un canal sûr.

2
Chiffrement symétrique

Clé de chiffrement = Clé de déchiffrement

$9@5Z
#/BR.1
hello Clé de chiffrement 8X@*% Clé de déchiffrement hello
H08

Texte en clair Texte chiffré Texte en clair original


Chiffrement Déchiffrement

Emetteur Récepteur

3
Chiffrement symétrique

• Les 2 types de base du chiffrement symétrique:

Chiffrement par flot


Chiffrement par bloc (ou chiffrement de flux
/ chiffrement en continu)

4
Chiffrement symétrique par bloc (bloc cipher)

5
Chiffrement symétrique par bloc

• Le chiffrement par bloc est un type d'algorithme de chiffrement qui traite des blocs de données de
taille fixe (64 bits, 128 bits…) pour produire le texte chiffré.
• Le chiffrement par bloc comporte un nombre spécifique de tours et de clés pour générer le texte
chiffré.

6
Chiffrement symétrique par bloc

• Les algorithmes de chiffrement par blocs les plus connus:


• DES (Data Encryption Standard)
• 3DES (Triple DES)
• AES (Advanced Encryption Standard)
• Blowfish
• Twofish
• IDEA
• …

7
Réseau de Feistel

• Les chiffrements par bloc sont construits selon la structure du réseau de Feistel.

• L'image du bloc (G,D) est le bloc (L,R) avec:


• L=D
• R = G ⊕ f(D)

• La partie droite n'a pas été transformée (juste envoyée à gauche).

• Il faut répéter le schéma de Feistel un certain nombre de fois (on parle de tours).

8
Chiffrement symétrique par bloc

DES (Data Encryption Standard)

9
DES (Data Encryption Standard)

• Le DES a été publié en 1977, et fut ainsi le premier algorithme cryptographique à petite clé secrète
(56 bits) à avoir été rendu public.
• Le DES consiste en un réseau de Feistel de 16 tours : le message à chiffrer est découpé en blocs de
64 bits, chacun d'eux étant séparé en deux sous-blocs de 32 bits.
• Le DES est dérivé d'un code appelé "Lucifer" développé par IBM.
• Sa clé de 56 bits est maintenant sensible aux attaques utilisant la force de calcul brute.
• La clé du DES est une chaîne de 64 bits, mais en fait seuls 56 bits servent réellement à définir la clé.
• Les bits 8,16,24,32,40,48,56,64 (8 bits au total) sont des bits de parité (=bits de détection
d'erreur).

10
DES (Data Encryption Standard)

Li=Ri-1 ;
Ri= Li-1 ⊕ f(Ri-1, Ki)

11
DES (Data Encryption Standard)

Diversification de clé dans DES

64 bits

56 bits

48 bits

LSi (Left Shift) est une rotation ciculaire vers la gauche d’une ou deux
positions, suivant la valeur de i.
o On décale d’une (1) position si i = 1, 2, 9 ou 16.
o On décale de 2 positions sinon.

48 bits
12
DES (Data Encryption Standard)

• Diversification de la clé

13
DES (Data Encryption Standard)

14
DES (Data Encryption Standard)

• Permutation initiale (IP) • Permutation inverse (IP-1)

15
DES (Data Encryption Standard)

• Fonction d’expansion E

16
DES (Data Encryption Standard)

• Les huit boites-S

17
DES (Data Encryption Standard)

• Permutation P

18
Chiffrement symétrique par bloc

2DES & 3DES

19
2DES & 3DES

Chronologie des principales attaques contre le DES

1977 cassé pour la 1ère fois

1998 cassé dans 56 heures

1999 cassé dans 22 heures et 15 min

2021 peut être cassé dans 5 min

20
2DES

Chiffrement K1 K2

M
P E E C
𝐶 = 𝐸(𝐾2 , 𝐸(𝐾1 , 𝑃))
𝑃 = 𝐷(𝐾1 , 𝐷(𝐾2 , 𝐶))

Déchiffrement K2 K1
Taille de bloc: 64 bits
M Taille de clé: 112 bits
C D D P

Double DES est vulnérable à l'attaque par le milieu (meet in the middle attack)
21
3DES

• On utilise 3 fois l'algorithme du DES avec des variantes comprenant soit:

o une succession de 3 chiffrements DES (E-E-E).

o une suite "chiffrement - déchiffrement - chiffrement " (E-D-E) utilisant deux ou trois clés
distinctes de 56 bits.

22
Modes opérationnels

23
ECB (Electronic Code Book)

• ECB est le mode de fonctionnement le plus simple des chiffrements par bloc, car il chiffre
directement chaque bloc de texte en clair d'entrée et produit en sortie des blocs de texte chiffré.

B1 B2 … Bn

K K K
Chiffrement Chiffrement Chiffrement Chiffrement

C1 C2 … Cn

24
CBC (Cipher Block Chaining)

• CBC est le mode amélioré de l’ECB

• Il répond aux inconvénients de ECB:


• ECB ne protège pas contre la présence de blocs redondants,
• un bloc en clair est codé toujours avec la même clé, produira toujours le même bloc crypté.

• Un vecteur d'initialisation (IV) est utilisé au début du processus de chiffrement.

• Inconvénients de CBC : Le chiffrement parallèle n'est pas possible car chaque chiffrement nécessite un
chiffrement précédent.

25
CBC (Cipher Block Chaining)

Chiffrement

B1 B2 … Bn

IV ⨁ ⨁ ⨁
K K K
Chiffrement Chiffrement Chiffrement

C1 C2 … Cn

26
Chiffrement symétrique par bloc

AES (Advanced Encryption Standard)

27
AES (Advanced Encryption Standard)

• AES est un chiffrement symétrique par bloc développé par l'Institut National des Normes et de la
Technologie (NIST) en 2001.

• AES est largement utilisé aujourd'hui car il est bien plus fort que DES et triple DES.

• Points à retenir

o AES est un chiffrement symétrique par bloc.


o La taille de la clé peut être de 128/192/256 bits.
o Il chiffre les données par blocs de 128 bits chacun.

• AES prend 128 bits en entrée et génère 128 bits de texte chiffré en sortie.

• Le nombre de tours dépend de la longueur de la clé comme suit :


o Clé de 128 bits -> 10 tours
o Clé de 192 bits -> 12 tours
o Clé de 256 bits -> 14 tours

28
AES (Advanced Encryption Standard)

• Chiffrement

• AES considère chaque bloc comme une grille (state) de 16 octets (4 octets x 4 octets).

• Chaque tour comprend 4 étapes :

1. SubBytes
2. ShiftRows
3. MixColumns
4. Add Round Key

• Le dernier tour n'a pas l'étape MixColumns.

29
AES (Advanced Encryption Standard)

S-box
SubBytes

30
Chiffrement symétrique par flot (stream cipher)

31
Chiffrement symétrique par flot (stream cipher)

• Les chiffrements par flux chiffrent les bits individuellement.

• Cela est réalisé en ajoutant un bit d’un key stream à un bit de texte en clair.

• Les chiffrements par flux sont généralement plus rapides que les chiffrements par blocs.

32
Chiffrement symétrique par flot (stream cipher)

• 𝑥𝑖 , 𝑦𝑖 , 𝑠𝑖 ∈ 0,1
Key stream
• Chiffrement : 𝑦𝑖 = 𝐸𝑠𝑖 𝑥𝑖 = 𝑥𝑖 ⨁ 𝑠𝑖
generator
• Déchiffrement : 𝑥𝑖 = 𝐷𝑠𝑖 𝑦𝑖 = 𝑦𝑖 ⨁ 𝑠𝑖
𝑠𝑖
𝑥𝑖 𝑦𝑖

33
Chiffrement symétrique par flot (stream cipher)

• Les registres à décalage à rétroaction linéaire (LFSR) sont utilisés comme générateurs de
nombres pseudo-aléatoires

• Les LFSR sont facilement implémentés en matériel et beaucoup, mais certainement pas tous, des
chiffrements par flot utilisent des LFSR.

34
Chiffrement symétrique par flot (stream cipher)

• Un LFSR se compose:
o d'éléments de stockage à horloge (bascules/flip-flops) : stockent les bits de données,
o et d'un chemin de rétroaction (feedback path): responsable de calculer le prochain bit de sortie
en fonction des bits actuels du registre.

• Le nombre d'éléments de stockage nous donne le degré du LFSR. En d'autres termes, un LFSR avec m
bascules est dit être de degré m.

• Pour un LFSR de degré m, la longueur maximale de la séquence qu'il peut générer est égale à 2m-1.

35

Vous aimerez peut-être aussi