Académique Documents
Professionnel Documents
Culture Documents
Chiffrement symtrique
Dfinition : Un algorithme de chiffrement symtrique
transforme un message en clair P avec une cl
secrte K. Le rsultat est un message chiffr C
K
P
Chiffrement
Chiffrement symtrique
La fonction de chiffrement doit tre inversible
K
P
K
C
Chiffrement
P
Dchiffrement
Algorithmes : DES,
AES, IDEA, RC6,
BLOWFISH,
Algorithmes :RC4,
Bluetooth E0/1, GSM
A5/1,
Historique
Algorithmes historiques (avant 1970)
1970-2000 : DES (Data Encryption
Standard) et autres algorithmes (FEAL,
IDEA, RC5, )
2000-2004 : AES (Advanced Encryption
Standard) et algorithmes rcents (RC6,
CAMELLIA, )
6
Scurit
Deux principaux paramtres de scurit
La taille du bloc (e.g. n = 64 ou 128 bits). Les
modes opratoires permettent gnralement
des attaques quand plus de 2n/2 blocs sont
chiffrs avec une mme cl
La taille de cl (e.g. k = 128 bits). Pour un bon
algorithme, la meilleure attaque doit coter 2k
oprations (recherche exhaustive)
Construction
Algorithmes itratifs : une fonction de tour
est itre t fois
Gnration de cls de tour (ou sous-cls)
partir de la cl secrte K
Utilisation doprations simples et efficaces
(+, XOR, *, tableaux)
Construction
bloc de clair P
Tour numro 1
Cl secrte K
K1
Tour numro 2
K2
Gnration
des
sous-cls
Tour numro t
bloc de chiffr C
Kt
Schmas de Feistel
X
Ki
F
X
Substitution-Permutation
Entre du tour
Ki
Couche de substitution
Couche de permutation
Sortie du tour
11
Le DES
Algorithme dvelopp par IBM dans les
annes 1970 (Lucifer)
Adopt comme standard US par le NBS
(FIPS 46-2), en 1977
Taille de bloc = 64 bits
Taille de cl = 56 bits
Schma de Feistel 16 tours
12
Tour numro 16
13
La permutation initiale
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9
Le bit numro 21 de
la sortie
provient du bit
numro 30 de
lentre
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
14
Fonction F du DES
15
Fonction F du DES
Entre du tour (32 bits)
Fonction F du DES
Entre du tour (32 bits)
Fonction F du DES
Entre du tour (32 bits)
Expansion
(fonction de
32 vers 48 bits)
Fonction F du DES
Entre du tour (32 bits)
Fonction F du DES
Entre du tour (32 bits)
Botes S
(fonctions de
6 vers 4 bits)
Fonction F du DES
Entre du tour (32 bits)
Fonction F du DES
Entre du tour (32 bits)
Permutation
sur 32 bits
Fonction F du DES
Entre du tour (32 bits)
Intuition
La fonction de tour na pas besoin dtre
inversible
Expansion de ltat interne de 32 48 bits
Ajout de la sous-cl
Rduction de ltat interne de 48 32 bits
grce aux botes S (non-linarit)
Permutation (diffusion)
17
9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
Le bit numro 15 de
la sortie
provient du bit
numro 10 de
lentre
Certains bits de lentre
sont dupliqus (ex: bit 32)
28 29 30 31 32 1
18
Ajout de la sous-cl
Il sagit dun simple XOR, bit bit, entre
ltat aprs expansion (48 bits)
la sous-cl du tour correspondant
(48 bits)
19
Les botes S
On applique, en parallle, 8 botes (fonction
fixe) de 6 bits vers 4 bits
Ceci rduit donc ltat interne de 8 x 6 = 48
bits 8 x 4 = 32 bits
Chaque bote S est code comme un
tableau avec 26 = 64 entres
20
20 21
29 12 28 17
1
15 23 26
18 31 10
32 27
24 14
3
19 13 30
22 11
25
Le bit numro 11 de
la sortie
provient du bit
numro 23 de
lentre
21
Commentaires
Ces choix peuvent paratre arbitraires mais :
Toutes les briques sont trs simples coder
et efficaces en hardware
Les botes S apportent la non-linarit
Expansion et permutation garantissent une
diffusion rapide
22
23
Problmes du DES
Taille de cl (recherche exhaustive en 256
est raliste) utilisation du Triple-DES
Taille du bloc (attaques avec 232 messages)
Cryptanalyse linaire et diffrentielle
Malgr tout, le DES est un algorithme trs bien
conu : il a plutt bien rsist 30 ans de
cryptanalyse
25
Double-DES
Message en clair
K1
DES
K2
DES
Message chiffr
26
27
28
DES
DES
30
DES
DES
30
DES
DES
256 calculs
Ni = DES(i,M)
30
DES
Cl K2
DES
256 calculs
Ni = DES(i,M)
30
DES
256 calculs
Ni = DES(i,M)
Cl K2
DES
Pour chaque
Pj = DES-1(j,C),
on cherche Ni = Pj
30
Complexit
Attaque en 256 en temps et 256 couples
(chiffr, cl) en mmoire
Par consquent :
la scurit du double DES natteint pas
2112 mais seulement 256, comme le DES
33
Triple-DES
Message en clair
K1
DES
K2
DES
K3
DES
Message chiffr
34
Problme du Triple-DES
Certaines variantes ne sont pas sres
(mme type dattaque que contre le DoubleDES)
Version recommande par le NIST (FIPS
46-3)
Triple-DES avec 1,2 ou 3 cls diffrentes
EDE (Encryption-Decryption-Encryption)
35
Problmes du Triple-DES
Le Triple-DES permet dviter les problmes lis
la taille de cl trop courte du DES
Mais :
Le problme de la taille du bloc subsiste
Le Triple-DES nest pas trs rapide
Migration vers un algorithme plus rcent. Quelles
sont les autres solutions ?
36
Constructions classiques
Schma de Feistel (cas du DES)
Variations du schma de Feistel :
Schma de Feistel gnralis (ex : RC6)
Schma de Lai-Massey (ex : IDEA)
Rseau SP (Substitution-Permutation)
Exemple de lAES
37
Feistel
F
F
F
38
Feistel gnraliss
F
1 tour
39
Lai-Massey
1 tour
Rseau SP
Entre du tour
Ki
Couche de substitution
Couche de permutation
Sortie du tour
Toutes les couches doivent tre inversibles !
41
AES
Nouveau standard amricain (NIST, 2000),
remplaant du DES
Processus de slection (1997-2000) :
15 candidats initiaux
5 retenus pour le second tour
Rijndael (Daemen-Rijmen, Belgique)
MARS (IBM, USA)
SERPENT (Biham-Knudsen-Anderson)
RC6 (RSA Labs)
Twofish (USA)
42
AES
Le 2 octobre 2000, lalgorithme belge
Rijndael est retenu par le NIST
FIPS 197
Taille de bloc de 128 bits
Tailles de cl de 128, 192 et 256 bits
43
Structure gnrale
Les donnes sont stockes dans un carr
de 4 x 4 = 16 cases
X1 X2 X3 X4
X5 X6 X7 X8
X9 X10 X11 X12
X13 X14 X15 X16
Chaque case contient 1 octet
(8 x 16 = 128 bits dtat interne)
44
Fonction de tour
Entre du tour (128 bits)
Substitution par Octet (16 botes-S de 8 bits)
Dcalage par Ligne
Mlange par Colonne
Y1 Y2 Y3 Y4
X5 X6 X7 X8
Y5 Y6 Y7 Y8
46
47
La bote S
Sbox =
48
X1 X2 X3 X4
X5 X6 X7 X8
X6 X7 X8 X5
X2
X3 X4
Y1
Y2
Y3 Y4
X5
X6
X7 X8
Y5
Y6
X9
Y9
X13
X15 X16
Y13
Y15 Y16
X14
Y14
Y7 Y8
MixColumn
MixColumn
X1
X1
X5
X5
X9
X13
X9
X13
51
52
GF(2 ) : Dfinition
8
GF(2 ) : Exemple
8
Prenons P(X) = X8 + X4 + X3 + X + 1
lments dans GF(28)
= polynmes rduits modulo P
= polynmes de degr < 8
Exemple
a = X6 + X4 + X2
54
GF(2 ) : Exemple
8
Multiplication :
a x b = (X8 + X6 + X4) modulo (X8 + X4 + X3 + X + 1)
a x b = (X6 + X4) + X4 + X3 + X + 1
55
GF(2 ) : reprsentation
8
56
Addition de la sous-cl
X1 X2 X3 X4
Y1 Y2 Y3 Y4
X5 X6 X7 X8
Y5 Y6 Y7 Y8
Yi = Xi Ki
K5 K6 K7 K8
K9 K10 K11 K12
K13 K14 K15 K16
57
Key Schedule
Algorithme de drivation des sous-cls
partir de la cl secrte
Bas sur les mmes primitives que la
fonction de tour
58
Nombre de tours
Pour AES-128 (cl de taille 128 bits)
t = 10 tours
Pour AES-192
t = 12 tours
Pour AES-256
t = 14 tours
59
Scurit de lAES
Lalgorithme est encore jeune mais
Il a t conu pour rsister aux attaques
classiques (diffrentielle, linaire, )
Inversion dans GF(28)
60
Synthse
Un algorithme de chiffrement par bloc est
une primitive de base (brique)
Reste se poser la question de son
utilisation !
Exemple : modes opratoires pour chiffrer
des messages de taille arbitraire
61
En pratique
Algorithmes utiliss
DES dans les anciens produits
AES dans les nouveaux produits
62