Vous êtes sur la page 1sur 146

Modes opratoires de chiffrement

Fouque Pierre-Alain
Equipe de Cryptographie
Ecole normale suprieure
Introduction
Construction de modes opratoires
Assurer la confidentialit sur des messages de
taille variable
Block cipher se comporte comme une
permutation alatoire
Problmatique
Des primitives de base sont dfinies
Chiffrement de blocs de taille fixe
Pas de flexibilit
Cl K
Bloc de message
clair M
Bloc de
chiffr C
k bits
n bits
n bits
E
Exemples : DES, n=64, k=56
3DES, n=64, k=112
AES, n=128, k=128
Le chiffrement en
pratique
En pratique :
Messages de taille quelconque, variable
Utilisation des briques de base
Quelle hypothse de scurit
sur la primitive ?
Confidentialit
Comment savoir si un mcanisme assure
correctement la confidentialit
Notion de scurit dfinir
Comment assurer que la notion dfinie est
atteinte
Quantification de la scurit
Modlisation des adversaires
Preuve de scurit
Confidentialit
Quelle fuite dinformation
peut-on tolrer ?
Dpend du contexte
En gnral, mauvais signe
Selon la probabilit de cette fuite
Selon son importance
Notion de scurit plus ou moins forte
dnir
Confidentialit
Intuitivement :
Un attaquant nest pas capable de retrouver la cl
secrte
Un attaquant nest pas capable de dchiffrer sans la
cl secrte
Un attaquant napprend aucune information sur le
message clair la vue de son chiffr
Confidentialit
Intuitivement :
Un attaquant nest pas capable de retrouver la cl
secrte
Un attaquant nest pas capable de dchiffrer sans la
cl secrte
Un attaquant napprend aucune information sur le
message clair la vue de son chiffr
Attaque de plus
en plus faible
Confidentialit
Intuitivement :
Un attaquant nest pas capable de retrouver la cl
secrte
Un attaquant nest pas capable de dchiffrer sans la
cl secrte
Un attaquant napprend aucune information sur le
message clair la vue de son chiffr
Attaque de plus
en plus faible
Scurit dans ce sens
=
Scurit maximale
Attaques mises en oeuvre
chi!rs seuls : ladversaire ne connat que des
chiffrs, interception par exemple
clairs connus : ladversaire a accs des couples
(M,C) de messages chiffrs
clairs choisis : ladversaire a accs des couples
(M,C) de messages chiffrs, pour M de son choix
chi!rs connus/choisis : ladversaire demande le
dchiffrement de chiffrs
Attaque non adaptative : lensemble des messages est
choisi a priori
Attaque adaptative : ladversaire choisit les messages en
fonction des rponses de loracle
Un exemple basique
Message de taille quelconque, non multiple
de n bits
M
1
M
2
M
3
M
4
M
5
M
6
M
7
100
E
K
E
K
C
1
C
2
C
3
C
4
C
5
C
6
C
7
E
K
E
K
E
K
E
K
E
K
Un exemple basique
Message de taille quelconque, non multiple
de n bits
M
1
M
2
M
3
M
4
M
5
M
6
M
7
100
E
K
E
K
C
1
C
2
C
3
C
4
C
5
C
6
C
7
E
K
E
K
E
K
E
K
E
K
padding
Un exemple basique
Mode ECB : Electronic CodeBook
Chaque bloc est chiffr indpendamment
des autres
Interversion possible des blocs
Suppression dun bloc
Un attaquant peut crer un dictionnaire
Attaque statistique parfois possible
Un mme bloc de chiffr correspond toujours
au mme bloc de clair
Mode dterministe
M
1
M
2
M
3
M
4
M
5
M

M
7
100
E
K
E
K
C
1
C
2
C
3
C
4
C
5
C

C
7
E
K
E
K
E
K
E
K
E
K
M
1
M
2
M
3
M M
5
M
6
M
7
100
E
K
E
K
C
1
C
2
C
3
C C
5
C
6
C
7
E
K
E
K
E
K
E
K
E
K
Mode dterministe
M
1
M
2
M
3
M
4
M
5
M

M
7
100
E
K
E
K
C
1
C
2
C
3
C
4
C
5
C

C
7
E
K
E
K
E
K
E
K
E
K
M
1
M
2
M
3
M M
5
M
6
M
7
100
E
K
E
K
C
1
C
2
C
3
C C
5
C
6
C
7
E
K
E
K
E
K
E
K
E
K
Mode dterministe
M
1
M
2
M
3
M
4
M
5
M

M
7
100
E
K
E
K
C
1
C
2
C
3
C
4
C
5
C

C
7
E
K
E
K
E
K
E
K
E
K
M
1
M
2
M
3
M M
5
M
6
M
7
100
E
K
E
K
C
1
C
2
C
3
C C
5
C
6
C
7
E
K
E
K
E
K
E
K
E
K
Mode dterministe
Problmatique dans certains contextes
Exemple : vote en ligne
Mme vote = mme bulletin = mme chiffr
Mme enveloppe
=
Mme vote
Attaque basique sur ECB
Chiffrement de texte Unicode
16 bits par caractre
La primitive de chiffrement est le DES
Blocs de clair de 64 bits
4 caractres seulement par bloc !
Attaque statistique : permet de retrouver le
clair
Attaque statistique sur ECB
Chaque quartet de lettres a une frquence
diffrente selon la langue
En franais :
tion est trs frquent
kzjx napparat jamais
Frquence dapparition des blocs chiffrs
Le clair peut tre retrouv par comparaison
des tables de frquence !
Dictionnaire
On sait que le clair est un fichier word
Entte connue = clair connu !
Par exemple le premier bloc de clair est
toujours le mme
00

? ?

? ? ? ?
E
K
E
K
C

C
2
C
3
C
4
C
5
C
6


C
7
E
K
E
K
E
K
E
K
E
K
Dictionnaire
On sait que le clair est un fichier word
Entte connue = clair connu !
Par exemple le premier bloc de clair est
toujours le mme
00

? ?

? ? ? ?
E
K
E
K
C

C
2
C
3
C
4
C
5
C
6


C
7
E
K
E
K
E
K
E
K
E
K
C = E
K
(0)
Dictionnaire
E
K
(0)
Cl K
C
0
0x00 0x00
C
1
0x00 0x01
C
2
0x000x02
C 0xA60x3F
0xFF0xFE
0xFF0xFF
Dictionnaire
E
K
(0)
Cl K
C
0
0x00 0x00
C
1
0x00 0x01
C
2
0x000x02
C 0xA60x3F
0xFF0xFE
0xFF0xFF
On a trouv la cl K
On peut tout dchiffrer
Dictionnaire
E
K
(0)
Cl K
C
0
0x00 0x00
C
1
0x00 0x01
C
2
0x000x02
C 0xA60x3F
0xFF0xFE
0xFF0xFF
On a trouv la cl K
On peut tout dchiffrer
Pour tous les chiffrs ultrieurs, une simple recherche
dans la table permet de retrouver la cl
Solution
Randomiser chaque bloc de clair
Chaque bloc de clair est masqu laide dune
valeur alatoire
Les attaques statistiques ne sappliquent plus
Tous les blocs dentre sont quiprobables
Toutes les valeurs de sortie peuvent tre atteinte
avec mme probabilit
Pour chaque chiffr, une recherche exhaustive
doit tre faite : attaque par dictionnaire vite
Vers le mode CBC
E
K
M
i
C
i
IV
i
IV
i
E
K
M
i+1
C
i+1
IV
i+1
IV
i+1
Vers le mode CBC
Chiffrement du mme message avec IV
diffrents : chiffrs diffrents, impossible de
savoir quils correspondent au mme clair
Problme : le chiffr est deux fois plus
long que le clair
Ide : si la primitive est sre ses sorties
peuvent tre considres comme des
valeurs alatoires
Le mode CBC

On pose donc IV
i+1
= C
i
E
K
M
i
C
i
IV
i
IV
i
Le mode CBC

On pose donc IV
i+1
= C
i
E
K
M
i
C
i
IV
i
IV
i
E
K
M
i+1
C
i+1
Le mode CBC

On pose donc IV
i+1
= C
i
E
K
M
i
C
i
IV
i
IV
i
E
K
M
i+1
C
i+1
IV
i+1
IV
i+1
Le mode CBC

On pose donc IV
i+1
= C
i
E
K
M
i
C
i
IV
i
IV
i
E
K
M
i+1
C
i+1
Le mode CBC

On pose donc IV
i+1
= C
i
E
K
M
i
C
i
IV
i
IV
i
E
K
M
i+1
C
i+1
Amlioration
Le bloc de chiffr prcdent est utilis pour
randomiser le bloc de clair
Optimisation de la bande passante
Correct si la primitive a de bonnes
proprits cryptographiques
indistinguabilit entre les sorties de la
primitive et celles dune permutation
alatoire
Le mode CBC
E
K
E
K
E
K
M
1

C
0
= IV et C
i
=E
K
(C
i-1
!M
i
)
M
2
M
m
IV
E
K
M
3
C
1
C
2
C
m
C
0
C
3
Dchiffrement CBC
D
K
D
K
D
K
M
1

M
2
M
m
D
K
M
3
C
1
C
2
C
m
C
0
C
3
Propagation derreur
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
C
5
Propagation derreur limite en dchiffrement
Propagation derreur
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
C
5
C
2
Propagation derreur limite en dchiffrement
Propagation derreur
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
C
5
C
2
Propagation derreur limite en dchiffrement
Propagation derreur
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
C
5
C
2
M
3
Propagation derreur limite en dchiffrement
Proprits du mode CBC
Pas dtat, mode probabiliste (randomis) :
pour un mme clair, chiffrs diffrents si lIV choisi
est diffrent
Non paralllisable
Expansion : le chiffr possde un bloc de plus
que le clair
Gestion de lIV : transmis en clair avec le chiffr,
valeur non prdictible
Propagation derreurs limite en
dchi!rement : une erreur sur le bloc chiffr C
i

modifie les clairs M
i
et M
i+1
seulement
Autres modes
Normalisation du NIST : modes pour le
DES, puis modes pour lAES
Modes stream :
on gnre un flux additionn bit bit avec le
message clair
Plus coteux quun stream
Scurit souvent meilleure (pas de bonnes
pratiques pour les stream ciphers)
La fonction D=E
-1
nest pas utilise
Modes stream
F
Cl K
Message M
Chiffr C
Modes stream
F
Cl K
Message M
Chiffr C
Modes stream
F
Cl K
Message M
Chiffr C
Modes stream
F
Cl K
Message M
Chiffr C
Modes stream
F
Cl K
Message M
Chiffr C
Modes stream
F
Cl K
Message M
Chiffr C
CFB : Cipher FeedBack
E
K
E
K
E
K
M
1
M
m
IV
C
1
C
2
C
m
..
C
0
M
2
C
0
= IV et C
i
= E
K
(C
i-1
) ! M
i
Variante du CFB
!
Sorties du block cipher tronques
r bits, r<n,
!
Blocs de messages de r bits
S
1
S
1
E
k
M
1
C
1
C
1
S
1
E
k
M
2
C
2
S
2
S
2
IV
Mode OFB
E
K
E
K
E
K
M
1
M
m
IV
C
1
C
2
C
m
..
C
0
M
2
T
0
= IV, T
i
= E
K
(T
i-1
)
C
0
= IV et C
i
= T
i
! M
i
T
1
T
2
T
m
Mode compteur
E
K
E
K
E
K
M
1
M
m
ctr
C
1
C
2
C
m
..
M
2
ctr + 1 ctr + m - 1
C
i
= E
K
( ctr + i 1) ! M
i
M
i
= E
K
( ctr + i 1) ! C
i
Le mode de chiffrement
CBC
Gestion de la valeur initiale
Confidentialit non ncessaire pour lIV :
transmis en clair
Doit tre imprdictible : pas de valeur
constante ou nulle !
E
K
E
K
E
K
M
1

M
2
M
m
E
K
M
3
C
1
C
2
C
m
C
3
Gestion de la valeur initiale
Confidentialit non ncessaire pour lIV :
transmis en clair
Doit tre imprdictible : pas de valeur
constante ou nulle !
E
K
E
K
E
K
M
1

M
2
M
m
E
K
M
3
C
1
C
2
C
m
C
3
Mode dterministe dans ce cas !!!
Scurit du mode de
chiffrement CBC
Scurit du mode CBC
Que se passe-t-il si deux blocs de chiffr
collisionnent ?
Quelle fuite dinfo peut-on tolrer ?
Scurit du mode CBC
E
K
E
K
E
K
M
1
M
i-1
M
m
IV
C
1
C
i-1
C
m
C
0
E
K
M
i
C
i
E
K
E
K
E
K
M
1
M
j-1
M
m
IV
C
1
C
j-1
C
m
C
0
E
K
M
j
C
j
Scurit du mode CBC
E
K
E
K
E
K
M
1
M
i-1
M
m
IV
C
1
C
i-1
C
m
C
0
E
K
M
i
C
i
E
K
E
K
E
K
M
1
M
j-1
M
m
IV
C
1
C
j-1
C
m
C
0
E
K
M
j
C
j
Scurit du mode CBC
E
K
E
K
E
K
M
1
M
i-1
M
m
IV
C
1
C
i-1
C
m
C
0
E
K
M
i
C
i
E
K
E
K
E
K
M
1
M
j-1
M
m
IV
C
1
C
j-1
C
m
C
0
E
K
M
j
C
j
C
i
= C
j
C
i-1
!

M
i
=C
j-1
! M
j
M
i
! M
j
= C
i-1
! C
j-1
Scurit du CBC
Si deux blocs collisionnent, de linformation
fuit : on obtient une relation linaire entre
deux blocs de clair
M
i
! M
j
= C
i-1
! C
j-1
La confidentialit au sens le plus fort nest
plus assure
Quelle est la probabilit quune telle
collision se produise ?
Paradoxe des anniversaires
Les collisions se font sur des blocs de n bits
2
n
valeurs possibles
La primitive E est sre : toutes ces valeurs
sont quiprobables

Ds que "2
n
= 2
n/2
blocs ont t chiffrs,
deux dentre eux collisionnent avec forte
probabilit
Scurit du mode CBC
Quand 2
n/2
blocs ont t chiffrs, de
linformation fuit
Importance de la taille des blocs pour
la primitive E
En pratique :
Pour le DES : 2
32
blocs avant une collision
Trs raliste sur un rseau gigabit
Discutable sur une carte puce
Pour lAES : 2
64
blocs avant collision, pas de
risque pratique
Paradoxe des anniversaires
Permet destimer la quantit de donnes
traiter avant quune collision naie lieu
Fort intrt en crypto :
Cryptanalyse de modes opratoires de chiffrement
Reste exploiter les collisions
Impact pratique : dpend fortement du contexte
La scurit au del de la borne est trs
difficile atteindre
Cryptanalyse de modes
opratoires de
chiffrement
Padding
Ncessit de complter les messages un
multiple de n bits
Nombreuses propositions
Un mauvais choix peut conduire une
implmentation vulnrable certaines
attaques !
Exemple de padding faible
On complte avec :
Nombre doctets complter sur 1 octet
Chaque octet suivant est numrot
M
1
M
2
M
3 .


M
m-1
M
m
5 1 2 3 4
Chaque octet est numrot
Nombre doctets
de padding
Contexte dattaque
Attaquant : cherche
dchiffrer C
Serveur
C* : modification
astucieuse de C
Contexte dattaque
Attaquant : cherche
dchiffrer C
Serveur
Chiffr C*
C* : modification
astucieuse de C
Contexte dattaque
Attaquant : cherche
dchiffrer C
Serveur
Chiffr C*
Dchiffrement
de C*
Vrification de
conformit
C* : modification
astucieuse de C
Contexte dattaque
Attaquant : cherche
dchiffrer C
Serveur
Chiffr C*
Dchiffrement
de C*
Vrification de
conformit
erreur
Le dernier bloc de clair
ne contient pas le
bon padding
C* : modification
astucieuse de C
Contexte dattaque
Attaquant : cherche
dchiffrer C
Serveur
Chiffr C*
Dchiffrement
de C*
Vrification de
conformit
C* : modification
astucieuse de C
Contexte dattaque
Attaquant : cherche
dchiffrer C
Serveur
Chiffr C*
Dchiffrement
de C*
Vrification de
conformit OK
Le dernier bloc de clair
contient le bon padding
C* : modification
astucieuse de C
Contexte dattaque
Attaquant : cherche
dchiffrer C
Serveur
Chiffr C*
Dchiffrement
de C*
Vrification de
conformit
C* : modification
astucieuse de C
Cryptanalyse
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
pad
C
5
Cryptanalyse
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
pad
C
5
Cryptanalyse
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
pad
C
5
Cryptanalyse
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
pad
C
5
Cryptanalyse
D
K
D
K
D
K
M
1
M
2
M
4
D
K
M
3
C
1
C
2
C
4
C
0
C
3
D
K
M
5
pad
C
5
Si la diffrence nest pas dans
le padding, le clair est encore valide
Cryptanalyse
On trouve dabord la taille du padding
utilis, et donc sa valeur
Chaque octet du dernier bloc peut ensuite
tre obtenu

On modifie C
m-1
pour modifier le padding : on
attend quil soit valide
On apprend ainsi chaque octet du dernier bloc
de clair
On tronque le chiffr et on ritre
Modes opratoires
multiples
Multiples modes dopration
But : parer aux faiblesses du DES
Ide : combiner plusieurs modes opratoires
Avantages attendus :
Meilleure scurit que les modes opratoires simples
Face la recherche exhaustive des cls
Pas dentre/sortie connue pour la primitive
Aussi rapides grce la paralllisation
Une attaque clairs ou chiffrs choisis ne doit pas
permettre une attaque efficace
Diffrentes techniques
Cryptanalyse diffrentielle
ECB CBC - CBC
Cryptanalyse linaire
CBC ECB - CBC
Recherche exhaustive cl par cl
CBC CBC ECB
CBC
-1
ECB - CBC
Application du paradoxe des anniversaires
Triple CBC
CBC CBC
-1
- CBC

Soit K
1
et K
2
deux cls DES indpendantes
de 56 bits chacune
Soit E le chiffrement suivant :

E
K1,K2
(M) = DES
K1
(DES
K2
( M ))
DES
Message clair
M
Cl K
1
Cl K
2
Chi!r C
DES
N
Pr-requis : le double DES
Scurit du double DES
Attaque nave : recherche exhaustive des 2
2k
cls
possibles
Attaque par le milieu : compromis temps-mmoire
tant donn un couple clair-chiffr (M,C) :

Calculer tous les N


i
= DES
Ki
(M) pour les 2
k
cls K
i
possibles

Dchiffrer C sous toutes les 2


k
cls K
j
possibles :

P
j
= DES
-1
Kj
(C)

Si N
i
=

P
j
alors le bi-cl (K
i
,K
j
) est candidat
Scurit du double DES
DES
M
C
DES
Scurit du double DES
Cl K
i
DES
M
C
DES
Scurit du double DES
Cl K
i
DES
M
C
DES
2
56
calculs
N
i
= DES(K
i
,M)
Scurit du double DES
Cl K
i
Cl K
j
DES
M
C
DES
2
56
calculs
N
i
= DES(K
i
,M)
Scurit du double DES
Cl K
i
Cl K
j
DES
M
C
DES
2
56
calculs
N
i
= DES(K
i
,M)
Pour chaque
P
j
= DES
-1
(K
j
,C),
on cherche N
i
= P
j
Scurit du double DES
On a :

2
56
chiffrs N
i

2
56
dchiffrs P
j
Valeurs de 64 bits
Par le paradoxe des anniversaires, on a :
(2
56
!2
56
) / 2
64
= 2
48
collisions en moyenne

Il existe donc 2
48
couples (i,j) tels que N
i
=P
j
Donc 2
48
bi-cls possibles
Scurit du double DES

On cherche toutes les collisions N


i
= P
j
et
on obtient 2
48
bi-cls possibles
laide dun second couple (M,C), on
chiffre M avec les 2
48
bi-cls en C
i

Quand on obtient C
i
= C, on a trouv le
couple (K
1
,K
2
) correct
Scurit du double DES
Attaque en 2
k
en temps et en mmoire
Compromis temps/mmoire possible
La scurit du double DES natteint pas 2
2k
mais seulement
2
k
, comme le DES
Remarque :
deux cls de 28 bits : 56 bits de secret,
2 fois plus de tours que le DES
scurit en 2
28
seulement
Multiples modes dopration
!
But : parer aux faiblesses du DES
!
Ide : combiner plusieurs modes opratoires
!
Avantages attendus :
!
Meilleure scurit que les modes opratoires simples
Face la recherche exhaustive des cls
Scurit smantique
!
Aussi rapides grce la paralllisation
!
Une attaque clairs ou chiffrs choisis ne doit pas
permettre une attaque efficace
Diffrentes techniques
!
Recherche exhaustive
!
Application du paradoxe des anniversaires
!
Cryptanalyses linaires et diffrentielles
!
Nouveaux types dadversaires
!
Dans chaque cas, on cherche
!
retrouver la cl
!
casser la scurit smantique
!
Les moyens mis en uvre sont souvent varis
Exemple : CBC / CBC
-1
/ CBC
M[1] M[i-1] M[m] M[i]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C[1] C[i-1] C[m] C[i]
IV
1
IV
2
IV
3
Observation principale
Contrle de certaines valeurs chanes
Choix des entres de la primitives grce
ce contrle
Attaques clairs ou chiffrs choisis
Recherche exhaustive
On se ramne a la recherche exhaustive de
chaque cl utilise
Exemple basique : attaque sur le 2DES
Problme : trouver un test darrt , cd
un couple (P,C) tel que C=E
K
(P)
Un tel couple permet une recherche exhaustive
de la cl K
Relations parfois plus complexes mais qui ne
dpendent que dune seule cl
Mode CBC-CBC-ECB
M[1] M[i-1] M[m] M[i]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C[1] C[i-1] C[m] C[i]
IV
1
IV
2
Mode CBC-CBC-ECB
Attaque chiffrs choisis : 2 requtes
seulement
Ladversaire demande le dchiffrement de
C=(IV
1
,IV
2
,C
1
,C
2
,C
3
) C=(IV
1
,IV
2
,C
1
,C
2
,C
3
)

Il obtient M=M
1
M
2
M
3
et M= M
1
M
2
M
3

La valeur M
3
! M
3
est celle en entre de
E
K3
au premier tour
Mode CBC-CBC-ECB
Attaque chiffrs choisis : 2 requtes
seulement
Ladversaire demande le dchiffrement de
C=(IV
1
,IV
2
,C
1
,C
2
,C
3
) C=(IV
1
,IV
2
,C
1
,C
2
,C
3
)

Il obtient M=M
1
M
2
M
3
et M= M
1
M
2
M
3

La valeur M
3
! M
3
est celle en entre de
E
K3
au premier tour
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
N N
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
N N
P P
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
N N
N ! N = M[3] ! M[3]
P P
Mode CBC-CBC-ECB
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
M[1] M[2] M[3]
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
C[1] C[2] C[3]
IV
1
IV
2
N N
N ! N = M[3] ! M[3]
P P
P ! P = M[3] ! M[3]
Algorithme dattaque
2 requtes de dchiffrement

C=(IV
1
,IV
2
,C
1
,C
2
,C
3
)

C=(IV
1
,IV
2
,C
1
,C
2
,C
3
)

Recherche exhaustive de K
3
:
Essai des 2
56
cls K jusqu ce que
D
K
(C
1
) ! D
K
(C
1
) = M
3
! M
3

Recherche exhaustive de K
1
et K
2
Mode CBC-CBC-ECB

La cl K
3
peut tre retrouve avec une recherche
exhaustive grce lquation
D
K3
(C
1
) ! D
K3
(C
1
) = M
3
! M
3
Variante : attaque clairs choisis
Aprs 2
n
chiffrements de clairs connus, il existe 2 chiffrs C
et C tels que C
2
=C
2
et C
3
=C
3
Si chiffrement DES, n=64

Il faut ensuite retrouver K


1
et K
2
: attaque similaire
une attaque Double DES
Optimisation possible
Autre technique
Exemple : CBC-CBC-CBC
M[1] M[2] M[4] M[3]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C[1] C[2] C[4] C[3]
IV
1
IV
2
IV
3
Attaque
Attaque chiffrs choisis
Requtes de la forme (C
i
, C
i
, C
i
, C
i
)
On veut dtecter une collision de la forme
D
k3
(C
i
) ! C
i
= D
k3
(C
j
) ! C
j

Il faut ensuite lexploiter pour retrouver la cl K


3

On teste toutes les cls K


3
et on cherche pour
laquelle la collision a lieu

Restent les cls K


2
et K
3
retrouver : attaque
similaire une attaque 2DES
Dtection de la collision
M
i
[1] M
i
[2] M
i
[4] M
i
[3]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C
i
C
i
C
i
C
i
IV
1
i
IV
2
i
IV
3
i
Dtection de la collision
M
i
[1] M
i
[2] M
i
[4] M
i
[3]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C
i
C
i
C
i
C
i
IV
1
i
IV
2
i
IV
3
i
X X X
Dtection de la collision
M
i
[1] M
i
[2] M
i
[4] M
i
[3]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C
i
C
i
C
i
C
i
IV
1
i
IV
2
i
IV
3
i
X X X
Y
Y
Dtection de la collision
M
i
[1] M
i
[2] M
i
[4] M
i
[3]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C
i
C
i
C
i
C
i
IV
1
i
IV
2
i
IV
3
i
X X X
Y
Y
La collision X
i
=X
j
se dtecte grce
la collision sur
le bloc M[4]
Attaque
2
n/2
requtes de dchiffrement de la forme (C,C,C,C)
collision sur X pour deux dentre deux
On peut la dtecter grce la collision sur le bloc de
clair M[4]
Recherche des cls :

On cherche K
3
telle que
D
K3
(C
i
) ! C
i
= D
K3
(C
j
) ! C
j

Puis on cherche K
2
et K
3
avec une attaque similaire
celle sur le double DES
CBC-CBC
-1
-CBC
M[1] M[i-1] M[m] M[i]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C[1] C[i-1] C[m] C[i]
IV
1
IV
2
IV
3
Remarque
Il faut voir que :
(A ! B) ! C = A ! (B ! C)
Par consquent, on peut redessiner le
mode
CBC-CBC
-1
-CBC
M[1] M[i-1] M[m] M[i]
E
K1
E
K1
E
K1
E
K1
E
K2
E
K2
E
K2
E
K2
E
K3
E
K3
E
K3
E
K3
C[1] C[i-1] C[m] C[i]
IV
1
IV
2
Attaque
Attaque chiffrs choisis
Requtes de dchiffrement pour des
chiffrs de la forme
(IV
i
1
,IV
i
2
,C
i
1
,C
2
,C
3
)
On attend une collision sur la valeur X
Comment la dtecter
Comment une telle collision peut permettre de
retrouver les cls
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Z
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Z
Z
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Z
Z
X
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Z
Z
X
Y
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Z
Z
X
Y
Z
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Z
Z
Z
X
Y
Z
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
Y
Z
Z
Z
X
Y
Z
M
i
[3]
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
X
i
=X
j
Y
Z
Z
Z
X
Y
Z
M
i
[3]
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
X
i
=X
j
Y
i
=Y
j
Y
Z
Z
Z
X
Y
Z
M
i
[3]
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
X
i
=X
j
Y
i
=Y
j
Z
i
=Z
j
Y
Z
Z
Z
X
Y
Z
M
i
[3]
Dtection de la collision
M
i
[1]
E
K1
E
K2
E
K3
C
i
[1]
IV
1
i
IV
2
i
M
i
[2]
E
K1
E
K2
E
K3
C
M
i
[3]
E
K1
E
K2
E
K3
C
X
X
i
=X
j
Y
i
=Y
j
Z
i
=Z
j
M
i
[3]=M
j
[3]
Y
Z
Z
Z
X
Y
Z
M
i
[3]
Dtection de la collision
On sait que :

X
i
= X
j

C
2
i
= C
2
j
Donc

Y
i
= Y
j
et Z
i
= Z
j

Et M
3
i
=M
3
j
La collision peut donc tre dtecte
Recherche des cls
Ds que la collision est dtecte, il faut lexploiter

Recherche de la cl K
1

On sait que Z
i
=Z
j

On connat les clairs M


i

et M
j
correspondants
Par consquent :
E
K1
(E
K1
(M
1
i
!IV
1
i
)!M
2
i
)=E
K1
(E
K1
(M
1
j
!IV
1
j
)!M
2
j
)
Recherche des cls

Ds que K
1
est retrouve, on peut retrouver
K
2
et K
3
avec une attaque similaire celle
sur le double DES