Académique Documents
Professionnel Documents
Culture Documents
Module Cryptographie
Chapitre 2
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
$9@5Z
#/BR.1
hello Clé de chiffrement 8X@*% Clé de déchiffrement hello
H08
Emetteur Récepteur
3
Chiffrement symétrique
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
7
Réseau de Feistel
• Les chiffrements par bloc sont construits selon la structure du réseau de Feistel.
• 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
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)
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)
15
DES (Data Encryption Standard)
• Fonction d’expansion E
16
DES (Data Encryption Standard)
17
DES (Data Encryption Standard)
• Permutation P
18
Chiffrement symétrique par bloc
19
2DES & 3DES
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
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)
• 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
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
• AES prend 128 bits en entrée et génère 128 bits de texte chiffré en sortie.
28
AES (Advanced Encryption Standard)
• Chiffrement
• AES considère chaque bloc comme une grille (state) de 16 octets (4 octets x 4 octets).
1. SubBytes
2. ShiftRows
3. MixColumns
4. Add Round Key
29
AES (Advanced Encryption Standard)
S-box
SubBytes
30
Chiffrement symétrique par flot (stream cipher)
31
Chiffrement symétrique par flot (stream cipher)
• 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