Documente Academic
Documente Profesional
Documente Cultură
Laboratoire de Cryptographie
Laboratoire PRiSM
COLE DOCTORALE
STV
THSE
prsente pour obtenir le grade de
Jean-Ren Reinhard
Le 14 dcembre 2011
Jury :
Rapporteurs :
Directeur de thse :
Examinateurs :
Anne Canteaut
Pierre-Alain Fouque
Antoine Joux
Henri Gilbert
Louis Goubin
Pascal Paillier
Serge Vaudenay
Marion Videau
INRIA
ENS Paris
DGA et UVSQ
ANSSI
UVSQ
CryptoExperts
EPFL
LORIA
SGDSN/ANSSI
Laboratoire de Cryptographie
Laboratoire PRiSM
COLE DOCTORALE
STV
THSE
prsente pour obtenir le grade de
Jean-Ren Reinhard
Le 14 dcembre 2011
Jury :
Rapporteurs :
Directeur de thse :
Examinateurs :
Anne Canteaut
Pierre-Alain Fouque
Antoine Joux
Henri Gilbert
Louis Goubin
Pascal Paillier
Serge Vaudenay
Marion Videau
INRIA
ENS Paris
DGA et UVSQ
ANSSI
UVSQ
CryptoExperts
EPFL
LORIA
Remerciements
Au moment de remercier tout ceux sans qui ces travaux nauraient pu aboutir, les mots me
manquent pour exprimer toute ma gratitude et mon admiration.
En premier lieu, je tiens remercier Antoine Joux de mavoir fait lhonneur daccepter
de mencadrer pendant cette thse. Son talent et son expertise sont bien connus de toute la
communaut des cryptologues. Cest lenthousiasme avec lequel il mne ses travaux qui ma le
plus marqu.
Je remercie Anne Canteaut et Pierre-Alain Fouque de mavoir fait lhonneur daccepter la
lourde tche de rapporteur. Je remercie galement Henri Gilbert, Louis Goubin, Pascal Paillier,
Serge Vaudenay et Marion Videau pour avoir accept de prendre part mon jury de thse.
La qualit de ce mmoire doit beaucoup au travail de ses relecteurs, qui ont traqu sans
relche, jusqu la dernire minute, les nombreuses coquilles et approximations que jy avais glisses par mgarde. Mes remerciements vont donc Joana Treger-Marim, Henri Gilbert, Thomas
Fuhr, ainsi qu Anne Canteaut qui a joint son rapport les fruits dune relecture extensive.
Ces travaux ont t raliss au sein du laboratoire de cryptologie de lANSSI. Ce laboratoire
et de manire plus large la sous-direction ACE constituent un environnement trs panouissant
et motivant : panouissant en raison des comptences et des qualits humaines des personnes qui
y travaillent, motivant car on sy trouve confront un ventail trs complet de problmatiques.
Je remercie plus particulirement mes collgues passs et prsents du laboratoire de cryptographie, Guillaume Poupard, Michel Mitton, liane Jaulmes, Gwenalle Martinet, Frdric Muller,
Sbastien Kunz-Jacques, Mathieu Baudet, Emmanuel Bresson, Thomas Fuhr, Marion Videau,
Benot Chevallier-Mames, Joana Treger-Marim, Aurlie Bauer, Yannick Seurin, Henri Gilbert
et Jean-Pierre Flori, mes collgues du laboratoire composant, Karim Khalfallah, Jean-Claude
Bourre, Victor Lomn, Thomas Roche et Adrian Thillard. Je remercie galement tout ceux qui
ACE sintressent de prs ou de loin la cryptologie, ses applications et son dploiement, et
avec lesquels se nouent des changes trs fructueux, notamment Pierre-Michel Ricordel, Olivier
Levillain, Chaouki Kasmi, Arnaud Ebalard, Guillaume Valadon et ric Jaeger.
Lexcellence de cet environnement de travail privilgi doit beaucoup Florent Chabaud et
Loc Duflot, qui ont toujours considr la recherche comme une activit essentielle des laboratoires de lANSSI, ainsi qu la direction qui donne aux agents la possibilit de se former par la
recherche.
Une partie des travaux de cette thse a t ralise dans le cadre des projets collaboratifs SAPHIR et Saphir2. La soumission et la dfense de la fonction de hachage Shabal furent
des expriences enrichissantes, que jai eu lhonneur de partager avec Jean-Franois Misarsky,
Thomas Fuhr, Benot Chevallier-Mames, Emmanuel Bresson, Marion Videau, Pascal Paillier,
Aline Gouget, Christophe Clavier, Thomas Pornin, Cline Thuillet, Thomas Icart, Mara Naya
Plasencia et Anne Canteaut.
Enfin, je tiens remercier ma famille pour son soutien inconditionnel et Marjorie, avec qui
je partage tant de choses depuis tant dannes, pour ses encouragements et sa patience pendant
la rdaction de ce mmoire de thse.
Abstract : The use of symmetric cryptographic primitives is widely spread in many concrete
applications requiring confidentiality and integrity. This work has been undertaken in the context
of two international competitions, eSTREAM and SHA-3, which encouraged and enticed the design and cryptanalysis of many algorithms of two cryptographic algorithms families, respectively
stream ciphers and hash functions.
In a first part, we study stream ciphers from a cryptanalysis point of view. We first present
attack principles that apply to many stream ciphers. Through two examples, we expose at greater
length algebraic and differential attacks. We perform an overview of algebraic attacks applied to
the filtered LFSR and present practical time chosen IV attacks against the VEST stream cipher
family, one of the candidate of the eSTREAM competition selected for phase 2.
In a second part, we study the conception of cryptographic hash functions. We participated
to the submission of one candidate to the SHA-3 competition : Shabal. We focus in this document
on the security of its domain extender in the indifferentiability framework, when the compression
function is idealized. We also present a framework which allows to take into account non ideal
properties of compression functions and expand the proof of Shabal domain extender in this
model.
Keywords : stream cipher cryptanalysis, filtered LFSR, algebraic attacks, VEST, hash function
domain extender, indifferentiability, Shabal.
Mots cls : Cryptanalyse dalgorithme de chiffrement par flot, registre linaire filtr, attaques
algbriques, VEST, extension de domaine de fonction de hachage, indiffrentiabilit, Shabal.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
i
. iii
. v
. vii
. xi
. xiii
.
1
1 Prliminaires
1.1 Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Chiffrement symtrique . . . . . . . . . . . . . . . . . . .
1.1.2 Chiffrement par bloc . . . . . . . . . . . . . . . . . . . . .
1.1.3 Chiffrement par flot synchrone . . . . . . . . . . . . . . .
1.1.4 Scurit des algorithmes de chiffrement par flot . . . . . .
1.2 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Constructions base de registres linaires . . . . . . . . .
1.2.2 Algorithme de chiffrement flot prouv sr . . . . . .
1.2.3 Chiffrements par flot industriels . . . . . . . . . . . . . . .
1.2.4 Constructions fondes sur des primitives cryptographiques
1.2.5 Chiffrement par flot moderne comptition eSTREAM .
1.3 Principes de cryptanalyse . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Attaques gnriques . . . . . . . . . . . . . . . . . . . . .
1.3.2 Attaques par corrlation . . . . . . . . . . . . . . . . . . .
1.3.3 Attaques algbriques . . . . . . . . . . . . . . . . . . . . .
1.3.4 Attaques diffrentielles . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
sous-jacentes
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
5
6
6
8
9
9
11
11
12
12
12
13
18
22
22
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
25
25
26
29
30
31
31
32
32
33
35
35
35
37
38
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
viii
3 VEST
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Description de VEST . . . . . . . . . . . . . . . . . . . .
3.2.1 Compteur . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Diffuseur linaire du compteur . . . . . . . . . .
3.2.3 Accumulateur . . . . . . . . . . . . . . . . . . . .
3.2.4 Filtre de sortie . . . . . . . . . . . . . . . . . . .
3.2.5 Mode de mise la cl . . . . . . . . . . . . . . .
3.2.6 Mode de mise lIV . . . . . . . . . . . . . . . .
3.3 Proprits des composants de VEST . . . . . . . . . . .
3.3.1 Caractristiques diffrentielles des registres . . .
3.3.2 Collision dans le diffuseur de compteur . . . . . .
3.4 Reconstitution partielle de ltat mis la cl . . . . . . .
3.4.1 Attaque avec des IV longs . . . . . . . . . . . . .
3.4.2 Attaque avec des IV courts . . . . . . . . . . . .
3.5 Recouvrement de cl . . . . . . . . . . . . . . . . . . . .
3.5.1 Inversion de la deuxime phase de la mise la cl
3.5.2 Attaque par le milieu . . . . . . . . . . . . . . . .
3.5.3 Recouvrement de cl par attaque cls corrles
3.5.4 Discussion . . . . . . . . . . . . . . . . . . . . . .
3.6 Forge existentielle pour le mode VEST Hash MAC . . .
II
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Fonctions de Hachage
4 Prliminaires
4.1 Preuves de scurit en cryptographie . . . . . . . . . . . . . .
4.1.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.2 Adversaire, Objectifs, Moyens et Avantage . . . . . . .
4.1.3 Indistinguabilit . . . . . . . . . . . . . . . . . . . . .
4.1.4 Indiffrentiabilit . . . . . . . . . . . . . . . . . . . . .
4.1.5 Techniques de preuve : Preuve par squence de jeux .
4.2 Fonctions de hachage cryptographiques . . . . . . . . . . . . .
4.2.1 Dfinition - Attaques gnriques . . . . . . . . . . . .
4.2.2 valuation de la scurit dune fonction de hachage . .
4.2.3 Formalisation de la scurit dune fonction de hachage
4.2.4 Autres proprits de scurit . . . . . . . . . . . . . .
4.3 Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Avnement des fonctions de hachage . . . . . . . . . .
4.3.2 Cryptanalyses . . . . . . . . . . . . . . . . . . . . . . .
4.3.3 SHA-3 . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Extension de domaine . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Extension de domaine de Merkle-Damgrd . . . . . . .
4.4.2 Attaque par extension de message . . . . . . . . . . .
4.4.3 Multicollisions . . . . . . . . . . . . . . . . . . . . . .
42
46
49
49
50
50
51
51
52
52
52
53
53
55
55
56
58
60
60
60
61
61
61
63
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
65
65
65
67
68
68
69
70
70
72
73
74
74
74
75
75
77
77
79
79
ix
4.4.4
80
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
83
83
86
86
87
88
99
105
106
107
108
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
109
109
110
111
112
112
112
113
114
115
115
117
117
117
119
120
129
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Bibliographie
131
141
141
141
142
144
146
146
147
147
147
148
cas
. .
. .
. .
. .
. .
cas
. .
. .
. .
idal .
. . . .
. . . .
. . . .
. . . .
. . . .
biais
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
le principe de combinaison . .
le principe de filtrage . . . . .
le principe davance irrgulire
le principe de dcimation . . .
. . . . . . . . . . . . . . . . . .
9
10
10
11
18
2.1
2.2
2.3
31
31
44
3.1
3.2
51
53
4.1
4.2
4.3
4.4
4.5
4.6
Construction
Construction
Extension de
Extension de
Extension de
Extension de
.
.
.
.
.
.
78
80
81
81
82
82
5.1
5.2
5.3
5.4
84
85
86
5.5
5.6
5.7
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.14
5.15
87
88
89
90
91
92
94
95
99
100
102
103
105
6.1
6.2
6.3
6.4
6.5
118
120
121
121
123
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . . . . . . . . . . . . . . . .
et simulateurs au cours de la preuve. .
jeu 1. . . . . . . . . . . . . . . . . . .
jeu 2. . . . . . . . . . . . . . . . . . .
jeu 3. . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
xii
2.1
2.2
2.3
2.4
2.5
3.1
3.2
18
41
42
42
47
47
55
59
Introduction
La cryptologie, ou science du secret, trouve ses origines dans lantiquit. Ltude et lemploi
de mcanismes cryptographiques ont longtemps t rservs des usages militaires ou diplomatiques. Lhistoire est parseme dexemples de schmas cryptographiques dont la mise en dfaut a eu des rpercussions importantes. Paradoxalement, cest lavnement dune recherche
acadmique en cryptographie, la fin des annes 1970 avec la publication dun standard de
chiffrement, le DES, et la dcouverte de la cryptographie cl publique, qui a permis damliorer
considrablement la qualit des techniques cryptographiques et a permis ce domaine datteindre une certaine maturit. De plus, le dveloppement des communications numriques, internet,
GSM, etc, a conduit une gnralisation de lemploi de ces techniques. Aujourdhui, la scurit de nombreuses applications, comme le commerce lectronique, reposent sur la cryptologie
moderne.
La cryptologie permet de protger linformation. Elle permet datteindre des objectifs de
scurit comme :
la confidentialit : une information est rendue inintelligible sauf pour les utilisateurs
lgitimes ;
lintgrit : une information ne peut tre modifie sans dtection par les utilisateurs
lgitimes ;
lauthentification : une preuve sur lidentit de lmetteur dun message est apporte.
Les mcanismes mis en uvre pour remplir ces objectifs de scurit reposent sur un secret,
dont la connaissance permet de raliser une opration sensible, lecture dun message protg en
confidentialit, gnration dun message protg en intgrit, etc. Lun des principes fondateurs
de la cryptologie moderne est la sparation entre la description des mcanismes cryptographiques
et le secret utilis. En dautres termes, les mcanismes cryptographiques emploient un paramtre
secret appel gnralement cl, et peuvent tre publis sans compromettre leur scurit tant que
les cls utilites restent secrtes.
On distingue parfois la conception de mcanismes cryptographiques, la cryptographie, et lanalyse et lattaque de ces mcanismes, la cryptanalyse. Ces deux activits sont fortement lis :
un cryptographe doit sassurer que lalgorithme quil conoit rsiste (au moins) aux grandes
techniques dattaque connues ; le cryptanalyste peut proposer des contre-mesures permettant de
rsister des attaques quil a identifi. Une bonne partie des travaux de recherche en cryptologie, notamment ceux portant sur les primitives, briques de base sur lesquelles sont construits
les mcanismes cryptographiques, peut tre vue comme une suite d aller-retours entre cryptographes et cryptanalystes. Ces quinze dernires annes ont t marques notamment par trois
comptitions internationales, publiques, concentrant lattention de la communaut des cryptologues sur trois types de primitives :
NIST AES. Cette comptition, conduite par le NIST entre 1997 et 2001 a conduit la
normalisation dun algorithme de chiffrement par bloc, en remplacement du standard DES
devenu obsolte.
ECRYPT eSTREAM. Ce projet europen, qui sest droul entre 2004 et 2008, a eu
pour objet ltude des algorithmes de chiffrement par flot. De nombreuses cryptanalyses
dalgorithmes de chiffrement par flot dploys et lmergence de lAES comme standard de
chiffrement avait conduit questionner le principe mme des algorithmes de chiffrement par
flot. Le projet eSTREAM a eu pour objectif de faire merger des principes de conception
modernes pour cette famille de primitives cryptographiques.
NIST SHA-3. Cette comptition lance en 2008 par le NIST a pour objectif la normal-
isation dun nouveau standard de hachage, qui pourra tre amen remplacer la famille
SHA-2 si un dfaut devait lui tre dcouvert.
Ces trois vnements se sont drouls selon des modalits proches. Dans un premier temps
un appel candidatures est mis et des chercheurs, acadmiques et industriels, soumettent des
propositions dalgorithmes. Dans un deuxime temps ces candidats sont tudis : la communaut
acadmique cherche valuer leur scurit, soit en la mettant en dfaut par une attaque, soit en
la garantissant par une preuve. Cette priode danalyse est dcoupe en phases entre lesquelles le
nombre de candidats est rduit, afin de focaliser les efforts de la communaut sur les algorithmes
les plus prometteurs. Enfin une slection finale est ralise.
Les travaux de cette thse sinscrivent dans le contexte des comptitions eSTREAM et NIST
SHA-3. Dans une premire partie nous prsentons des techniques dattaque contre des algorithmes de chiffrement par flot. On expose notamment la cryptanalyse diffrentielles IV choisis
de la famille dalgorithmes de chiffrement par flot VEST, candidat retenu pour la deuxime
phase de la comptition eSTREAM. Dans une deuxime partie, nous prsentons les preuves
dveloppes afin dargumenter la scurit de la construction de la fonction Shabal candidate
la comptition NIST SHA-3 laquelle nous avons contribue. Cette fonction a t slectionne
pour participer la deuxime phase de la comptition, mais na pas t retenue pour la phase
finale. Les preuves que nous exposons en deuxime partie tudient la scurit du mode sur lequel
Shabal est construit, dabord en considrant un composant interne de lalgorithme comme idal,
puis en intgrant lexistance de distingueurs , identifiant des carts entre les comportements
du composant interne et dun composant idal.
Premire partie
Chapitre 1
Prliminaires
Sommaire
1.1
1.2
1.3
1.1
1.1.1
Dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1
Chiffrement symtrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2
1.1.3
1.1.4
Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1
1.2.2
11
1.2.3
11
1.2.4
12
1.2.5
12
Principes de cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
1.3.1
Attaques gnriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.3.2
18
1.3.3
Attaques algbriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
1.3.4
Attaques diffrentielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
Dfinitions
Chiffrement symtrique
La cryptographie symtrique est caractrise par le partage dune mme cl par tous les
utilisateurs lgitimes du cryptosystme. Pour remplir des services de confidentialit, on utilise
deux algorithmes inverses lun de lautre appels algorithmes de chiffrement et de dchiffrement.
Ces algorithmes, dont les spcifications peuvent tre rendues publiques, sont fonctions dun
paramtre K appel cl. La scurit du schma cryptographique est assure par le maintien
du secret de la cl. Lalgorithme de chiffrement E agit sur un message en clair, ou plaintext
P , et produit un message chiffr, ou ciphertext C. Utilis avec la mme cl, lalgorithme de
dchiffrement D ralise lopration inverse. On a donc pour tout P, K :
D(E(P, K), K) = P.
On distingue deux familles dalgorithmes de chiffrement symtrique : les algorithmes de
chiffrement par bloc et les algorithmes de chiffrement par flot.
1.1.2
Chapitre 1. Prliminaires
Un algorithme de chiffrement par bloc est un algorithme de chiffrement traitant des messages
de taille fixe, appels blocs. La taille n des blocs est usuellement de lordre de quelques centaines
de bits. Lautre grandeur caractristique de ces algorithmes est la taille k de la cl. Ainsi, pour
un algorithme de chiffrement par bloc, on a E : {0, 1}n {0, 1}k {0, 1}n .
La publication du Data Encryption Standard [108], ou DES, en 1977 par le NBS, organisme de standardisation amricain, destination de ladministration amricaine, a contribu au
dveloppement de la cryptologie comme domaine de recherche acadmique. la fin des annes
90, le NIST, successeur du NBS a lanc une comptition destine dfinir un successeur au
DES. Cette comptition a abouti la slection de lalgorithme Rijndael et son inclusion dans
le Advanced Encryption Standard [103]. Lacronyme AES dsigne la version apparaissant dans
ce standard.
Afin de pouvoir chiffrer des messages de taille arbitraire et obtenir des proprits de scurit
additionnelles, comme par exemple le non-dterminisme du chiffrement, lalgorithme de chiffrement par bloc est mis en uvre par un mode opratoire. Lors de la publication du DES et de
lAES des modes opratoires ont t standardiss [109]. Lactivit de recherche acadmique a
galement conduit la dfinition de modes ayant de meilleurs proprits de scurit [104] ou
adapts de nouveaux contextes, comme le chiffrement de disque [105].
1.1.3
Les algorithmes de chiffrement par flot sont construits sur le principe de lalgorithme de
chiffrement de Vernam. Le message est vu comme une suite de symboles. Chaque symbole formant
le message chiffrer est chiffr indpendamment par application dun masque alatoire. Pour un
ensemble de symboles constitu des 26 lettres de lalphabet, ceci consiste raliser un dcalage
dans lalphabet. En modlisant chaque lettre par sa postion dans lalphabet, entre 0 et 25, et en
notant Pi , resp. Ci et Mi , le i-me symbole du clair, resp. du chiffr et du masque, on a
C i = P i + Mi
mod 26.
Pour un ensemble de symboles constitu de valeurs boolennes, i.e. appartenant {0, 1}` , ` 1,
lapplication du masque sobtient par ou exclusif
Ci = P i M i .
La suite de masques alatoires utilise doit :
tre de mme longueur que le message chiffrer ;
tre tire uniformment ;
ne pas tre rutilise pour chiffrer un autre message.
Shannon [128] montre que sous ces conditions le chiffrement est inconditionnellement sr :
les chiffrs napportent aucune information sur le message clair. La premire condition est une
condition ncessaire.
Si cet algorithme possde une scurit parfaite, il est trs difficile mettre en uvre en
pratique, car les correspondants doivent partager pralablement des cls dont la longueur est
suprieure celle des messages et chaque cl ne peut tre utilise quune fois et une seule. Il est
ais de constater que la rutilisation dune cl a des consquences nfastes sur la confidentialit
des donnes changes. Si C est C 0 sont les chiffrs des messages P et P 0 sous la mme cl
1.1. Dfinitions
K, alors la diffrence des chiffrs est gale la diffrence des clairs, ce qui constitue une fuite
dinformation consquente :
C C 0 = (P + K) (P 0 + K) = P P 0 .
Afin de faciliter la mise en uvre de cette mthode de chiffrement, on fait appel un algorithme appel gnrateur pseudo-alatoire, ou GPA. Il sagit dun algorithme prenant en entre
une valeur de taille fixe et gnrant une suite de masques de taille arbitraire. Lalgorithme de
chiffrement par flot correspondant consiste fournir en entre du gnrateur pseudo-alatoire
une cl et appliquer sur le clair la suite de masques obtenue en sortie du gnrateur. Dans la
quasi-totalit des cas, les symboles gnrs par un GPA consistent en un ensemble de bits (bit,
octet, mot de 32 ou 64 bits). On se place par la suite dans le cas o la sortie du GPA est une
suite de bits.
Les algorithmes de chiffrement par flot rendent le principe du chiffrement de Vernam utilisable
dans la mesure o la taille de la cl partager est prsent fixe et comme nous le verrons un peu
plus loin relativement courte. Si on rgle ainsi le problme de la taille de la cl, on perd cependant
la scurit inconditionnelle. De plus une cl reste usage unique, car le GPA est dterministe.
Afin de lever cette restriction, les algorithmes de chiffrement par flot rcents acceptent une entre
additionnelle appele vecteur dinitialisation, dnot IV. Un IV, de longueur m bits, permet de
diversifier la sortie du GPA pour une cl donne. On peut utiliser une mme cl pour chiffrer
plusieurs messages, condition de ne pas employer deux fois la mme paire (cl, IV).
Afin de gnrer partir de la cl une suite chiffrante de longueur suprieure la taille de la
cl, la plupart des GPA sont construits comme une machine ayant une mmoire de taille t bits,
appele tat interne, sur laquelle agissent trois fonctions :
une fonction dvolution qui mlange les bits de ltat. Cette fonction est usuellement
inversible pour sassurer que lvolution du GPA ne dgrade pas la variabilit de ltat
interne ;
une fonction dextraction qui calcule partir des valeurs des bits de ltat interne un
symbole de la suite chiffrante de sortie (bit, octet, mot, ...).
une fonction dinitialisation qui partir dune cl et ventuellement dun IV produit une
valeur dtat interne.
Deux limitations demeurent dans les algorithmes de chiffrement par flot de la manire dcrite
ci-dessus :
Afin que le dchiffrement se droule correctement, il est essentiel que le rcepteur reste synchronis avec le chiffr. La transmission sur un canal de transmission susceptible deffacer
ou dintercaler des bits dans le chiffr transmis peut introduire des dcalages rendant le
message reu indchiffrable. La synchronisation devant tre garantie par lenvironnement,
les algorithmes de chiffrement par flot dont la dfinition suit la structure dcrite ci-dessus
sont dsigns sous le terme dalgorithmes synchrones. Des tentatives pour construire des
algorithmes de chiffrement par flot essayant de lever cette limitation ont t ralises
[50, 125, 51]. Lide est de faire dpendre le chiffrement, et donc le dchiffrement, dune
fentre des derniers bits de chiffr, garantissant ainsi la reprise dun dchiffrement correct
ds quune fentre suffisamment longue de chiffr est reue. De tels algorithmes sont dits
auto-synchronisants. Ils ne seront pas abords dans la suite de ce mmoire.
Seule la confidentialit est traite par lalgorithme, et le chiffr est facilement manipulable.
Les algorithmes de chiffrement par flot sont par nature trs mallables : lintroduction
dune diffrence en une position donne du chiffr conduira un message clair diffrant en
la mme position. Afin dajouter un service dintgrit, certains algorithmes prvoient le
Chapitre 1. Prliminaires
calcul dun motif dintgrit, obtenu en introduisant au moyen dune procdure spcifique
le message clair ou chiffr dans ltat interne [139, 115].
1.1.4
Les algorithmes de chiffrement par flot sont construits sur le principe du chiffrement de Vernam, en remplaant la cl alatoire par une suite chiffrante issue dun GPA. Informellement,
on sattend donc ce quun adversaire ne puisse pas remettre en cause la confidentialit des
messages si la sortie du GPA lui apparat comme alatoire. A fortiori, lattaquant ne doit pas
pouvoir reconstituer tout ou partie de ltat interne du GPA, ni la cl utilise pour initialiser le
GPA. Pour formaliser cette intuition, on dfinit un jeu de scurit dans lequel on attribue
lattaquant des moyens et un objectif. Le jeu de scurit est formalis de la manire suivante : on fournit lattaquant une bote noire contenant soit une source alatoire idale, soit
un gnrateur pseudo alatoire. Lattaquant ralise des requtes la bote noire en fonction des
moyens qui lui sont allous. la fin du jeu, il doit remplir son objectif.
Moyens de lattaquant. Dans toutes les analyses, on considre que lattaquant dispose des
spcifications de lalgorithme attaqu. Les moyens de lattaquant modlisent laccs de lattaquant lalgorithme mis la cl. Dans le cas des GPA synchrones, attaques clairs connus,
clairs choisis et chiffrs choisis concident : elles permettent toutes de remonter la suite chiffrante
gnre par le GPA. On dsigne ce moyen de lattaquant sous le terme de suite chiffrante connue. Pour des algorithmes faisant usage dIV, on donne gnralement lattaquant accs aux
IV utiliss. On parle dattaque IV connus. On considre galement le cas o lattaquant peut
contrler les IV. On parle alors dattaques IV choisis. Ces moyens semblent donner ladversaire un grand accs lalgorithme. Cependant, comme lillustrent les attaques pratiques contre
les algorithmes A5/1 et A5/2 dans le cadre du systme GSM [10, 106] et contre lalgorithme
RC4 dans le cadre de sa mise en uvre dans le systme WEP [135], laccs la suite chiffrante
peut tre obtenu au travers du chiffrement de donne de formatage fixe. Pour valuer la scurit
intrinsque des algorithmes cryptographiques, il est prfrable de se placer dans le contexte le
plus avantageux pour lattaquant.
Pour les algorithmes incluant des mcanismes dintgrit ou pour des algorithmes de chiffrement par flot auto-synchronisants, on peut de plus considrer des attaques clairs/chiffrs
connus ou choisis.
Objectifs de lattaquant. Lobjectif le plus difficile atteindre pour lattaquant est la reconstitution de la cl de chiffrement. On peut aussi demander lattaquant de reconstituer tout
ou partie de ltat interne. Lobjectif correspondant lintuition formule ci-dessus est plus ais
remplir pour lattaquant. Il sagit pour lui de distinguer les sorties du GPA de donnes alatoires. On parle dattaques par distingueur. Lattaquant remplit lobjectif sil est en mesure de
distinguer les sorties de lalgorithme de chiffrement par flot de suites parfaitement alatoires
avec une probabilit loigne de manire notable de la valeur 21 , qui correspond sa probabilit
de succs quand il rpond de manire alatoire. Outre rvler une caractristique non-alatoire
des sorties du GPA, ce type dattaques est intressant dans la mesure o il peut souvent tre
traduit en une attaque permettant de recouvrer une partie de ltat interne du GPA, comme
nous le verrons au chapitre 3.
1.2. Historique
1.2
Historique
On donne ici un panorama rapide de lhistoire des algorithmes de chiffrement par flot en
dcrivant quelques principes de conception.
1.2.1
On commence par dcrire les constructions bases sur des registres dcalage rtroaction
linaire, plus communment dsigns sous lacronyme anglais LFSR, pour linear feedback shift
register. Ces primitives peuvent tre vues comme des GPA lmentaires et sont utilises comme
briques de base de nombreux algorithmes de chiffrement par flot du fait de leurs bonnes proprits
[99, Section 6.2.1] : distribution statistique des bits de sorties, garantie sur la priode de la suite
des bits de sorties, etc.
Malgr ces bonnes proprits statistiques, un LFSR ne peut tre utilis comme algorithme
de chiffrement par flot. En effet, de par la linarit de la fonction de mise jour, il est ais
de reconstituer le polynme de rebouclage du LFSR. Par exemple, lalgorithme de BerlekampMassey [93], dont une description est donne en section 2.2.4, permet de reconstruire le polynme
de rebouclage du LFSR le plus court gnrant une suite donne. tant donne la taille L du
LFSR, il suffit de collecter 2L bits de sortie afin de pouvoir dterminer de manire unique toutes
les caractristiques du LFSR.
On emploie donc les LFSR dans des constructions introduisant de la non-linarit dans la mise
jour de ltat interne. Cette non-linarit est introduite soit par lutilisation dune fonction nonlinaire, soit en rendant irrgulire lavance des LFSR ou lapplication de la fonction dextraction.
On rencontre dans la littrature les constructions classiques donnes ci-dessous. Ces principes
de constructions peuvent tre utiliss en parallle dans un mme algorithme.
Construction par combinaison. Plusieurs LFSR voluent en parallle dans ltat de lalgorithme. chaque tape, une fonction est applique sur les sorties des LFSR pour former la
sortie de lalgorithme, cf Figure 1.1. Parmi les algorithmes de chiffrement par flot construits sur
LFSR 1
LFSR 2
..
.
Pseudo-ala
LFSR n
Figure 1.1 Algorithme de chiffrement par flot construit selon le principe de combinaison
10
Chapitre 1. Prliminaires
ce principe citons le gnrateur de Geffe [99, Example 6.50], bas sur 3 LFSR et pour lequel
la fonction de calcul de la sortie est la fonction choix, et Achterbahn [66] o les LFSR sont
remplacs par des registres dcalage rebouclage non-linaire.
Construction par filtrage. Un LFSR constitue lintgralit de ltat du GPA, mais la fonction dextraction classique est remplace par une fonction non-linaire prenant ces entres dans
ltat du LFSR, cf Figure 1.2.
LFSR
F
Pseudo-ala
Figure 1.2 Algorithme de chiffrement par flot construit selon le principe de filtrage
Le principe de construction du LFSR filtr se rencontre dans de nombreux algorithmes
(Hitag-2, Crypto-1 [67], Sfinks [33], WG [70], ...).
Construction par avance irrgulire. La fonction de mise jour dun LFSR classique
consiste appliquer de manire dterministe une opration de dcalage et de rebouclage. Afin
dintroduire de la non-linarit, certains algorithmes font dpendre le comportement de lavance
du LFSR dune entre auxiliaire, cf Figure 1.3.
Horloge
&
LFSR 2
LFSR 1
Pseudo-ala
NOT
Horloge
&
LFSR 3
Figure 1.3 Algorithme de chiffrement par flot construit selon le principe davance irrgulire
Suivant les cas, lavance peut tre tout simplement inhibe (A5/1, A5/2...) ou le polynme
de rebouclage peut varier (MICKEY [8], K2 [84],...)
Construction par dcimation. Les constructions bases sur le principe de dcimation sont
analogues aux constructions par avance irrgulire, mais cest prsent sur la fonction dextraction que porte lirrgularit de traitement. Lextraction dlments de la suite chiffrante nest
pas ralise chaque tape, mais contrle par une partie de ltat du GPA, cf Figure 1.4.
De nombreux algorithmes font usage de ce principe (Shrinking Generator [41], Self-Shrinking
Generator [98], LILI [132], Decim [14], ...).
1.2. Historique
11
LFSR 2
Pseudo-ala
LFSR 1
Figure 1.4 Algorithme de chiffrement par flot construit selon le principe de dcimation
1.2.2
Au milieu des annes 1980, Blum, Blum et Shub proposent un gnrateur pseudo-alatoire
dont la scurit peut tre rduite au problme de la factorisation [26]. Bien que la rduction
au problme mathmatique sous-jacent reste asymptotique et ne permette pas de dimensionner
lalgorithme pour tirer parti de la rduction (problme qui sera lev plus tard [130]), et malgr un
dbit mdiocre de lalgorithme comparativement aux algorithmes de chiffrement par flot usuels,
BBS traduit une proccupation grandissante dobtenir des algorithmes symtriques disposant
dune preuve de scurit. Lalgorithme QUAD [16] propos en 2006 reprend galement cette
ide avec une rduction au problme de la rsolution de systmes multivaris quadratiques et de
meilleures performances.
1.2.3
Dans la premire moiti des annes 1990, on a assist au dploiement de nombre de technologies de communication sans fil (GSM, Wifi, Bluetooth,...). Ces technologies, faisant usage dondes
lectromagntiques pour transmettre des informations, sont bien plus vulnrables aux scnarios dcoute passive que les communications utilisant un mdium matriel (ethernet, ...). Afin
de compenser cette vulnrabilit accrue, les standards dcrivant ces technologies prvoient des
mcanismes pour protger les communications en confidentialit. La premire gnration dalgorithmes de confidentialit mise en uvre est constitue presque exclusivement dalgorithmes
de chiffrement par flot, parfois sous-dimensionns :
les algorithmes A5/1 et A5/2 protgent les communications GSM entre terminaux mobiles
et stations de base ;
la scurit du WEP, Wired Equivalent Privacy, qui protge initialement les communications
802.11, i.e. du WiFi, repose sur lalgorithme RC4, complt pour pouvoir recevoir un IV ;
la norme Bluetooth repose sur lalgorithme E0.
Ces algorithmes prsentent des dfauts qui ont conduit leur cryptanalyse aprs leur publication.
A5/1 et A5/2 sont deux algorithmes sous-dimensionns (taille de cl de 64 bits, taille
dtat interne de 64 bits pour A5/1, 81 bits pour A5/2. La structure de A5/2 permet
de plus de raliser une attaque algbrique trs efficace [10]. Le prcalcul dune attaque
gnrique de type compromis temps-mmoire, cf section 1.3.1.2, a rcemment t ralis
pour A5/1 [106], et les tables issues de ce prcalcul ont t rendues publiques. Lutilisation
de ces tables permet de retrouver la cl utilise par lalgorithme A5/1 pour chiffrer une
communication GSM.
la procdure de mise la cl de RC4 est minimaliste. Par consquent, les premiers octets de
suite chiffrante font fuire beaucoup dinformation sur les octets de cls. Une srie dattaques
[64, 85, 135, 127] a conduit au dveloppement dun nouveau standard de protection, le
WPA, remplaant progressivement le WEP.
12
1.2.4
Chapitre 1. Prliminaires
Un autre principe de construction dalgorithmes de chiffrement par flot est lutilisation dune
primitive cryptographique sous-jacente dans un mode adapt. On rencontre notamment les
modes de chiffrement de type flot , qui permettent de gnrer une suite chiffrante laide
dun algorithme de chiffrement par bloc. Ainsi, le mode OFB itre un algorithme de chiffrement
par bloc utilisant une cl sur un bloc de message initialis avec un IV. Le mode compteur chiffre
les valeurs successives dun compteur initialis avec un IV. Dans les deux cas, la concatnation
des blocs de chiffr successifs forme la suite chiffrante.
Le candidat Salsa [17] la comptition eSTREAM, cf section 1.2.5, peut galement tre vu
comme une construction de ce type : les valeurs successives dun compteur, initialis avec la cl
et lIV, sont haches pour obtenir une suite chiffrante.
1.2.5
Au dbut des annes 2000, de nombreux rsultats de cryptanalyse contre les algorithmes
de chiffrement par flot industriels et quelques propositions acadmiques remettent fortement en
question le principe mme des algorithmes de chiffrement par flot. Ceci conduit le projet europen
ECRYPT lancer un projet dtude des algorithmes de chiffrement par flot, le projet eSTREAM
[60]. Ce projet sest droul sous forme dune comptition. Suite un appel candidatures, 34
algorithmes de chiffrement par flot ont t soumis.
La conception de ces algorithmes vise deux profils, o lon estime que les algorithmes de
chiffrement par flot peuvent offrir de meilleures performances que les algorithmes de chiffrement
par bloc. Les algorithmes concourant dans le profil matriel ont pour objectif une implmentation
matrielle (FPGA, ASIC, ...) trs compacte. Les algorithmes concourant dans le profil logiciel
recherchent des dbits en ligne, i.e. aprs tablissement de ltat initial, trs levs.
Lobjectif du projet eSTREAM tait moins la dfinition dun standard que lavancement de
ltat de lart sur les algorithmes de chiffrement par flot. En consquence, les candidats ont eu la
possibilit, au cours de la comptition, dvoluer et de rparer dventuelles faiblesses dtectes
suite leur analyse, afin de permettre la poursuite de ltude de principes de conception innovants. La liste des concurrents a t progressivement rduite afin de favoriser la concentration
des efforts de cryptanalyse sur les candidats les plus prometteurs. La fin du projet a vu la slection de huit algorithmes [7], quatre pour chaque profil. Les algorithmes retenus sont cependant
encore considrs comme immatures et lobjectif est plus de fournir un ensemble dalgorithmes
et de principes de conception tudier plus avant. Si la cryptanalyse pratique de lun de ces
algorithmes peu aprs la fin de la comptition [73] confirme ce sentiment, il reste indniable
que la comptition eSTREAM a permis de faire progresser ltat de lart de la cryptographie
des algorithmes de chiffrement par flot et de restaurer quelque peu la confiance dans ce type
dalgorithme comme latteste linclusion de SNOW 3G dans la suite de confidentialit du 3GPP.
1.3
On prsente ici dans les grandes lignes les principes de cryptanalyse les plus communs des
algorithmes de chiffrement par flot.
1.3.1
13
Attaques gnriques
Attaque directe
Recherche exhaustive sur la cl. Il sagit l dune attaque lmentaire qui sapplique tout
algorithme cryptographique utilisant des tailles de cls fixes. Lattaque consiste tester toutes
les cls possibles. Elle est ralisable lorsque :
lattaquant dispose des spcifications de lalgorithme cryptographique ;
lattaquant dispose dun test darrt, lui permettant de dtecter la cl utilise avec une
probabilit de fausse alarme faible. Pour la recherche exhaustive applique aux GPA,
lattaquant doit disposer dune quantit de suite chiffrante correspondant la taille de la
cl.
Le nombre de cls dun algorithme cryptographique doit tre grand devant le nombre doprations ralisable en pratique avec les moyens de calculs actuels et envisageables moyen terme.
Des calculs requrant de lordre de 264 oprations ont t raliss par le pass par des projets
de calcul distribu [56]. On estime quun calcul ncessitant 2128 oprations nest pas ralisable
moyen terme. Une taille de cl de 128 bits permet donc de se prmunir moyen terme contre
la recherche exhaustive.
Il faut noter que dans de nombreux contextes cette attaque reste la meilleure attaque en
pratique contre un algorithme, mme quand il existe de meilleures attaques thoriques. Ceci est
d trois points :
Cette attaque ne requiert que trs peu de donnes. Il est beaucoup plus simple dobtenir
les informations ncessaires une recherche exhaustive (clair connu), que de raliser des
attaques ayant une forte complexit en ligne , cest dire ayant besoin dun nombre
important dinteractions avec lalgorithme mis la cl, par exemple sous la forme de
requtes de chiffrement ou de dchiffrement.
Cette attaque se paralllise naturellement, ce qui permet de profiter au maximum de
laugmentation de la puissance de calcul disponible. Ce nest pas le cas dalgorithmes
requrant laccs une mmoire de taille importante.
De nombreux cryptosystmes pratiques sont sous-dimensionns ou utilisent des cls de
faible entropie.
Recherche exhaustive sur ltat interne. Dans la majorit des GPA, la cl utilise intervient uniquement lors de linitialisation de lalgorithme et permet de calculer un tat initial. Cet
tat est ensuite soumis aux fonctions dvolution et dextraction. La connaissance de cet tat
permet donc de reconstituer la suite chiffrante correspondant la cl. Dans les cas o la fonction
davance est inversible, la connaissance dun tat un instant quelconque permet de remonter
cet tat initial. Ltat du GPA peut donc galement faire lobjet dune recherche exhaustive et
14
Chapitre 1. Prliminaires
linformation obtenue permet de driver les bits suivants et prcdents de la suite chiffrante. On
remarque donc que la taille de ltat interne doit donc tre au moins gale la taille de la cl.
Collision sur lIV. La proprit requise des IV du point de vue de la confidentialit des
donnes protges par un algorithme de chiffrement par flot est la non-rptition dun IV pour
une cl donne. Lorsque ces IV sont tirs de manire alatoire, ils doivent tre dimensionns de
telle sorte quune collision sur ces IV napparaisse quavec une probabilit ngligeable.
1.3.1.2
Compromis temps-mmoire-donne
Les techniques dcrites ci-dessous trouvent leur origine dans lanalyse de fonctions de chiffrement par bloc. Lobjectif est de diminuer la complexit temporelle de linversion dune fonction
f difficile inverser, par exemple la fonction qui une cl associe le chiffr dun message fixe,
travers lutilisation dun prcalcul dont le rsultat est stock en mmoire [74, 107]. On rappelle
ci-dessous le principe de ces compromis temps-mmoire ainsi que leurs caractristiques.
On considre une fonction f : E F , avec |E| |F |. On considre galement des fonctions
de F dans E appeles fonctions de rduction. On note N le cardinal de E. Lobjectif est dinverser
la fonction f . Pour ce faire, on ralise un prcalcul de complexit P et on stocke en mmoire
le rsultat de ce prcalcul. On note M la quantit de mmoire requise. Puis pour une instance
donne du problme, on cherche une solution en ralisant un calcul de complexit en temps T .
Lapplication de compromis temps-mmoire aux algorithmes de chiffrement par flot a deux
spcificits :
on dispose de deux cibles, la cl et ltat interne. Bien que par construction ces deux
donnes soient quivalentes, le dimensionnement de la cl et de ltat interne peut rendre
prfrable dattaquer lune des deux valeurs.
pour une cl, ou pour une paire (cl, IV) donne, on peut disposer dune quantit importante de suite chiffrante, quantit que lon notera D. Quand la fonction davance est
inversible, recouvrer ltat interne du GPA un instant donn, par exemple linstant initial, est quivalent le recouvrer nimporte quel instant. On peut alors utiliser la suite
chiffrante disponible pour rsoudre une inversion parmi D, mettant ainsi profit la quantit de donnes disponible pour raliser des compromis temps-mmoire-donne.
Dans la suite, on sattache donner les ordres de grandeur et relations liant les diffrents
paramtres du problme en supposant P, M, T et D grands devant log2 (N ). On omet les termes
ngligeables et les termes logarithmiques.
Compromis de Babbage-Goli. Le compromis de Babbage-Goli [6, 69] est un compromis
temps-mmoire-donne attaquant ltat interne dun algorithme de chiffrement par flot. Plus
prcisment, on considre n la taille en bits de ltat interne, lensemble E = {0, 1}n des N = 2n
valeurs dtats internes du GPA, la fonction davance du GPA : E E et la fonction
dextraction du GPA : E {0, 1}. On construit alors la fonction l qui associe un tat
interne la fentre de l bits gnre par le GPA initialis par cet tat interne :
l : E E,
x ( 0 (x), 1 (x), . . . , l1 (x)).
La fonction = n est une fonction difficile inverser. Lide du compromis de BabbageGoli est de recouvrer un tat interne correspondant une fentre de n bits parmi les D fentres
disponibles.
15
x = x0 x1 x2 . . . xt = y.
Lide du prcalcul est de construire un certain nombre de chanes de ce type et, pour chacune
de ces chanes, de stocker la valeur initiale et la valeur finale. Ces chanes gnralisent les paires
utilises par le compromis de Babbage-Goli. On remarque quelles peuvent tre utilises pour
inverser toute valeur z {xi , 1 i t} : on peut dtecter que z fait partie de la chane en
16
Chapitre 1. Prliminaires
vrifiant quil existe 0 j < t tel que ( f )j (z) = y. Un antcdent de z est alors donn par
( f )tj1 (x).
Construction dune table de prcalcul, collisions. Idalement, le prcalcul doit construire des chanes de valeurs de telle sorte que toutes les valeurs de E apparaissent dans les
chanes. 1 Une premire ide nave consiste construire une table de m chanes de longueur t
de telle sorte que mt = N . On sattend rencontrer N valeurs mais cette intuition est errone
en raison de lapparition de collisions entre les valeurs rencontres. Ces collisions ont un impact notable sur le nombre de valeurs distinctes apparaissant au cours du prcalcul car deux
chanes distinctes x1 , x2 ayant deux valeurs en collision x1i = x2j partagent une mme fin de
chane x1i+1 = x2j+1 , etc. La couverture de lespace E correspondant chaque ligne, gale t en
labsence de collision, diminue notablement quand des collisions commencent apparatre. Afin
de dpasser ce problme, on peut utiliser les deux stratgies suivantes.
Compromis de Hellman. Dans le compromis de Hellman, lapproche adopte consiste
limiter la taille des tables de prcalcul construites. On fixe m pour arrter la construction
dune table partir du moment o des collisions commencent apparatre. Lorsquon ajoute
une chane une table comptant m chanes sans collision, la probabilit dapparition dune
collision est de lordre de t mt/N . On fixe donc la taille limite m par la relation mt2 = N .
Lespace des valeurs de E couvert par les chanes de cette table est mt = N/t, qui constitue
une partie relativement faible de lespace des valeurs dentre. Si on se contente de cette table,
la probabilit de succs de lattaque sera de 1/t. Hellman rsout le problme en construisant
diffrentes tables en faisant varier la fonction de rduction . Ceci fait disparaitre le problme
de fusion de chanes puisquune collision entre deux chanes de tables diffrentes nentrane plus
automatiquement la fusion des fins des chanes. Comme chaque table couvre une fraction 1/t de
lespace des valeurs dentre de f , il faut construire t tables. Lorsquon recherche un antcdent
il faut reproduire la procdure de recherche pour chacune des t tables. On peut alors estimer le
cot du compromis temps-mmoire. On a P = t mt = N , M = t m, T = t t. Le compromis
peut scrire N 2 = T M 2 .
Compromis de Oechslin. Dans le compromis de Oechslin on construit toujours une seule
table, mais on fait varier en chaque position. Ceci a pour consquence de rduire limpact dune
collision au cours de la construction des chanes. Pour quune collision entrane une fusion de
lignes, elle doit avoir lieu en la mme position. On peut alors fixer m et t tel que P = mt = N .
On a galement M = m. La procdure de recherche dun antcdent doit tre adapte. En effet,
le cot de dtection dun lment en position i est t i car la dtection dun lment en position
i 1 dans une chane ne profite plus du test ralis pour dtecter un lment en position i. Par
P
consquent T = ti=1 i t2 . On retrouve la mme relation de compromis N 2 = T M 2 . Un
2n
choix classique pour raliser ce compromis est T = M = 2 3 . Le prcalcul dans les deux cas
a un cot de lordre dune recherche exhaustive. Ces deux compromis peuvent tre vus comme
des mthodes permettant de factoriser leffort fait par une recherche exhaustive pour acclrer
les recherches suivantes.
Compromis de Biryukov-Shamir. Ce compromis est une adaptation du compromis de
Hellman reprenant lide du compromis de Babbage-Goli, i.e. recouvrer un tat interne parmi
1. En pratique, on se contente de couvrir une fraction suffisante des valeurs de E, en acceptant une certaine
probabilit dchec linversion de f par le compromis.
17
les D parcourus pendant la gnration des donnes disponibles. Disposant de D cibles, il nest
plus ncessaire de couvrir lintgralit de E au cours du prcalcul. Si le prcalcul couvre une
fraction 1/D de E, lattaque a une bonne probabilit de russite. En adaptant le compromis de
Hellman, on a toujours la relation N = mt2 , mais le nombre de tables ncessaire pour couvrir
N/D valeurs est prsent t/D. La mmoire ncessaire est adapte en consquence : M = mt/D.
La complexit du prcalcul sen trouve galement rduite : P = N/D. Pour la partie recherche
de solution il faut tenir compte de ce quon travaille avec moins de tables, mais que le calcul
doit tre ralis pour chacune des D fentres de suites chiffrantes, soit T = t2 D/D = t2 .
Lquation du compromis scrit prsent N 2 = T M 2 D2 . Un point classique du compromis est
n
2n
D = M = 2 3 , T = 2 3 . On remarque que, contrairement au compromis de Hellman, le prcalcul
2n
est ici plus rapide que la recherche exhaustive, P = 2 3 , ce qui fournit une attaque globale plus
rapide que la recherche exhaustive. La taille de ltat interne doit donc tre suprieure au niveau
de scurit vis.
Problmes lis limplmentation pratique dun compromis temps-mmoire
Lors de limplmentation pratique de compromis temps-mmoire-donne, les diffrents
paramtres ne jouent pas le mme rle. Les paramtres les plus importants et restrictifs en
pratique sont la mmoire et la quantit de donnes disponibles.
Impact du paramtre M . Si on considre les implmentations de grande mmoire disposant dun accs alatoire, ncessaire pour raliser la recherche dun lment dans une table,
on constate que plus la taille de la mmoire est grande, plus le temps daccs est important. On
donne en table 1.1 des ordres de grandeur de taille de mmoire et de temps daccs pour des
types de mmoire trs rpandus. Dans le cas du compromis de Hellman, la complexit en temps
est estime en nombre de calculs de la fonction f . Cependant, on fait l lhypothse implicite que
le temps de lvaluation de la fonction f , not Tf , est le terme prdominant dans la complexit
temporelle. En supposant que la mmoire est une table de hachage dont la cl est la valeur de
fin de chane, que le test dappartenance dune valeur lensemble des valeurs de fin de chane
requiert C accs mmoire et en notant TM = g(M ) le temps dun accs mmoire (qui est fonction
de la taille de la mmoire, de la technologie utilise, etc) on peut crire Thorloge = T (Tf +CTM ).
Ceci modifie donc le compromis. Dans le cas gnral, cette description reste encore imparfaite,
car elle ne prend pas en compte la possibilit de parallliser certains aspects du calcul, ce qui
pnalise galement les algorithmes utilisant de grandes mmoires accs alatoire [18]. Tous ces
lments concourent choisir en pratique des points du compromis avec M relativement petit
et introduire des optimisations permettant de rduire M . La technique des points distingus,
mentionne par Rivest dans [53], modifie le compromis de Hellman en rendant t variable. La
construction dune chane commence en un point et sarrte en un point dont la reprsentation en mmoire est compacte. Le taux de compression choisi donne la moyenne des longueurs
de chanes. Un exemple rcent dimplmentation pratique de compromis temps-mmoire est le
calcul de table pour lalgorithme de chiffrement du GSM A5/1 [106].
Impact du paramtre D. Le paramtre D joue galement un rle important dans limplmentation dune attaque dans un scnario pratique. En effet, si dans les modles thoriques utiliss pour raliser lanalyse de scurit de gnrateurs pseudo-alatoires les bits de suite chiffrante
sont mis disposition de lattaquant, lobtention de ces donnes dans une attaque pratique est
plus difficile et plus contraint. Il nest pas possible dnoncer dordre de grandeur gnrique
puisque tout dpend du contexte dapplication. Par exemple, dans le contexte du WEP, algorithme de chiffrement des communications WiFi, lattaquant obtient de lordre dune dizaine
doctets de suite chiffrante par paquet en examinant le chiffr des en-ttes des paquets protgs
18
Chapitre 1. Prliminaires
Type
Cache L1
Mmoire principale
Disque dur
Bande magntique
Technologie
SRAM
DRAM
Stockage Magntique
Stockage Magntique
Taille (bits)
220
230
237
242
Table 1.1 Ordre de grandeur des temps daccs et capacit des technologies courantes de
mmoire
(clair connu) [135]. Dans le cas du GSM, un canal de synchronisation mettant des messages en
partie prdictibles est chiffr par la cl de protection des donnes, ce qui fournit une bonne source
de clairs connus [10]. Lorsque D est limit par le contexte demploi, lavantage du compromis de
Biryukov-Shamir sur le compromis de Hellman est faible.
1.3.2
On prsente dans la fin de ce chapitre des classes dattaques exploitant la structure interne
des GPA tudis.
Les attaques par corrlation sappliquent aux algorithmes de chiffrement par flot construits
sur des primitives sous-jacentes linaires, comme des LFSR. Elles tirent partie de cette linarit pour essayer de linariser compltement le comportement de lalgorithme. Lattaquant tente
de remplacer les composants non-linaires de lalgorithme par des composants linaires qui approximent leurs comportement. Il compare ensuite les sorties de lalgorithme avec celles dune
simulation linarise en faisant une hypothse sur une partie de son tat interne. La concordance
entre ces sorties valide lhypothse sur ltat interne.
On dtaille ici titre dexemple lattaque par corrlation [131] contre le gnrateur de Geffe
[99, Example 6.50]. Le gnrateur de Geffe est un algorithme de chiffrement par flot bas sur
la combinaison de trois LFSR dfinis sur F2 . La fonction de combinaison utilise est la fonction
choix, i.e.
f (x1 , x2 , x3 ) = x1 x2 (1 x1 )x3 .
Cette fonction prsente des approximations linaires ayant un biais relativement lev, cest
dire dont la probabilit est relativement loigne de 21 :
3
Prx [f (x) = x2 ] = Prx [f (x) = x3 ] = .
4
une probabilit p, on associe le biais dfini par p = 12 (1 + ). Le biais du gnrateur de Geffe
est 21 . On notera a = b [] une galit entre deux valeurs vrifie avec probabilit 12 (1 + ).
Ce biais important et le fait que lapproximation linaire de f ne fasse intervenir quune seule
variable permet de mener une attaque par corrlation. En effet, on peut approximer le GPA par
le LFSR 2 dont la sortie est bruite avec probabilit 14 , cf Fig 1.5.
LFSR 2
X2
Canal
bruit
19
On note ni la taille du LFSR 2. En supposant que lattaquant dispose de D bits (zi )D1
i=0 de
sortie du GPA, il peut excuter lalgorithme 1.
Algorithme 1 Algorithme de recouvrement de ltat initial du LFSR
Entre : la dfinition dun LFSR (taille, polynme de rebouclage)
D1
D bits de suite chiffrante (zi )i=0
Sortie : ltat initial du LFSR
pour tout S initial non nul du LFSR 2 faire
Gnrer la suite des sorties du LFSR (xi )D1
i=0
Calculer la concordance entre la suite chiffrante et la sortie du LFSR 2, cest dire ` =
#{0 i < D|xi = zi }/M .
si ` > `limit alors
retourner S
fin si
fin pour
Dans le cas o lalgorithme considre une valeur initiale errone du LFSR, les suites (xi )
et (zi ) sont indpendantes et ` suit la distribution de la moyenne de D bits suivant une loi de
Bernoulli de paramtre 12 . Dans le cas o lalgorithme considre la bonne valeur initiale du LFSR,
` suit une loi similaire, mais le paramtre des lois de Bernoulli est 12 (1 + ). Lorsque D est grand,
on peut approximer ces lois par des gaussiennes de moyenne 12 (resp. 12 (1 + )) et dcart type
q
q
(12 )
1
1
4D (resp.,
4D ). On peut sattendre ce que la valeur de ` soit proche de 2 (1 + ) lorsque
la bonne hypothse est effectue, et proche de 12 lorsquelle est errone. Lorsque M augmente,
lcart type diminue de telle sorte que les valeurs de ` sont de plus en plus concentres autour de
leur valeur moyenne. Le critre de slection choisi va conduire raliser deux types derreurs :
fausses alarmes : une fausse alarme se produit lorsquune hypothse erronne est considre comme la valeur initiale du LFSR.
non dtection : une non-dtection se produit lorsque lhypothse correcte nest pas reconnue comme la valeur initiale du LFSR.
Dans le cas des attaques par corrlation, ces deux causes derreur ne jouent pas le mme
rle. En effet, au cours de lexploration des valeurs initiales possibles du LFSR, la probabilit
a priori de considrer une valeur errone est trs grande devant la probabilit de considrer la
bonne hypothse. Par consquent si on veut mener lattaque, il est ncessaire de choisir la limite
`limit et le nombre dchantillons D tels que
lesprance du nombre de fausses alarmes sur lensemble des itrations soit proche de 0 ;
la probabilit de non-dtection ne soit pas trop importante.
Afin davoir un taux de fausses alarmes et un taux de non-dtection plus petits que 12 , on
fixe la contrainte
1
1
`limit (1 + ).
2
2
Pour une hypothse sur ltat initial, on peut exprimer la probabilit de fausse alarme pf a
et la probabilit de non-dtection pnd en fonction de M et au moyen de la fonction derreur
complmentaire :
Z +
2
2
erfc(z) =
et dt,
z
pf a = 21 erfc(2 2(`limit 12 ) D)
20
Chapitre 1. Prliminaires
Pour une probabilit de fausse alarme et de non dtection maximales, on dduit la quantit
dchantillons D ncessaire en fonction de . Par exemple, pour un gnrateur de Geffe avec un
LFSR de taille 45 bits, on a = 12 et on souhaite pf a 245 et pnd 0, 1. On en dduit
(
1
)
2(`
M
2
limit
2
4
2
1
( (1 + ) `limit ) M
12 2
5.35,
0.91,
+
4( 25.35
2
73.
0.91(12 ) 2 1
)) 2 ,
2 2
En gnral est petit et le terme en 12 domine la borne infrieure. On retient que la quantit
de donnes D ncessaires pour raliser cette attaque est de lordre de 12 . Par ailleurs la complexit
en temps de cette attaque est de lordre de 12 2n et elle permet de recouvrer ltat du LFSR. Dans
le cas du gnrateur de Geffe, une attaque du mme type peut tre mene pour recouvrer les
tats initiaux des LFSR 2 et 3. Une fois les LFSR 2 et 3 connus, on peut recouvrer par recherche
exhaustive ltat initial du LFSR 1. Finalement, lattaque par corrlation du gnrateur de Geffe
permet de recouvrer son tat interne avec complexit 2n1 + N 2n2 + N 2n3 ce qui constitue un
gain notable sur la recherche exhaustive, de complexit 2n1 +n2 +n3 lorsque ltat est scind de
manire quilibre entre les 3 LFSR.
Pour pouvoir mener des attaques par corrlation, il faut pouvoir trouver des relations linaires
biaises entre bits de sortie et une partie de ltat interne dont le biais ne soit pas trop important.
Ce type dattaque nest pas applicable directement quand il nest pas possible de scinder ltat
interne du GPA facilement, par exemple dans le cas dun LFSR filtr, mme en prsence dune
fonction dextraction ayant une approximation linaire fortement biaise. Pour pouvoir attaquer
dans ce cas, on a recours une gnralisation des attaques par corrlation, les attaques par
corrlation rapides [96, 97].
De la manire la plus gnrale possible, lexistence dapproximations linaires biaises reliant
k bits de ltat interne et les bits de sortie permet de construire une instance dun problme
de dcodage. On note xti la valeur linstant t du bit i de la partie de ltat interne voluant
de manire linaire. On note L la taille de cette partie de ltat. Lvolution de ltat interne
tant linaire, on peut exprimer facilement ses valeurs en fonction des valeurs initiales des bits
de ltat interne. On note la fonction dvolution linaire de ltat interne.
Par ailleurs on note zt le bit de suite chiffrante produit linstant t. La possibilit de raliser
une attaque par corrlation repose sur lexistence dapproximations de combinaisons linaires
des bits de ltat interne par des bits de sortie.
titre dexemple,
dans le cas du LFSR filtr, toute approximation linaire de la fonction boolenne utilise
permet de relier la sortie linstant t ltat linstant t et donc ltat initial avec un
biais gal celui de lapproximation linaire de la fonction.
t (x0 ) a = zt [].
dans le cas de GRAINv0 [15], en combinant deux bits de sortie on obtient 16 approximations linaires de mme biais
t (x0 ) aj = zt zt+80 [28.67 ], 1 j 16.
21
i=0
Lobjectif de lattaquant est de retrouver x = (x0 , . . . , xL1 ) partir de ces approximations. Considrons le code linaire C de paramtre (M, L), de matrice gnratrice A =
(ai,j )0i<L,0j<M . Le problme que lattaquant doit rsoudre est le dcodage du mot f =
(f 0 (z), . . . , f M 1 (z)). Lapproximation peut-tre interprte comme la transmission du mot x0 A
travers un canal binaire symtrique de probabilit derreur 21 (1 ). Intuitivement, la quantit
dinformation porte par une approximation est gale la capacit du canal de transmission qui
2
peut tre approxime par 2 log
2 lorsque est petit. Pour reconstituer lintgralit de ltat, il
faut donc collecter assez dapproximations pour que la quantit dinformation soit suprieure
la taille de ltat recouvrer. En suppposant les approximations indpendantes, on obtient
L
M 2
,
2 log 2
2L log 2
.
2
Cependant cela suppose lexistence dalgorithmes de dcodage efficace. Dans le cas des attaques par corrlation simple, lalgorithme de dcodage utilis est le dcodage maximum de
vraisemblance, dont la complexit est en 2L . Lorsque cette complexit est trop leve, on a recours une tape intermdiaire entre la collecte dapproximations et la rsolution du problme :
la construction de tests de parit. Lide est de combiner les approximations collectes de manire
obtenir un code plus facile dcoder [78, 39]. La forme usuellement retenue est lexpression
dun bit de ltat recouvrer en fonction de bits de la suite chiffrante et dun sous-ensemble B
de taille B L de ltat interne :
X
xj = f j (z)
xi ai,j [0 ].
iB
Lapplication dun dcodage maximum de vraisemblance est plus aise sur le code constitu
des quations de parit car seule la partie B de ltat interne est vise dans un premier temps par
le dcodage et le recouvrement du reste de ltat est facilit une fois la partie B de ltat obtenue.
On remarque galement que la combinaison dapproximations linaires a un cot, puisquon
obtient des approximations linaires de biais plus faible. La perte de qualit des approximations
linaires peut tre quantifie par le lemme suivant, connu sous le nom de piling-up lemma et qui
peut tre nonc de la manire suivante dans le cas boolen (K = F2 ) :
Lemme 1 Soit Xi , 1 i h, h variables alatoires indpendantes distribues selon des lois de
L
Q
Bernoulli de biais i . Alors hi=1 Xi est une loi de Bernoulli de biais hi=1 i .
Ainsi la combinaison de h approximations de biais produit une approximation de biais
Lide sous-jacente aux algorithmes de construction de tests de parit est de construire des
approximations linaires faisant intervenir les mmes bits de ltat interne, sauf pour les bits du
sous-ensemble de taille B.
h .
22
Chapitre 1. Prliminaires
Lalgorithme dcrit en [78] ralise un compromis temps-mmoire pour trouver des collisions
sur les bits de ltat interne ne faisant pas partie du sous-ensemble de taille B entre deux
combinaisons dapproximations, chaque collision donnant un test de parit. Une optimisation
algorithmique permet de diminuer la quantit de mmoire ncessaire la ralisation de ce compromis temps-mmoire [39]. Cette phase de construction de tests de parit ne dpend pas des
sorties de lalgorithme de chiffrement par flot et peut tre prcalcule.
Le mme article donne galement une mthode pour valuer efficacement les tests de parit
au moyen de la transorme de Walsh rapide.
1.3.3
Attaques algbriques
Une grande partie des algorithmes cryptographiques symtriques peuvent compltement tre
dcrits par un systme dquations algbriques multivaries dans F2 , dont les variables sont
des bits de cl ou dtats internes lalgorithme et les quations sont constitues partir des
spcifications de lalgorithme et les donnes publiques (couple clair-chiffr, suites chiffrantes,...).
Une voie dattaque envisager est la rsolution directe dun tel systme par un adversaire.
Cette approche a fait lobjet dune grande attention [48, 40] dans le domaine de la cryptanalyse
des algorithmes de chiffrement par bloc suite la slection par le NIST de Rijndael comme
standard de chiffrement [103]. Cet algorithme de chiffrement par bloc possde une structure
algbrique caractristique, qui permet de construire partir dune paire (clair, chiffr) un systme
quadratique dont la rsolution permet le recouvrement de la cl. Les attaques algbriques sont
particulirement attirantes du fait du peu de donnes quelles ncessitent en thorie : un systme
construit partir de quelques paires (clair, chiffr) dispose en effet a priori dune solution unique
correspondant la cl de lalgorithme. Cependant, en dehors de rsultats sur des algorithmes
rduits, cette approche na jusqu prsent pas permis de casser dalgorithmes de chiffrement par
bloc modernes, en raison de la taille des systmes algbriques produits et de la grande complexit
de la rsolution dun systme dquations multivaries [44].
Dans le cadre du chiffrement par flot, des rsultats plus intressants ont pu tre obtenus. Ils
dcoulent :
de la possibilit de construire des systmes algbriques surdtermins. En effet, chaque bit
de suite chiffrante fournit une nouvelle quation. On peut donc construire des systmes
comportant beaucoup plus dquations que dinconnues. Si on peut collecter plus dquations que le nombre de monmes en les inconnues de degr d, degr maximal des fonctions
boolennes rencontres, on peut rsoudre le systme par linarisation, i.e. en considrant
chaque monme comme une variable indpendante ;
de la structure des systmes dquations gnres : on peut parfois retraiter le systme
dquations obtenu pour obtenir un systme dquations de degr moindre. On parle dattaques algbriques rapides [45, 72]. Ces attaques ont conduit dfinir des critres de
scurit additionnels pour les composants des algorithmes de chiffrement par flot.
On dcrira plus en dtail au chapitre 2 lapplication de ces attaques au cas du LFSR filtr.
1.3.4
Attaques diffrentielles
23
Lapplication dattaques diffrentielles contre les algorithmes de chiffrement par flot est plus
rcente et a t formalise par Muller en 2004 [102]. En effet, pour les premiers algorithmes de
chiffrement par flot, le seul paramtre du GPA est la cl, paramtre sur lequel lattaquant nexerce
aucun contrle dans les scnarios dattaque traditionnels. Linclusion part entire des IV dans
les procdures dinitialisation des GPAs et lutilisation de mcanismes introduisant clair (chiffrement par flot authentifi) ou chiffr (algorithme de chiffrement par flot auto-synchronisant) dans
ltat du GPA qui fournit lattaquant un contrle nouveau sur ltat du GPA, contrle quil
est susceptible dexploiter en tirant parti du comportement diffrentiel des fonctions davance
et dextraction. De nombreuses attaques de ce type ont t publies au dbut de la comptition
eSTREAM, contre des algorithmes nayant pas suffisamment pris en considration le contrle
ventuel de lattaquant sur la mise lIV de lalgorithme [77, 71, 141, 80, 142, 76]. On donne
dans le chapitre suivant un exemple dattaque diffrentielle sur la mise lIV dun algorithme
de chiffrement par flot.
Chapitre 2
Sommaire
2.1
Prliminaires . . . . . . . . . . . . . . . . . . .
2.1.1 Corps finis . . . . . . . . . . . . . . . . . . .
2.1.2 Algbre linaire . . . . . . . . . . . . . . . . .
2.1.3 Suite rcurrente linaire . . . . . . . . . . . .
2.2 Registre dcalage rtroaction linaire . .
2.2.1 Reprsentation matricielle . . . . . . . . . . .
2.2.2 Lien avec les suites rcurrentes linaires . . .
2.2.3 Reprsentation algbrique . . . . . . . . . . .
2.2.4 Algorithme de Berlekamp-Massey . . . . . . .
2.3 Fonction boolennes . . . . . . . . . . . . . . .
2.3.1 Dfinition . . . . . . . . . . . . . . . . . . . .
2.3.2 Reprsentation algbrique . . . . . . . . . . .
2.4 Cryptanalyse algbrique du LFSR filtr . . .
2.4.1 Attaques algbriques . . . . . . . . . . . . . .
2.4.2 Structure linaire du LFSR filtr. . . . . . . .
2.4.3 Attaques algbriques rapides. . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
25
26
29
30
31
31
32
32
33
35
35
35
37
38
42
46
On prsente dans ce chapitre la cryptanalyse algbrique du registre linaire filtr. Cet algorithme classique de chiffrement par flot, dune grande simplicit, est dfini par un registre linaire
et une fonction boolenne. Ltude des proprits de la fonction boolenne peut conduire des
attaques algbriques contre ce GPA. Afin damliorer ces attaques, on peut de plus prendre en
compte la riche structure lie lemploi dun registre linaire sous-jacent. Ceci permet dtendre
les attaques algbriques en attaques algbriques rapides, mais aussi dtablir des correspondances
entre LFSR filtrs et LFSR combins.
On commence par rappeler la dfinition et les proprits des LFSR et des suites pseudoalatoires quils gnrent. Dans un deuxime temps, on introduit les fonctions boolennes. On
prsente alors les attaques algbriques sur le LFSR filtr. On tudie ensuite les proprits des
suites produites par le LFSR filtr. Ces proprits rvlent une structure sous-jacente qui peut
tre exploite pour raliser des attaques algbriques rapides.
2.1
Prliminaires
26
2.1.1
Corps finis
Comme nous le verrons dans les sections suivantes, il existe des liens trs forts entre les
LFSR et LFSR filtrs et la thorie des corps finis. On commence par effectuer quelques rappels
de thorie des corps finis. On renvoie [90] pour une description plus exhaustive et les preuves
des rsultats noncs.
Thorme 1 (Thorme de Wedderburn) Tout corps fini est commutatif.
Dfinition 1 Soit K un corps fini. On note 1K llment neutre de la loi multiplicative. Le plus
petit entier non nul p tel que p 1K = 0K est appel caractristique du corps K.
Proposition 1 La caractristique dun corps fini est un nombre premier.
Proposition 2 Soit K un corps fini. Si on note p sa caractristique, alors le cardinal de K est
de la forme pm avec m N .
Proposition 3 Soit K un corps fini de cardinal q = pm . Le groupe des lments inversibles K
est cyclique. On dsigne par lments primitifs les gnrateurs de K . Soit un lment primitif
de K. Alors lensemble des lments primitifs de K est
{k : k (pm 1) = 1}.
Le cardinal de cet ensemble est donn par (pm 1), o est la fonction dEuler.
Proposition 4 Soit K un corps fini de cardinal q = pm . Tout lment non nul de K vrifie
q1 = 1. On en dduit
Y
m
Xp X =
X .
K
Xp X =
Q(X)
Q Z/pZ[X]
irrductible unitaire
de degr r|m
On en dduit pour tout d lexistence de polynmes unitaires irrductibles de Z/pZ[X] de degr d.
On en dduit galement une caractrisation des polynmes irrductibles.
Proposition 7 Soit P un polynme unitaire de Z/pZ[X] de degr m. P est irrductible ssi
m
P divise X p X ;
r
P est premier avec X p X, r|m.
Proposition 8 Soit p entier premier et m entier positif. Il existe un corps de cardinal q = pm .
De plus deux corps de cardinal pm sont isomorphes. On note Fq le corps q lments.
2.1. Prliminaires
27
Exemple : Fp = Z/pZ.
Proposition 9 Les sous-corps de Fq , q = pm , sont les corps Fd avec d|m. En particulier Fp est
un sous-corps de Fq .
Dfinition 2 Soit Fq , q = pm , un corps fini. La fonction
Fr : Fq Fq
p
est un automorphisme de Fq , appel morphisme de Frobenius. Cet automorphisme laisse les
lments de Fp invariants. Lordre de Fr dans le groupe des automorphismes de Fq laissant Fp
invariant est m.
On remarque galement que Fr est un automorphisme despace vectoriel de Fq vu comme un
Fp -espace vectoriel.
Dfinition 3 Soit Fq un corps fini et Fq0 un sous-corps de Fq . On note m la dimension de Fq
comme Fq0 espace vectoriel. On a q = q 0 m . On dfinit la fonction trace comme
Trq0 : Fq Fq0 ,
m1
X 0i
q .
i=0
Cette application est une forme linaire de Fq vu comme un Fq0 -espace vectoriel. Lorsquil ny a
pas dambigut sur le corps darrive, on note Tr au lieu de Trq0 .
0n
Soit Fq et n un entier tel que q = . Par extension de lcriture de la fonction trace,
on note
n1
X 0i
Trnq0 () =
q .
i=0
i=0
0r
est une relation dquivalence. Les lments de la classe dquivalence C dun lment sont
dsigns sous le nom de conjugs de . La taille dune classe dquivalence n divise m. Le
polynme
Y
P =
(X 0 ),
0 C
est un polynme unitaire de degr |C | dans Fq0 [X] et est le polynme minimal des lments de
C sur ce corps. On note R un ensemble contenant un membre de chaque classe dquivalence.
28
Dmonstration : Cette dfinition tablit le lien entre racines dans Fq dun polynme de Fq0 [X].
Ce lien tant exploit par la suite, on donne une dmonstration des proprits nonces.
0m
La rflexivit et la transitivit de R sont immdiates, la symtrie dcoule de la relation xq = x
pour x Fq , ce qui prouve que R est une relation dquivalence.
0
0 n 1
Lensemble des conjugus de Fq est de la forme {, q , . . . q
}, ces lments tant deux
deux distincts. n est le plus petit entier tel que la suite obtenue en levant la puissance q 0
llment prcdent et ayant pour terme initial rpte une valeur prcdemment atteinte de
0 n
0 n
0i
Fq . On a n m. On montre de plus que q
= . En effet, supposons q
= q , i > 0.
0i
0i
0 n 1
Dans ce cas les lments suivant de la suite sont { q : i n } = { q . . . q
} Cet ensemble
m
0
ne contient pas , ce qui est en contradiction avec q = . On en dduit que n divise m.
On a
P q0 iq0
0
P (X)q =
a X
Q i
0 q0
=
0 C (X )
Q
0
q0
0q
=
0 C (X )
Q
0
q0
00
00
0q
=
00 C (X ), avec =
0
= P (X q )
P
0
=
ai X iq
Chaque coefficient de P vrifie lquation de corps de Fq0 , donc P Fq0 [X].
0i
Finalement, considrons 0 = q un conjugu de et notons le polynome minimal de sur
Fq0 . On a
0i
( 0 ) = ( q ),
0i
= ()q ,
= 0,
do P | .
2.1. Prliminaires
29
P est irrductible ;
min (r tel que P divise X r 1) = pm 1.
2.1.2
Algbre linaire
Nous utiliserons galement par la suite les rsultats dalgbre linaire suivants.
On rapelle la dfinition de la matrice compagnon dun polynme.
P
i
L
Dfinition 7 Soit K un corps et A = L1
i=0 ai X + X K[X] de degr L unitaire. La matrice
compagnon de A est la matrice MA ML,L (K) dfinie par
MA =
0 0
1 0
0 1
.. .. ..
. . .
0 0
0
0
0
..
.
a0
a1
a2
..
.
1 aL1
Thorme 3 (Dcomposition selon les facteurs du polynme minimal) Soit E un espace vectoriel de dimension finie, non nul, sur un corps K et u un endomorphisme de E. Le
polynme minimal de u admet une dcomposition en puissances de facteurs irrductibles distincts
r
Y
u =
Piei (ei 1).
i=1
E peut tre crit comme la somme directe des noyaux des Piei (u)
E = ker(P1e1 ) ker(Prer (u)).
On note Qi = u /Piei . Les polynmes Qi sont premiers entre eux, et on peut crire une relation
P
de Bezout
Ai Qi = 1. Lendomorphisme (Ai Qi )(u) est le projecteur sur lespace ker(Piei ).
30
2.1.3
KN
a + b = (a0 + b0 , a1 + b1 , . . .),
KN
a = (a0 , a1 , . . .).
L
X
ai st+i = 0.
i=0
2.2
31
Dfinition 11 Un LFSR de taille L sur un corps fini K = Fpm est constitu dune mmoire
de L lments de K. Lopration de mise jour du LFSR est base sur un dcalage des valeurs
prsentes dans son tat, complt par une opration linaire, appele rebouclage. Lopration
dextraction consiste retourner la valeur disparaissant suite au dcalage.
On rencontre principalement deux rebouclages qui dterminent deux types de LFSR.
LFSR de type Fibonacci. Le rebouclage consiste calculer une combinaison linaire
des valeurs prsentes dans ltat avant le dcalage et lintroduire dans lespace laiss
vacant par le dcalage.
aL1
aL2
aL3
a2
a1
a0
sL1
sL2
sL3
s2
s1
s0
a1
a0
s0
aL3
a2
s1
s2
aL2
sL3
aL1
sL2
sL1
2.2.1
Reprsentation matricielle
On peut reprsenter ltat dun LFSR comme un lment de lespace vectoriel KL . Lopration
de mise jour tant linaire, elle dfinit un endomorphisme de cet espace vectoriel. On note
S t = (st0 , st1 , . . . , stL1 )T
le vecteur des valeurs de ltat du LFSR linstant t. Avec ce choix de base, on obtient les
reprsentations matricielles suivantes :
0 0 0 0 a0
0
0
S t+1
= 0.
..
1
0
0
..
.
0
1
..
.
0
.. ..
. .
0
0
0
0
..
..
.
0
0
0
0
1
a0 a1 a2 aL2 aL1
10 0
t
S
S t+1
a1
0 1 0 0 a2
. . . . . . t
=
.. .. . . .. .. .. S
.
0 0 0 . . 0 aL1
00 0
1 aL1
32
On constate quavec les conventions adoptes la matrice de mise jour dun LFSR de Galois
est la matrice compagnon dun polynme P de K[X] et que la matrice de rebouclage dun LFSR
de Fibonacci faisant usage des mmes coefficients de rebouclage dans lordre inverse est gale
la transpose de la matrice du LFSR de type Galois. On appelle ce polynme le polynme de
rebouclage du LFSR.
Remarquons que le polynme caractristique de la matrice de rebouclage M du polynme
de Fibonacci est le polynme P de degr L, et que si lon note (ei ) la base canonique de KL ,
(en1 , M en1 , . . . , M L1 en1 ) est un systme libre, qui constitue une base de KL . Par consquent
le poynme minimal de M est de degr au moins L et il est donc gal P . En crivant la
matrice de rebouclage dans cette base, on obtient la matrice compagnon dun polynme, gal au
polynme P par galit des polynmes caractristiques de matrice semblable. un changement
de base prs, les deux types de registres sont donc quivalents.
2.2.2
Une autre manire de constater lquivalence de ces deux types de registres est de considrer
les suites des bits produites par les LFSR. Dans les deux cas il sagit de suites linaires rcurrentes
dordre L, de coefficients a0 , . . . , aL1 , 1. Dans le cas du LFSR de type Fibonacci, il suffit de
constater que llment en position i dans le LFSR linstant t est la valeur extraite linstant
t + i, s(t + i). Lquation de rebouclage se traduit immdiatement en lquation de rcurrence
linaire de la suite de sortie. Pour le cas du LFSR de Galois, on considre L avances conscutives
du LFSR. linstant initial, not t, la valeur a0 s(t) est introduite la premire position
du registre. Lors de la mise jour suivante cette valeur est dcale en deuxime position et
P
a1 s(t + 1) y est ajout. Cette opration est rpte jusqu ce que L1
i=0 ai s(t + i) se trouve
en dernire position aprs ltape t + L 1. Cest cette valeur qui est produite linstant t + L,
do lquation de rcurrence.
Considrons lensemble des suites gnres par un LFSR sur Fpm de polynme de rebouclage
A. A est un polynme de rcurrence commun toutes ces suites. Afin de sassurer que toutes
les suites ont des proprits similaires, on choisit A polynme irrductible. Dans ces conditions,
le polynme minimal de toute suite gnre par le LFSR est soit 1, cas de la suite nulle, soit A.
m
Si deg(A) > 1, A divise X p 1 1 et la priode maximale dune suite rcurrente gnre par le
LFSR est pm 1. Le choix de A primitif permet datteindre cette priode maximale.
2.2.3
Reprsentation algbrique
P
i
Soit A = L
i=0 ai X un polynme irrductible de Fq [X] de degr L. Le nombre de suites
sur Fq rcurrentes dordre L ayant A comme polynme de rcurrence est q L (il suffit de fixer
les L premiers lments de la suite pour dterminer tous les lments suivants par application
de la relation de rcurrence). Considrons prsent le corps Fq [X]/A et notons la classe
dquivalence de X. Considrons lensemble des suites
{(T rq (t ))tN , FqL }.
Ces suites sont valeurs dans Fq , par dfinition de la trace. Il sagit de suites rcurrentes
ayant A pour polynme de rebouclage :
L
X
i=0
ai T rq (t+i ) = T rq (t
L
X
i=0
ai i ) = 0.
33
Enfin les suites sont deux deux distinctes. En effet, la trace tant linaire, il suffit de montrer
quune suite nulle correspond = 0. On introduit un lment primitif du corps quotient et
k tel que = k . On a
P i i
t, i q tq = 0,
P i
i
t, i q ( t )kq = 0,
P i
i
les exposants kq i tant pris modulo q L 1. Le polynme i q X kq est un polynme de FqL [X]
de degr < q L 1 ayant q L 1 racines distinctes. Par consquent il sagit du polynme nul et
= 0.
Par un argument de dnombrement, on en dduit le thorme suivant :
Thorme 4 Les suites dlments de Fq rcurrentes linaires dordre L, de polynme de rcurrence A irrductible, sont de la forme (T r(t )), o , FqL , racine de A.
Dans cette forme, la multiplication par encode la fonction davance du LFSR et la valeur
initiale du LFSR.
2.2.4
Algorithme de Berlekamp-Massey
L
X
j=0
aLj sij =
L
X
aj sj+iL = 0.
j=0
On a donc
+ Q X 2L = R, deg(R) < L.
AS
34
35
2.3
Fonction boolennes
On prsente dans cette section quelques rsultats sur les fonctions boolennes, lun des composants du LFSR filtr.
2.3.1
Dfinition
2.3.2
Reprsentation algbrique
Soit X = (X0 , X1 , . . . , Xn1 ) une liste de n indtermines, x = (x0 , x1 , . . . , xn1 ) {0, 1}n
Q
Qn1 ei
ei
e
et e = (e0 , e1 , . . . , en1 ) Nn . On note Xe le monme n1
i=0 Xi et x le bit
i=0 xi .
Dfinition 15 On dit que f est une fonction boolenne monomiale sil existe un monme m =
X e pour e Nn tel que
f : {0, 1}n {0, 1}
x xe .
Or x F2 , x2 x = 0. Deux monmes dont les exposants sannulent aux mmes positions
svaluent donc de la mme manire sur {0, 1}n , et on peut remplacer dans la dfinition F2 [X] par
2
F2 [X]/hX02 X0 , X12 X1 , . . . , Xn1
Xn1 i, lanneau obtenu en quotientant F2 [X] par lidal
2
engendr par les Xi X. Les monmes dans ce quotient sont reprsents par un monme dans
36
Vn =
z01
z11
..
.
z2n01 z2n11
z0 2 1
n
z1 2 1
..
..
.
.
2n 1
z2n 1
Vn+1
V0 = [1] ,
Vn 0
=
.
Vn Vn
37
On en dduit que les fonctions boolennes monomiales sont linairement indpendantes et par
un argument de dimension que toute fonction boolenne peut tre crite de manire unique
comme somme de fonctions boolennes monomiales.
Dfinition 19 Soit f une fonction boolenne n variables. On appelle coefficients de f et on
n
note C(f ) = (f0 , f1 , . . . , f2n 1 ) lunique vecteur de {0, 1}2 tel que
n
x {0, 1} , f (x) =
n 1
2X
fi xi ,
i=0
o i est identifi avec le i-me monme de Tn selon lordre lexicographique inverse. Lcriture
de f sous forme de fonction boolenne polynomiale est appel forme algbrique normale de f .
On appelle degr de f et on note deg(f ) le degr maximum dun monme apparaissant dans
la forme algbrique normale de f
deg(f ) = max deg(xi )|fi 6= 0 .
La matrice monomiale n variables permet de passer de la reprsentation de T (f ) la
reprsentation C(f ) et inversement. En effet
T (f )T = Vn C(f )T , C(f )T = Vn T (f ).
On peut tirer partie de la structure rcursive de Vn pour raliser ces produits matrice-vecteur
en temps O (n2n ) grce lalgorithme 3.
Algorithme 3 Transforme de Moebius rapide
n
Entre : n N, v = (v0 , v1 , . . . , v2n 1 ) {0, 1}2 .
Sortie : Vn .v, calcul en place dans le vecteur v.
pour k = 0 n 1 faire
pour i = 0 2nk1 1 faire
pour j = 0 k 1 faire
vi2k+1 +2k +j = vi2k+1 +j + vi2k+1 +2k +j
fin pour
fin pour
fin pour
2.4
38
2.4.1
Attaques algbriques
Le principe des attaques algbriques du LFSR filtr a t dvelopp partir de 2003 suite
la publication de larticle de Courtois et Meier [47]. Le principal rsultat de cet article est la
possibilit damliorer lattaque algbrique nave du LFSR filtr en faisant usage dannulateurs
de f . Il dcrit quantit de scnarios dattaque qui ont t unifis dans des articles ultrieurs (voir
par exemple [95]). Il motive ltude de la construction dannulateurs de petit degr de fonctions
boolennes et dfinit un critre de rsistance des fonctions boolennes aux attaques algbriques,
limmunit algbrique. De nombreux algorithmes ont t proposs pour construire des annulateurs de bas degr et raliser le calcul de limmunit algbrique [3, 2, 54, 55]. En 2003, une
amlioration des attaques algbriques, appele attaques algbriques rapides, est propose [45].
Elle est base sur un compromis temps-donnes. Elle a conduit la cryptanalyse de Sfinks [46], un
candidat la comptition eSTREAM [60]. Le critre de rsistance contre les attaques algbriques
stend naturellement un critre de rsistance contre les attaques algbriques rapides. Hawkes
et Rose [72] se concentrent sur la complexit des attaques algbriques rapides et optimisent deux
parties dlicates de ces attaques. Initialement, les attaques algbriques et attaques algbriques
rapides exploitent essentiellement la reprsentation matricielle du LFSR filtr et reposent sur
des techniques dalgbre linaire. En 2007, [124] rexplicite les attaques algbriques rapides sans
recherche dannulateur dun point de vue algbrique. [123] tend lanalyse et fournit une expression algbrique explicite du LFSR filtr.
Attaques algbriques naves. Les attaques algbriques reposent sur le constat que chaque
bit de sortie du LFSR filtr fournit une quation polynomiale en les bits de ltat initial :
z(t) = f (st ) = f (t (s0 )).
La fonction boolenne f t est un polynme de degr d dont la forme algbrique normale peut
tre dduite de la forme algbrique normale de f et de celle de . On peut donc, en collectant
N bits de suite chiffrante, constituer un systme de N quations polynomiales en L inconnues.
Ds que le systme est surdtermin, i.e. N > L, il possde avec une forte probabilit une seule
solution, qui est ltat initial du LFSR.
La taille du systme construit au cours des attaques algbriques est lie la technique de
rsolution du systme adopte. Deux techniques de rsolution ont principalement t tudies :
39
d
X
L
=
.
i
i=0
Afin dobtenir une solution unique, on doit collecter NLd quations linairement indpendantes. La complexit de rsolution de ce systme correspond linversion dune matrice
carre de taille NLd . Lalgorithme de Gauss classique a une complexit cubique. Lalgo
rithme de Strassen [134] offre de meilleures performances avec une complexit en O n2.807 .
Lalgorithme de Coppersmith-Winograd amliore la complexit asymptotique [42], mais
cette complexit cache des constantes importantes. On notera lexposant intervenant
dans la formule de complexit de la rsolution du systme.
Le calcul dune base de Grbner : Il sagit dune mthode gnrale de rsolution de
systmes polynomiaux. Lide est de trouver un systme gnrateur de lidal engendr
par la famille de polynmes composant le systme, ayant des proprits spcifiques pour
un ordre monomial donn. On renvoie [49] pour une prsentation gnrale des bases de
Grbner. Lapplication des bases de Grbner la cryptanalyse algbrique du LFSR filtr
a t tudie dans [62].
On constate ici un premier compromis temps-donne : le choix de la mthode de rsolution peut conduire des systmes linaires, mais qui requirent une grande quantit de suites
chiffrantes, ou de petits systmes mais dont la complexit de rsolution est leve.
Par la suite on se placera dans le cas o la mthode de rsolution choisie est la linarisation, et
on construira les systmes rsoudre en consquence. Lorsquon choisit la linarisation, ltat du
LFSR peut tre tendu pour incorporer les monmes en les bits de ltat initial. On ordonne les
monmes de TL suivant lordre drl. Si la fonction boolenne est de degr d, seuls les monmes de
d
degr infrieur ou gal d seront pertinents. On a donc sd = (s0 , s1 , . . . , s NL 1 )T . On complte
galement la matrice davance du polynme pour rendre compte de lvolution des monmes de
degr infrieur ou gal d. Un monme linstant t + 1 est
gal un monme de mme degr de ltat linstant t si ce dernier ne fait pas intervenir
la variable XL1 ;
gal la somme dau plus L monmes de degr infrieur ou de mme degr de ltat
prcdent si la variable XL1 intervient dans le monme prcdent.
La matrice obtenue, appele matrice davance monomiale, note RdA , est donc creuse.
Lalgorithme 4 dcrit lattaque algbrique nave.
La complexit de lalgorithme 5 correspond NLd tapes durant lesquelles on extrait
wt(f
de tmp par RdA . Elle est donc de
) lignes de tmp et o on ralise une multiplication
d1 d
d1
O NLd (wt(f )NLd + (LNL1
NL + NLd (NLd NL1
)) = O L(NLd )3
On rsume dans la table 2.1 la complexit de cet algorithme. Pour simplifier les notations,
on note F = NLd .
Remarque : La matrice S tant indpendante de la suite chiffrante z, on peut prcalculer son
inverse pour un cot F et rsoudre chaque instance par une simple multiplication matrice
vecteur pour un cot F 2 .
40
41
Prcalcul
Construction
Application
Rsolution
T
LF 3
F2
F
M
F2
F2
F2
D
F
Construction dannulateurs de bas degr. Une srie darticles [3, 2, 54, 55] tudie le problme de la construction dannulateurs de degr le plus bas possible dune fonction boolenne. Ils
procdent de manire itrative en liminant lexistence dannulateurs de degr e avant dtudier
lexistence dannulateurs de degr e + 1. Une approche directe consiste crire, pour chaque
valeur de supp(f ) une quation linaire en les coefficients de lannulateur reprsentant son annulation en cette valeur, et rsoudre le systme obtenu par limination gaussienne. [2] dcrit
un algorithme dterministe qui repose sur linterpolation multivarie, prcdemment dveloppe
dans [101, 113]. Lide est de trouver un polynme de bas degr sannulant sur le support de f .
Cet article propose des optimisations pour tirer parti de la forme de la matrice dinterpolation
et de la caractristique 2. [54, 55] dveloppent des algorithmes probabilistes. [55] dcrit un algorithme de complexit quasi-optimale, permettant de construire les annulateurs dune classe de
42
fonctions boolennes. [54] reprend les ides de [2] mais utilise le caractre creux de la matrice
dinterpolation pour mettre en oeuvre lalgorithme de Wiedemann [140], une technique dinversion ncessitant une quantit moindre de mmoire. La procdure, probabiliste, doit tre rpte
pour un certain nombre de vecteurs choisis alatoirement pour obtenir une bonne probabilit de
succs.
On rappelle dans la table 2.2 les complexits de ces diffrents algorithmes. On note e limmunit algbrique calcule, d le degr de la fonction en n variables 2 et de poids w. Pour simplifier
les notations, on note E = Nne . On renvoie aux articles pour leur description dtaille.
Algorithme
limination gaussienne
[2]
[55]
[54]
T
wE 2
E2n
E, en moyenne
n2n E
M
wE 2
E2
E
n2n
Table 2.2 Complexit CAnn du calcul dannulateurs de degr minimum e dune fonction
boolenne n variables
On adapte lattaque algbrique nave afin de tirer parti de lexistence dannulateurs. Un
prcalcul permet de dterminer un annulateur de bas degr. La construction du systme dpend
prsent de la suite chiffrante observe car seuls les instants correspondant une sortie gale
1 (resp. 0) sont retenus lorsquon emploie un annulateur de f (resp. f + 1). On peut cependant
continuer prcalculer lessentiel de la construction du systme en construisant un systme
plus grand, dont on ne retiendra que les quations correspondant aux instants o la valeur de
sortie correspond lannulateur utilis. Les complexits des diffrentes phases de lattaque sont
rsumes en Table 2.3. Elles sont exprimes en fonction de E = NLe .
Prcalcul
Construction
Application
Rsolution
T
CAnn + LE 3
E2
E
M
E2
E2
E2
D
E
Table 2.3 Rsum de la complexit de lattaque algbrique avec prise en compte des annulateurs
2.4.2
Les attaques algbriques classiques requirent une quantit de donnes de lordre de la taille
du systme rsoudre et construisent une quation du systme rsoudre partir de chaque
bit de sortie utile. Ces attaques exploitent les proprits de la fonction boolenne pour abaisser
le degr des systmes construits, mais nexploitent pas les proprits de rcurrence de la suite
sous-jacente produite par le LFSR. [83, 124, 123, 119] constatent que les proprits de rcurrence
linaire satisfaites par les suites gnres par des LFSR se gnralisent dans une certaine mesure
aux suites produites par extraction travers une fonction de filtrage boolenne.
2. Lorsquon calcule les annulateurs dune fonction, on limine pendant le calcul les variables qui napparaissent
pas dans la forme algbrique normale de la fonction
43
Considrons en effet la suite produite par le LFSR. Il sagit dune suite linaire rcurrente
dordre L, de polynme de rcurrence A. Si dsigne une racine de A dans F2L , la suite (st )
scrit sous la forme T r(t ), avec F2L qui encode ltat initial du LFSR. La reprsentation
algbrique permet dexprimer finement la structure des sorties produites par le LFSR filtr.
Q
Commenons par considrer la suite obtenue par filtrage du LFSR par un monme e1
i=0 Xui .
On a
e1
e1
Y
Y
t
zt =
sui =
st+ui
=
i=0
e1
Y
i=0
T r(t+ui ) =
i=0
Pe1
i=0
e1
Y L1
X
(t+ui )2 i
i=0 ji =0
Pe1 j
i
ui 2ji
t
i=0 2
( )
jJ0,L1Ke
On note kj =
mod L.
On a
Pe1
i=0
2ji mod 2L 1, uj =
zt =
Pe1
i=0
L 2
2X
uj )(t )k
k=0 j:kj =k
Par ailleurs on a
kj+l = 2l kj
uj+l = 2l uj
j:kj =k
u ,...,ue1
nk
T r (Ck 0
( k (k )t )
kRe
La dernire quation restreint la somme aux exposants de poids infrieur ou gal e. On remarque
tout dabord que ceci est bien dfini car le poids de Hamming est constant dans une classe
dquivalence. La restriction est correcte car le poids de Hamming de kj est infrieur ou gal
e.
Les suites produites par un LFSR filtr par une fonction boolenne quelconque partagent la
mme structure. Arrtons-nous sur cette structure. On reconnat une somme de suites rcurrentes
linaires. Les polynmes de rtroaction de ces suites ont pour racine k , o le poids de Hamming
de k est infrieur ou gal au degr d de la fonction boolenne. Ainsi, un LFSR filtr par une
fonction boolenne de degr d peut tre vu comme la combinaison linaire de td = |Rd | LFSR
de polynmes de rebouclage Pk , o est une racine de A et k un entier d. Ces LFSR sont
initialiss par une valeur Ckf k lie la fonction boolenne utilise et ltat initial du LFSR
filtr. Cette correspondance permet de transformer un petit GPA non linaire en un GPA linaire
quivalent de grande taille. En fait lintgralit de la non linarit est dplace dans la fonction
dinitialisation du GPA-linaire.
Remarque : lorsque nest pas un lment primitif, les Pd ne sont plus ncessairement premiers
entre eux. Par consquent le nombre de LFSR intervenant dans la reprsentation linaire du
LFSR filtr est infrieur sa valeur maximale.
On peut noter que cette structure peut tre traduite en terme de reprsentation matricielle
au travers de la matrice davance monomiale.
44
A0 0 0
A1 0
RdA = .
.. . .
.. ,
..
. .
.
Ad
B0 0
0
0 0
B1
0
0 0
..
.
.
.. .. .. ,
d
.
..
..
..
Ped (RA ) = .
. . .
Be1 0 0
0 0
kRi
X k .
2ji =k i=0
Comme le poids de Hamming de k est d, la condition sur les e-uplets j retenus dans la somme est
quivalente exiger que j est une permutation des positions des bits 1 dans lcriture binaire
45
X d1
Y
k(i)
i2
Sd i=0
kj
On reconnat le dterminant de la matrice Md,d (F2L ) de terme gnral (i2 )0i<e,0j<e . Cette
matrice est une matrice de Vandermonde. Les kj tant distincts, ce dterminant Ck0,...,d1 est
non nul.
Considrons prsent la suite gnre par le LFSR filtr par le monme X0 . . . Xd1 . On a vu
quelle peut tre crite comme la somme de suites rcurrentes linaires :
X
0,...,ud1
( k (k )t )).
zt =
T rnk (Ck
kRd
On vient galement de voir que les coeffients Ck sont non nuls pour HW (k) = d. Les polynmes
de rcurrence des suites correspondant HW (k) < d tant premiers avec ceux correspondant
HW (k) = d, daprs la proposition 15, Pd divise le polynme minimal de la suite zt . Par ailleurs,
la suite zt peut tre crite sous forme matricielle :
zt = f (RdA )t x,
o f est un vecteur nul en toutes ses composantes, sauf celle correspondant au monme
X0 . . . Xd1 et x est le vecteur reprsentant les monmes de degr infrieur ou gal d en
les bits de ltat initial. Par consquent, pour tout polynme P ,
(P )(z) = f P (RdA )(RdA )t x.
En particulier (Rd )(z) = 0, donc le polynme minimal de z divise RdA , par transitivit Pd
A
46
2.4.3
On explique ici comment la structure linaire des LFSR filtrs peut tre utilise pour acclrer
les attaques algbriques, au prix dune augmentation de la complexit en temps dun prcalcul et
de la complexit en donnes. Lide est de constater que la sortie dun LFSR filtr de polynme
de rebouclage A, suppos primitif, avec une fonction de degr d suit une rcurrence linaire
de polynme de rcurrence Pd . En appliquant cette rcurrence linaire sur une telle suite, on
lannule. Le thorme 5 permet daffiner encore ce rsultat en tablissant des polynmes de
rcurrence permettant dannuler linfluence de monmes de degr lev.
Revenons aux attaques algbriques. On a vu quune quation de la forme f.g = h pouvait
tre exploite pour raliser une attaque algbrique si h ou g + h est de degr faible. En exploitant
les relations de rcurrence prsentes ci-dessus, une amlioration de lattaque devient galement
possible sous la condition plus faible que g est de degr faible [45]. En effet
t, zt g(st ) = h(st ).
La fonction h est potentiellement de degr lev. On suppose 3 deg(g) < deg(h) < deg(f ). Afin
de pouvoir exploiter ces quations, il faut en abaisser le degr.
Les monmes apparaissant linstant t dans lexpression de h(st ) sont les monmes donns
par
deg(h) t
Ch (RA
) Tdeg(h) .
P
En appliquant la rcurrence linaire donne par un polynme P =
pi X i cette suite dexpression formelle on obtient la suite
deg(h)
Ch P (RA
deg(h) t
)(RA
) Tdeg(h) .
deg(h)
Ch Pe deg(h) (RA
e t
) (RA
) Te ,
o lastrisque dnote la suppression des colonnes nulles de la matrice. Lorsque deg(g) > 0,
lapplication de la mme rcurrence linaire sur lexpression de zt g(st ) nlimine pas a priori
les monmes de degr deg(g). On peut donc choisir 0 e deg(g) pour obtenir un systme
dquations de degr deg(g). Lorsque deg(g) = 0, on choisit e > 0 pour former un systme de
degr e, ce qui correspond lattaque de Rnjom et Helleseth [124].
deg(g)
deg(h)
On note E = NLe , G = NL
et H = NL
.
Pour mener lattaque il est ncessaire de collecter max(E, G) quations de ce type. Le cot de
construction de la partie des quations correspondant h dcime par le polynme de rcurrence
Pe deg(h) est donc gal la somme des cots suivants :
le cot de construction du polynme Pe deg(h) , soit O H(log H)2 , cf [72] ;
deg(h)
le cot de construction de Pe deg(h) (RA
) , soit O LEH 2
le cot de construction de max(E, G) expressions de h(st ), soit O (LHE max(E, G))
3. le cas g = 1, h = f montre en effet quil nest pas ncessaire de considrer h de degr suprieur au degr de
f.
47
Il est donc de lordre de O LEH 2 . Il faut noter un cas particulier pour cette complexit
en fonction du degr e choisi, le cas e = 0. Dans ce cas la dcimation annule compltement
lexpression et la complexit de la construction de lexpression est nulle.
Lexpression de zt g(st ) est dcime par le mme polynme. Cependant, on ne peut plus
prcalculer cette expression car elle dpend des valeurs de suite chiffrante observes. Seule l
expression formelle des g(st ), 0 t < H peut-tre prcalcule, pour un cot en O LG2 H .
Linstanciation du systme, i.e. la prise en compte des valeurs de suite chiffrante pour construire lexpression de zt g(st ) sobtient alors par calcul rapide dune convolution pour un cot de
O (GH log H), cf [72]. La quantit de donnes ncessaires pour obtenir max(E, G) quations
aprs dcimation par un polynme de degr H E est H E + max(E, G).
Finalement, la rsolution du systme est obtenue en O ((max(E, G)) ).
Afin de pouvoir mener une attaque algbrique rapide il faut commencer par trouver une
relation de type f g = h, avec g de bas degr. Les algorithmes de calcul dannulateurs peuvent
tre adapts pour raliser cette tche. La table 2.4 donne la complexit du calcul de relations de
deg(g)
deg(h)
type f g = h. Cette complexit est exprime en fonction de G = Nn
, H = Nn
, o n est
le nombre de variables de f .
Algorithme
limination gaussienne
[2]
[55]
[54]
T
wGH
G2n
complexit non prouve, conjecture G, en moyenne
n2n G
M
wGH
G2
n2n
Table 2.4 Complexit CAnn du calcul dannulateurs de degr minimum dune fonction
boolenne n variables
La table 2.5 rsume les complexits des diffrentes phases des attaques algbriques rapides.
deg(g)
deg(h)
Ces complexits sont exprimes en fonction de G = NL
, H = NL
.
Prcalcul
Construction
Application
Rsolution
T
CAnn + LEH 2 + LG2 H
GH log H
max(E, G)
M
GH
GH
max(E, G)2
D
H E + max(E, G)
Chapitre 3
VEST
Sommaire
3.1
3.2
3.3
3.4
3.5
3.6
3.1
Introduction . . . . . . . . . . . . . . . . . . . . . . .
Description de VEST . . . . . . . . . . . . . . . . . .
3.2.1 Compteur . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Diffuseur linaire du compteur . . . . . . . . . . . .
3.2.3 Accumulateur . . . . . . . . . . . . . . . . . . . . . .
3.2.4 Filtre de sortie . . . . . . . . . . . . . . . . . . . . .
3.2.5 Mode de mise la cl . . . . . . . . . . . . . . . . .
3.2.6 Mode de mise lIV . . . . . . . . . . . . . . . . . .
Proprits des composants de VEST . . . . . . . . .
3.3.1 Caractristiques diffrentielles des registres . . . . .
3.3.2 Collision dans le diffuseur de compteur . . . . . . . .
Reconstitution partielle de ltat mis la cl . . . .
3.4.1 Attaque avec des IV longs . . . . . . . . . . . . . . .
3.4.2 Attaque avec des IV courts . . . . . . . . . . . . . .
Recouvrement de cl . . . . . . . . . . . . . . . . . .
3.5.1 Inversion de la deuxime phase de la mise la cl . .
3.5.2 Attaque par le milieu . . . . . . . . . . . . . . . . .
3.5.3 Recouvrement de cl par attaque cls corrles . .
3.5.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . .
Forge existentielle pour le mode VEST Hash MAC
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
49
50
50
51
51
52
52
52
53
53
55
55
56
58
60
60
60
61
61
61
Introduction
VEST [114, 115] est un ensemble de quatre familles dalgorithmes de chiffrement par flot
soumis lappel candidature du projet eSTREAM [60] par S. ONeil, B. Gittins et H. Landman.
VEST-v, v {4, 8, 16, 32}, est une famille dalgorithmes de chiffrement par flot visant un niveau
de scurit de respectivement 80, 128, 160 et 256 bits, et produisant une sortie de v bits par
cycle dhorloge. Les quatre familles partagent un mme principe de conception. Seules les tailles
des diffrents composants changent pour atteindre le niveau de scurit vis. Un algorithme
de slection permet, tant donn un paramtre appel cl de famille, dobtenir un algorithme
membre de la famille VEST.
Lors du passage en phase 2 du projet eSTREAM, les spcifications de VEST ont t mises
jour. Les modifications ralises lors de cette mise jour portent sur certains paramtres de
lalgorithme et sur la dfinition dun mode additionnel permettant dobtenir un algorithme de
MAC ou de chiffrement authentifi partir de la famille VEST.
Dans cette section, nous nous intressons des faiblesses basiques de certains composants
de VEST. Ces faiblesses peuvent tre mises profit pour engendrer des collisions internes dans
50
Chapitre 3. VEST
ltat de lalgorithme, semblables aux collisions internes dans les fonctions de hachage de la
famille SHA [37]. Par consquent, nous sommes en mesure de raliser une attaque IV choisis
contre les algorithmes de chiffrement par flot de la famille VEST permettant de recouvrer 53
bits de ltat interne aprs mise la cl. Cette information peut tre utilise pour diminuer la
complexit dune attaque par recherche exhaustive. Cette attaque IV choisis sur lalgorithme
de chiffrement par flot VEST peut galement tre utilise comme attaque en forge existentielle
contre VEST MAC.
Nous commenons par donner une description des composants de VEST et de leurs mode
opratoire. Nous exhibons ensuite la faiblesse lmentaire mise jour dans les composants compteur et diffuseur linaire du compteur. Nous dcrivons alors deux attaques IV choisis permettant de recouvrer de manire efficace 53 bits de ltat interne de lalgorithme mis la cl. Enfin,
nous discutons de limpact de ces attaques sur la complexit de la recherche exhaustive et donc
sur la scurit de lalgorithme et dcrivons brivement comment elles peuvent se traduire en des
attaques de type forge existentielle sur VEST MAC.
3.2
Description de VEST
Les membres de la famille dalgorithmes de chiffrement par flot VEST sont constitus de
quatre composants :
un ensemble de 16 registres dcalage rtroaction non linaire, appel compteur ;
un diffuseur linaire du compteur ;
un accumulateur ;
un filtre de sortie sans mmoire.
Les algorithmes de la famille VEST possdent trois modes de fonctionnement interne :
le mode de mise la cl permet dintroduire une cl dans ltat de lalgorithme. Tous les
bits de ltat sont dabord mis 1, puis la cl est insre, ce qui aboutit un tat dit mis
la cl. Dans ce mode, lalgorithme ne produit pas de bits de sortie ;
le mode de mise lIV permet dintroduire un IV dans un tat mis la cl. Ce mode ne
gnre pas de bits de sortie ;
le mode de gnration de suite chiffrante produit une suite de taille arbitraire de bits
pseudo-alatoires.
Nous commenons par dcrire de manire un peu plus dtaille les quatre composants de
lalgorithme VEST, notamment leurs diffrentes fonctions de mise jour. Nous nous appuyons
ensuite sur ces premires descriptions pour expliciter les modes de mise la cl et de mise
lIV de lalgorithme VEST, en donnant notamment pour chaque composant la fonction de mise
jour mise en uvre.
3.2.1
Compteur
51
k
0
w1
gi
Mode Initialisation
r
r
r
r
r
r
cr+1
i 0 = gi (ci 0 , ci 1 , ci 2 , ci 6 , ci 7 ) ci wi 1
r
r
cr+1
i 1 = ci 0 ki
r+1
r
ci j = ci j1
Mode Compteur
r
r
r
r
r
r
cr+1
i 0 = gi (ci 0 , ci 1 , ci 2 , ci 6 , ci 7 ) ci wi 1
r+1
r
ci j = ci j1
3.2.2
Le diffuseur linaire du compteur est une valeur de 10 bits utilise pour perturber lavance
de laccumulateur. chaque cycle, le diffuseur linaire du compteur est mis jour de manire
linaire laide des 16 bits de sortie du compteur. Chaque bit mis jour est somme dun bit du
diffuseur linaire du compteur et de cinq bits prevenant du compteur. En reprenant les notations
de [115], on note drj la valeur linstant r du bit j du diffuseur linaire du compteur. On note
D(r) = (dr0 , dr1 , . . . , dr9 )T
C (r) = (cr0 1 , cr1 1 , . . . , cr15 1 )T
La mise jour du diffuseur linaire peut alors tre crite sous forme matricielle
D(r+1) = A D(r) M C (r) B,
avec
A=
3.2.3
0 1 0 0 1 1 0 0 0 0 0 1 0 1 0 0
0 1 0 0 0 0 0 0 0 0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
M=
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
B=
0.
0
1
1
1
Accumulateur
Le reste de ltat dun algorithme de chiffrement par flot VEST est constitu dun accumulateur. chaque cycle, ltat de laccumulateur subit une phase de substitution et une phase
52
Chapitre 3. VEST
de permutation. Puis le diffuseur linaire du compteur est ajout par ou exclusif aux dix premiers bits de ltat de laccumulateur. Pour une description complte de laccumulateur, nous
renvoyons [115].
3.2.4
Filtre de sortie
chaque cycle dhorloge, un membre de la famille VEST-v produit v bits de suite chiffrante.
Chaque bit est calcul en prenant le ou exclusif de 6 bits de ltat de laccumulateur. Le nombre
de bits de sortie est au moins 18 fois plus petit que la taille de laccumulateur. Le principe de
conception de laccumulateur et du filtre de sortie, vritable cur de lalgorithme, suit la mme
stratgie que celle adopte par lalgorithme de chiffrement par flot LEX, autre candidat soumis
au projet eSTREAM [23, 24]. Lide est dextraire une petite partie dun tat mis jour par
un tour dun algorithme de chiffrement par bloc, la cl de tour tant fournie par un composant
voluant de manire autonome.
3.2.5
Mode de mise la cl
3.2.6
La mise lIV peut tre ralise aprs la mise la cl. Elle prend pour entre un IV de
longueur W bits, o W est un multiple de 8. Comme pour la mise la cl, lalgorithme ne
gnre aucune sortie pendant la mise lIV, et le diffuseur linaire et laccumulateur voluent
comme dcrit plus haut. Les registres du compteur passent par deux phases :
Pendant la premire phase de la mise lIV, lIV est introduit dans le compteur. Cette
phase stend sur W/8 tapes. On remarque que contrairement aux bits de cl, les bits dIV
ne sont pas introduits dans tous les registres : ils perturbent uniquement les 8 premiers
53
registres et chaque bit dIV nest introduit que dans un registre. chaque cycle, un octet
dIV est utilis.
La deuxime phase de la mise lIV est identique la deuxime phase de la mise la cl,
mais utilise une constante diffrente.
3.3
Dans cette section, nous identifions deux proprits des composants de VEST. Elles concernent le comportement diffrentiel des NLFSR en mode initialisation et du diffuseur de compteur.
3.3.1
Pendant la premire phase de la mise lIV, la fonction dvolution dun registre i, 0 i < 8
peut tre vue comme une fonction
fi : {0, 1}wi {0, 1}n {0, 1}wi {0, 1}n ,
qui modifie un tat de longueur wi partir dun IV dentre de longueur n. La sortie de la fonction
est un tat mis jour et une sortie de longueur n. En tudiant les proprits diffrentielles de cette
fonction relativement son deuxime argument, nous mettons en vidence un comportement non
idal.
Les masques diffrentiels pertinents dans le contexte de la mise lIV sont de la forme
0 0 .
En partant dune mme valeur dtat (par exemple celle de ltat mis la cl), on introduit une
paire dIV de diffrence et on recherche une collision sur ltat du registre aprs la premire
phase de la mise lIV et une diffrence fixe sur les sorties . Pour une paire dIV de diffrence
, on dit quun tat collisionne si en partant de cet tat et en introduisant les deux IV de la
paire on obtient une collision sur ltat de sortie et la diffrence attendue sur les bits de sortie.
On rappelle en Figure 3.2 le lien entre motif diffrentiel et tats en collision.
IV
tat en collision
pour (IV, IV 0 )
IV 0 = IV
out
fi
s0
sn
fi
out
54
Chapitre 3. VEST
55
3.3.2
Ni
127
107
117
128
i Ni
4 106
5 107
6 96
7 150
i Ni
8 122
9 95
10 90
11 156
i Ni
12 102
13 96
14 104
15 136
i
16
17
18
19
Ni
70
67
74
52
i
20
21
22
23
Ni
44
60
62
77
i
24
25
26
27
Ni
59
76
65
54
i
28
29
30
31
Ni
52
64
54
77
En Section 3.2.2, une description matricielle du diffuseur linaire de compteur est donne.
La matrice M ayant plus de colonnes que de lignes, elle a un noyau non trivial, engendr par les
vecteurs :
(1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0)T ,
(1,1,1,1,0,1,1,0,1,1,1,0,0,0,0,0)T ,
(0,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0)T ,
(0,1,0,1,1,0,1,0,1,0,0,0,1,0,0,0)T ,
(1,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0)T ,
(0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,1)T
Ceci contredit la proprit dabsence de collision annonce dans [115, Section 5.4]. Si les
sorties du compteur ltape r diffrent dune combinaison linaire de ces vecteurs, la contribution du compteur la mise jour des bits de diffusion {drj }j sera la mme. Le vecteur du
noyau mis en valeur ne fait intervenir que des bits provenant des 8 premiers registres qui peuvent
tre, dans une certaine mesure, contrls par lattaquant pendant la mise lIV. Ce vecteur est
particulirement utile notre attaque.
3.4
Dans cette section, nous exploitons les faiblesses dcrites dans la section prcdente pour
recouvrer la valeur dune partie donne de ltat mis la cl. Toutes les attaques dcrites ici
sont des attaques diffrentielles IV choisis. La premire attaque ne considre pas de contrainte
sur la longueur de lIV. La deuxime attaque sefforce dutiliser un IV aussi court que possible
et peut tre mise en uvre quand la longueur de lIV est contrainte une valeur standard, plus
prcisment 128 bits. En fait, cette attaque est ralisable ds lors quon dispose dIV de longueur
suprieure 96 bits.
56
3.4.1
Chapitre 3. VEST
Nous dcrivons dans cette sous-section une premire attaque qui suppose que la longueur
des IV est plus grande que 23 8 = 184 bits. Nous notons que [115] ne prcise pas de limite
la longueur des IV.
Le but de cette attaque est dexploiter les faiblesses dcrites dans la section prcdente pour
construire une paire dIV en collision, cest dire une paire dIV tels que ltat de lalgorithme
est le mme aprs la mise la cl utilisant une cl inconnue K et la mise lIV utilisant chaque
IV de la paire. Nous avons tudi dans la section prcdente le comportement diffrentiel des
NLFSR en mode initialisation et du diffuseur de compteur. Notre attaque utilise les proprits
identifies pour introduire une diffrence dans le compteur et pour lliminer, tout en vitant
lintroduction dune diffrence dans laccumulateur.
En effet, pendant la premire phase de la mise lIV, tous les NLFSR ne sont pas mis jour
de la mme manire. Les NLFSR 0 7 fonctionnent en mode initialisation et sont perturbs
par les bits dIV, chaque bit dIV tant utilis exactement une fois, tandis que les NLFSR 8
15 voluent en mode compteur. Par consquent, un attaquant peut uniquement influencer les 8
premiers NLFSR. Afin de ne pas introduire de diffrence dans laccumulateur, aucune diffrence
ne doit tre introduite dans le diffuseur de compteur bien que des diffrences soient prsentes
dans le compteur. La mise jour du diffuseur de compteur dpendant linairement de la sortie
des NLFSR au travers de la matrice M , ceci est possible condition que la sortie du compteur
soit dans le noyau de M . De plus, comme lattaquant ne peut introduire de diffrence que dans
les 8 premiers NLFSR, la diffrence des sorties du compteur ne peut tre non nulle que pour
ces registres. Un vecteur du noyau de M mis en valeur en section 3.3.2 satisfait cette contrainte
supplmentaire. Ainsi, si les sorties du compteur diffrent exactement pour les NLFSR 0, 4,
5, 6, et 7, le diffuseur de compteur est mis jour comme sil ny avait pas de diffrence. Par
consquent, sil ny avait pas de diffrence dans le diffuseur de compteur et dans laccumulateur,
et si la diffrence en sortie du compteur est telle que dcrite ci-dessus, aucune diffrence nest
introduite dans le diffuseur de compteur et dans laccumulateur.
De plus, nous avons dcrit en section 3.3.1 les motifs diffrentiels des NLFRs. La diffrence
de sortie de ces motifs est constitue dun 1 suivi dun nombre w de 0. En combinant de telles
diffrentielles, une pour chacun des cinq registres 0, 4, 5, 6, 7, en les faisant commencer la mme
tape, et en nintroduisant aucune diffrence dans ces registres aprs la fin du motif diffrentiel,
et aucune diffrence dans les autres registres, on obtient une caractristique diffrentielle sur
lintgralit du compteur telle que :
il y ait une collision sur lintgralit du compteur si ltat initial est dans un ensemble
appropri ;
la sortie du compteur nintroduise pas de diffrence dans le diffuseur de compteur et par
consquent dans laccumulateur. En effet la diffrence en sortie du compteur est soit nulle
soit gale llment du noyau de M mis en valeur en section 3.3.2.
Afin dexpliciter lensemble des bonnes valeurs, nous commenons par rappeler que pendant
la premire phase de la mise lIV, les NLFSR sont mis jour de manire indpendante. De
plus, on peut partitionner les bits de lIV en fonction des registres quils affectent. Ainsi, obtenir
une collision sur lintgralit du compteur est quivalent obtenir une collision sur chacun des
registres 0, 4, 5, 6 et 7. Lensemble des tats initiaux du compteur qui conduit une collision
est le produit cartsien S des ensembles S r des tats initiaux des registres qui conduisent
des collisions partielles pour les paires dIV utilises. Notons quen raison de la diffrence de
sortie des collisions partielles considres, ceci conduit une collision sur lintgralit de ltat
de lalgorithme de chiffrement par flot la fin de la premire phase de la mise lIV. Comme
57
aucune diffrence nest introduite dans la deuxime phase de la mise lIV, on obtient une
collision sur tout ltat la fin de la mise lIV.
Lide de lattaque de base est de choisir pour chaque registre la paire dIV qui maximise le
nombre dtats en collision. Ceci maximise galement le nombre dtats initiaux conduisant
une collision sur lintgralit du compteur. Si ltat initial est tir alatoirement, la probabilit
quil conduise une collision est le nombre dtats en collision divis par le nombre total dtats.
Pour le membre par dfaut de la famille VEST, la valeur de cette probabilit est :
p 221.24 .
On construit alors des paires dIV de longueur 23 octets, telles que les 11 premiers octets
soient identiques et tirs alatoirement, et les 12 derniers octets soient une paire dIV fixe, la
composition des meilleures paires dIV pour les registres 0, 4, 5, 6 et 7, et des valeurs fixes pour
les registres 1, 2 et 3. On remarque quen moyenne, 11 tapes sont suffisantes pour randomiser
compltement ltat du compteur. Par consquent, p est la probabilit quune paire dIV construite de la sorte produise une collision aprs la mise lIV, ce qui conduit une collision sur
lensemble de ltat de lalgorithme comme expliqu plus haut. Pour tester cette collision, on
compare les 32 premiers bits du flux de cls aprs chaque mise lIV. Si une collision se produit
dans la mise lIV, les bits pseudo-alatoires sont identiques. Dans le cas contraire, la probabilit
que deux IV conduisent la mme suite de 32 bits de pseudo-ala est heuristiquement de 232 .
Aprs de lordre de 1/p paires de mise lIV, on trouve avec forte probabilit une paire dIV
produisant les mmes bits de pseudo-ala, et avec une forte probabilit cela correspond une
collision de ltat du compteur.
Une fois une telle paire dIV obtenue, il est ais de recouvrer les 53 bits de ltat mis la cl
prsents dans les registres 0, 4, 5, 6 et 7 (w = 11 pour les registres 0, 4 et 7, w = 10 pour les
registres 5 et 6). On procde registre par registre. Ayant obtenu une collision aprs mise lIV,
ltat du registre i aprs ltape 11 de la mise lIV est un tat en collision pour la paire dIV
extraite de la paire dIV en collision en prenant la partie relative au registre r, restreinte aux
tapes 12 23. On retrouve alors ltat du registre en vrifiant les diffrentes valeurs possibles,
tires de lensemble S r des tats en collision. En remontant les 11 premires tapes de la mise
lIV, on obtient un candidat pour la valeur du registre aprs la mise la cl. Afin de tester cette
valeur, on construit une nouvelle paire dIV partir de la paire dIV en collision en ne modifiant
que la partie correspondant au registre r. Les 11 premiers bits sont choisis pour assurer que
la nouvelle valeur du registre r aprs les 11 premires tapes appartienne S r si lhypothse
est correcte. Les 12 bits suivants sont laisss non modifis dans les deux IV. Si la mise lIV
utilisant la nouvelle paire dIV ne conduit pas une collision de ltat interne, la valeur de
lhypothse est limine des valeurs candidates. La probabilit quune valeur candidate errone
passe un test avec succs est de #S r /2wr . En itrant cette procdure on retrouve rapidement les
bonnes valeurs de registres. En la rptant sur chacun des registres intressants pour quelques
exemples, nous avons t en mesure de recouvrer les valeurs des registres dans ltat mis la cl
en utilisant moins de 500 mises lIV supplmentaires. Il est possible damliorer cette premire
approche en liminant plusieurs valeurs simultanment en utilisant une seule mise lIV. Ceci
rduit le nombre de mises lIV ncessaires moins de 200.
Bien entendu, cette attaque peut aisment tre adapte aux contextes o la longueur des IV
est suprieure 23 octets. Elle peut galement tre utilise pour des IV plus courts, tant que
la longueur des IV est suprieure 12 octets. Dans ce cas, elle ne permettra plus de recouvrer
toutes les cls, car la randomisation des registres ne garantit plus de transformer un tat mis
la cl quelconque en un lment de S. Ainsi lattaque dvient dpendante de la cl et permet
58
Chapitre 3. VEST
3.4.2
Dans la section prcdente, nous avons dcrit une attaque diffrentielle qui permet de recouvrer une partie de ltat mis la cl tant donne la possibilit de raliser des mises lIV
pour des IV de longueur suffisante. Nous avons galement mentionn que le succs de lattaque
dpend de la valeur de la cl lorsque la taille de lIV est rduite et que la taille minimale de lIV
pour laquelle lattaque est possible est de 12 octets. Dans cette sous-section, nous dveloppons
une autre approche qui permet de recouvrer ltat mis la cl des registres intressants quelle
que soit la cl en utilisant des IV de longueur minimales, i.e. 12 octets.
Lattaque prsente dans la sous-section prcdente gnre des tats alatoires partir de
ltat mis la cl jusqu ce que lun de ces tats tombe dans un ensemble particulier S. Lide
de lattaque dcrite ici est de gnrer une famille densembles {Si }i associs diffrentes paires
dIV qui couvre tout lespace des tats.
En effet, pour un registre particulier dindice r, on peut associer la paire dIV Cir pour
ce registre lensemble des tats qui collisionnent pour cette paire dIV en produisant une diffrence de sortie constitue dun 1 suivi de 0. Nous avons vu en section 3.3.1 que pour certaines
paires dIV C r , la taille de lensemble dtats en collision associ S r peut tre particulirement
importante. La taille w des registres tant de seulement 10 ou 11 bits, nous avons vu quil est
possible de calculer pour chaque paire dIV de longueur w + 1 lensemble des tats en collision
pour cette paire. On obtient ainsi une famille densembles. Nous avons vrifi que lunion de ces
ensembles couvre lintgralit de lespace des valeurs de registres pour toutes les fonctions non
r
linaires proposes. Ainsi, il est possible de slectionner N (r) < 2wr ensembles, S1r , S2r , . . . SN
(r) ,
w
r
de manire ce que lunion de ces ensembles soit {0, 1} . En prenant le produit cartsien de 5
familles densembles choisies pour les registres 0, 4, 5, 6 et 7, on obtient une famille densembles
couvrant toutes les valeurs possibles des 53 bits de ltat mis la cl correspondant aux 5 registres intressants. La taille de cette famille {Si }i est le produit de la taille des familles choisies
pour chaque registre : N = N (0) N (4) N (5) N (6) N (7) . Les lments de la famille sont des ensembles
dtats en collision aprs mise lIV utilisant une paire dIV obtenue en combinant les paires
dIV utilises pour chaque registre.
Supposons que nous disposions dune telle famille {Si }i et de la famille de paires dIV associe.
En ralisant deux mises lIV pour chaque paire, on est assur de trouver une paire dIV pour
laquelle on obtienne une collision aprs la mise lIV. La complexit de cette attaque en le
nombre de mises lIV ncessaires est de 2N dans le pire cas. De plus, si on commence par
tester les paires dont les ensembles dtats en collision sont les plus grands, le nombre moyen de
mises lIV ncessaires diminue.
Afin dobtenir la meilleure complexit, nous devons construire pour chaque registre une
famille couvrante de paires dIV {Cir }i . Afin damliorer la complexit de lattaque dans le cas
moyen, on utilise un algorithme glouton pour gnrer ces familles. On construit dabord pour
chaque paire dIV lensemble des tats en collision. On les trie par ordre dcroissant de taille et
on slectionne la premire paire. On retire alors les lments de lensemble des tats en collision
des ensembles des paires non slectionnes et on les retrie par ordre dcroissant de taille. On
59
itre cet tape jusqu obtenir une liste de paires dIV telles que tout tat est en collision pour
une paire de la liste. Nous donnons titre dexemple en Table 3.2 la taille des listes obtenues
pour les fonctions utilises par les registres 0, 4, 5, 6 et 7 lorsque la cl de famille par dfaut est
utilise pour slectionner un algorithme de la famille VEST.
Table 3.2 Taille de familles couvrantes de quelques fonctions non linaires
indice de la fonction taille dune famille couvrante
0
59
1
93
19
77
20
86
2
96
Une fois obtenues les familles pour les cinq registres intressants, nous devons les combiner
pour obtenir une famille de paires dIV pour lintgralit du compteur. Afin de minimiser la complexit dans le cas moyen pour lattaque en utilisant ces 5 familles, nous devons tester les paires
par ordre dcroissant de la taille de leur ensemble dtats en collision. Pour le membre par dfaut
de la famille VEST-v, le nombre de paires est approximativement 231.70 . Les algorithmes de tri
gnriques sont difficilement applicables en raison de la quantit de mmoire ncessaire. Cependant, nous navons pas vraiment besoin de stocker la liste dIV dans lordre, tant quon est en
mesure de lnumerer rapidement dans lordre. De plus, la seule information requise pour raliser
la comparaison est la taille des ensembles dtats en collision pour chaque paire dIV. Ainsi nous
devons rsoudre le problme suivant : tant donn deux listes dentiers (ai )1iNa , (bj )1jNb
tries par ordre dcroissant, numrer par ordre dcroissant leurs produits ai bj .
Dans [126] et [28], un algorithme est propos pour rsoudre ce problme. Cet algorithme ne
stocke par tous les produits. En supposant sans perte de gnralit que Na > Nb , sa complexit
temporelle est de O (Na Nb log Nb ) et sa complexit en mmoire est de O (Nb ).
En implmentant cet algorithme et en utilisant les 5 familles obtenues, nous avons t en
mesure dnumerer les 231.70 paires dIV de la famille couvrante par ordre dcroissant de leur
ensemble dtats en collision en moins de 2 heures sur un processeur Celeron M 1.4 GHz. En
notant (Ci )1iN cette liste de paire, (Si )1iN la liste associe dtats en collision et Ni =
#(Si )1iN la liste dcroissante des cardinaux de ces ensembles, la complexit moyenne de la
recherche de collision en nombre de paires de mises lIV est de :
C=
N
X
i=1
Ni
.
253
On calcule cette somme pendant lnumration des paires en ordre dcroissant. Pour le membre
par dfaut de la famille VEST et les familles de paires dIV choisies on obtient C 227.73 .
Une fois une collision obtenue, on a une petite liste de valeurs candidates pour la partie
de ltat mis la cl correspondant aux cinq registres intressants. En testant ces candidats
sparment pour chaque registre, en modifiant lIV spcifique au registre, on est en mesure de
reconstituer 53 bits de ltat mis la cl. Le nombre de mises lIV additionnelles pour ces tests
est ngligeable par rapport au nombre de mises lIV ncessaires pour trouver une paire dIV
en collision.
Lattaque dcrite dans cette sous-section permet un attaquant de trouver 53 bits de ltat
mis la cl en 228.73 mises lIV en moyenne et 232.70 dans le pire cas. Cest lgrement plus
60
Chapitre 3. VEST
que la complexit de lattaque avec des IV longs. Cependant cette attaque utilise des IV de taille
minimale. En effet, au moins 12 tapes sont ncessaires pour crer une collision dans les registres
0, 4 et 7. Avec des IV plus longs, de taille comprise entre 12 et 23 octets, on peut utiliser le dbut
de lIV pour randomiser partiellement ltat et ajouter une stratgie dearly-abort lattaque
dcrite dans cette section pour amliorer sa complexit.
3.5
Recouvrement de cl
Dans cette section, nous montrons comment la partie de ltat mis la cl obtenue la
suite des attaques prsentes dans les sections prcdentes peut tre utilise pour acclrer la
recherche exhaustive de la cl de lalgorithme de chiffrement par flot. Ceci permet dvaluer
limpact sur la scurit de lalgorithme des collisions mises jour dans le mcanisme de mise
lIV.
3.5.1
On commence par dfaire la deuxime phase de la mise la cl. Comme tous les bits perturbant les registres intressants (0, 4, 5, 6 et 7) sont connus, nous sommes en mesure de reconstituer
les tats de ces registres aprs lintroduction des bits de cl. On sait galement que tous les bits
de ltat sont gaux 1 avant lintroduction des bits de cl. On peut donc raliser une attaque
par le milieu sur la cl, en dpit du fait que les bits de cl soient introduits dans tous les registres
selon un mcanisme de fentre glissante. Le mme type dattaque a conduit la disqualification
du double-DES en tant que successeur du DES.
3.5.2
Complexit. Lalgorithme dcrit ci-dessus permet dexplorer toutes les valeurs de cl pour
lesquelles la mise la cl initialise les 5 registres intressants aux valeurs reconstitues par
lattaque IV choisis. Il permet de retrouver la cl de lalgorithme de chiffrement par flot VEST
avec une complexit de lordre de 2max(F 53,F `) en temps et de 2` en mmoire. Le nombre
moyen de cls testes est 2F 53 .
3.5.3
61
Il est galement possible de raliser des attaques cls corrles trs efficaces. Supposons que
lon donne lattaquant la possibilit daccder lalgorithme VEST mis la cl avec des cls K
et K 0 ne diffrant quen position F ` 1. En ralisant une attaque IV choisis, il est en mesure
de rcuprer pour chaque cl ltat mis la cl des cinq registres intressants. En faisant une
hypothse sur les ` derniers bits de la cl K, il peut remonter lintroduction de ces bits de cls
partir de ltat mis la cl jusqu ltape suivant lintroduction du bit de diffrence de cl. Pour
la bonne hypothse, les tats obtenus en partant des tats mis la cl pour K et K 0 ne diffrent
quen position 1 des registres. Pour les mauvaises hypothses, la probabilit que cette proprit
soit satisfaite est de 253 . Lattaquant peut donc confirmer son hypothse ds lors que ` < 53.
Pour que les tats se comportent de manire alatoire et que lheuristique dcrite ci-dessus soit
applicable, ` doit tre suprieur la taille des registres.
Une fois les ` derniers bits de la cl dtermins, on itre le procd sur la partie inconnue de
la cl. Pour une cl de 128 bits, en choisissant ` = 16, on est en mesure de retrouver la cl en
utilisant 8 cls lies et en ralisant de lordre de 226 mises lIV et 219 tests dhypothses.
3.5.4
Discussion
Les attaques dcrites ci-dessus montrent que les produits des attaques diffrentielles IV
choisis exposes en section 3.4 peuvent thoriquement tre exploits pour retrouver la cl dun
algorithme VEST plus rapidement quen ralisant une recherche exhaustive. Ceci remet en cause
la scurit de VEST lorsquil est utilis avec des cls de taille gale au paramtre de scurit.
En [115, Section 3.3], les auteurs de VEST recommandent lutilisation de cls de taille gale
au moins deux fois le paramtre de scurit. Dans ce cas, on peut considrer que VEST rsiste
aux attaques ne faisant pas intervenir de cls lies dans la mesure o la complexit de notre
compromis temps-mmoire est suprieure au niveau de scurit vis. Cependant, dans le cadre
dattaques cls lies, la scurit scroule. Dans tous les cas, il nest pas souhaitable demployer
des algorithmes de chiffrement par flot pour lesquels il est possible de reconstituer une partie de
ltat mis la cl.
La spcification de VEST autorise lusage de cls de longueur gale au paramtre de scurit.
Dans ce cas dutilisation, elle recommande mme lutilisation dIV longs. Dans sa version 2,
VEST natteint pas le niveau de scurit annonc.
3.6
VEST peut tre utilis comme une fonction de hachage avec cl en utilisant la procdure
dcrite dans [115, Section 3.4]. Dans ce mode lalgorithme VEST est dabord mis la cl. Puis
le message dont on veut calculer un motif dintgrit est introduit dans ltat comme un IV
en utilisant la procdure de mise lIV classique, en modifiant uniquement la constante utilise
pendant la deuxime phase de la mise lIV. Pour terminer, 2n bits sont produits par lalgorithme
en mode gnration de pseudo-ala et constituent le MAC. Pour spcifier compltement cet
algorithme de MAC, un schma de padding doit tre ajout. Cependant, indpendamment de
ce schma de padding, les attaques IV choisis se traduisent naturellement en attaques en forge
existentielle messages choisis.
En effet les IV dans les attaques prcdentes sont ici remplacs par les messages. Ainsi, en
demandant le MAC dapproximativement 222.24 messages choisis, un attaquant peut reconstituer
53 bits de ltat mis la cl. tant donn la valeur obtenue, lattaquant peut ensuite crer une
62
Chapitre 3. VEST
paire de messages en collision aprs introduction du message. En demandant un MAC pour lun
de ces messages, il obtient galement un MAC pour lautre message. Ceci constitue une attaque
de type forge existentielle message choisis.
Deuxime partie
Fonctions de Hachage
Chapitre 4
Prliminaires
Sommaire
4.1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
65
65
67
68
68
69
70
70
72
73
74
74
74
75
75
77
77
79
79
80
On sintresse dans cette partie aux fonctions de hachage cryptographiques et plus particulirement leur construction travers lutilisation de modes opratoires appels extensions de
domaine. On introduit dans ce chapitre ces deux notions. Aprs quelques rappels sur les preuves
de scurit en cryptographie, on dfinit les fonctions de hachage et leur scurit, on prsente un
bref historique de ltude des fonctions de hachage et des principaux rsultats du domaine. On
aborde ensuite les extensions de domaine, notamment celle attribue Merkle et Damgrd. On
dfinit leur scurit et on dresse la liste des extensions de domaine les plus rpandues.
4.1
4.1.1
66
Chapitre 4. Prliminaires
exhaustive tous les attaquants envisageables. Pour les protocoles cryptographiques, la situation
est lgrement diffrente. En effet, ces protocoles sont des constructions mettant en uvre des
primitives cryptographiques. En formalisant les ressources de lattaquant et/ou en idalisant les
primitives cryptographiques, il est possible de driver des preuves de scurit rduisant la scurit du protocole cryptographique un problme mathmatique rput difficile ou la scurit
des primitives utilises.
Les rsultats de ces preuves par rduction sont parfois difficiles interprter. Trois lments
concourent rendre subtile linterprtation des preuves en cryptographie :
La pertinence de la modlisation adopte dans la preuve, notamment les moyens de lattaquant. Une preuve reposant sur un modle dattaquant passif, qui se contente dobserver
les messages changs sans les modifier, napportera aucune garantie de scurit contre
les attaques actives, o lattaquant a la possibilit dinsrer des messages de son choix
dans les communications, de supprimer ou de modifier des messages. Pour quune preuve
apporte des garanties de scurit, elle doit prendre en compte des classes dattaquants les
plus puissants possibles, cest dire disposant de beaucoup de moyens. La prise en compte
de ces moyens est dtaille en section 4.1.2.
Lutilisation dun modle idalis. Lorsquune primitive cryptographique est remplace par
une reprsentation idalise, la preuve suppose quun attaquant naccde la primitive en
question qu travers son interface et que la primitive se comporte de manire idale.
Les preuves dans des modles idaliss, comme les modles de loracle alatoire (ROM)
ou du chiffrement idal (ICM), ne prouvent pas directement la scurit dun cryptosystme complet, comme lattestent de nombreux rsultats dininstanciabilit [36, 68, 11] qui
dmontrent quune primitive concrte ne peut instancier sa reprsentation idalise en
exhibant des protocoles cryptographiques srs dans les modles idaliss et non srs ds
quune primitive concrte est utilise. De nombreux auteurs, dont [13, 133], estiment que
les preuves de scurit dans un modle idalis attestent de la correction structurelle des
protocoles cryptographiques tudis et quelles restent donc utiles en apportant notamment une garantie sur leur scurit contre des attaquants ne cherchant pas exploiter la
structure interne de la primitive idalise.
Lefficacit de la rduction. Les preuves par rduction consistent prouver que lexistence
dun attaquant contre le protocole cryptographique entrane lexistence dun attaquant
contre un problme bien tudi. Ces preuves sont en gnral constructives, cest--dire
quelles exhibent un moyen dutiliser un attaquant contre le protocole pour construire
un attaquant contre la primitive. Cependant, un point important dans ces preuves est
lestimation des moyens des attaquants en termes de puissance de calcul et de nombre
de requtes au protocole cryptographique. En effet, dans une preuve par rduction constructive, lattaquant obtenu contre la primitive sous-jacente est susceptible dexcuter
de nombreuses fois lattaquant contre le protocole, de raliser des calculs de complexit
leve, etc. On dit que la rduction est efficace si les ressources utilises par lattaquant
contre la primitive sous-jacente sont proches des ressources utilises par lattaquant contre
le protocole, et non-efficace quand elles sont beaucoup plus leves. Une preuve efficace
est prfrable du point de vue dimensionnement du cryptosystme. En effet, on dduit de
labsence dattaquant contre la scurit de la primitive ayant des ressources infrieures
c et de la preuve labsence dattaquant contre le protocole ayant des ressources infrieures
c0 . Lorsque la preuve est efficace, c c0 et le protocole est sr ds que la primitive est
dimensionne de manire traditionnelle. Si la preuve nest pas efficace, alors c0 c et
la preuve ne permet dliminer que des attaquants disposant de ressources faibles, plus
67
faibles que celles dont dispose un attaquant raliste. Afin de disposer de bonnes garanties
de scurit en tirant parti de la preuve, on doit donc surdimensionner la primitive afin
quelle rsiste des attaquants plus puissants, ce qui a un cot en terme de performances.
4.1.2
68
Chapitre 4. Prliminaires
valeur est tire uniformment dans limage de loracle alatoire et indpendamment des valeurs
prcdemment tires. Un oracle alatoire peut tre vu comme valuant de manire paresseuse
une fonction tire uniformment dans lensemble des fonctions de mme domaine et de mme
image que loracle alatoire.
Fonction de chiffrement idale. Une fonction de chiffrement idale est galement un oracle
public. Elle possde deux interfaces, permettant de raliser des requtes de chiffrement et
de dchiffrement sous une cl explicite dans la requte. Elle modlise un algorithme de
chiffrement par bloc tir alatoirement, i.e. pour chaque valeur du paramtre de cl, les fonctions
de chiffrement et de dchiffrement sont inverses lune de lautre et obtenues par tirage alatoire
dans lensemble des permutations de limage de la fonction de chiffrement idale. Les tirages de
ces permutations sont galement indpendants de la valeur du paramtre de cl.
4.1.3
Indistinguabilit
4.1.4
Indiffrentiabilit
Le cadre de lindiffrentiabilit est une gnralisation du cadre de lindistinguabilit permettant de traiter les cas o lattaquant a accs des lments internes de lobjet tudi. Cette
information supplmentaire nest pas ncessairement disponible dans les deux systmes quon
cherche distinguer. Par exemple, considrons un objet cryptographique obtenu en appliquant
une construction une primitive idale publique, et une modlisation idalise de cet objet.
Lorsquon considre lobjet cryptographique de dpart, la primitive utilise par la construction
est accessible lattaquant. Cependant dans la modlisation idalise de cette construction, elle
na pas dquivalent. Il ny a pas dquivalent linformation additionnelle fournie par un accs
la primitive sous-jacente dans la modlisation idalise. La cadre doit donc tre adapt Afin de
gnraliser le thorme de composition obtenu dans le cadre de lindistinguabilit, lide est de
montrer que laccs aux lments internes est simulable par lattaquant et que cet accs ne lui
69
apporte donc pas d information additionnelle permettant de distinguer les deux cryptosystmes
considrs. On reviendra sur cette notion de simulateur dans les chapitres 5 et 6, o lon donnera
des exemples de construction de simulateurs. On renvoie [94] pour une preuve du thorme de
composition dans le cadre de lindiffrentiabilit.
4.1.5
Principe
Les preuves par squence de jeux semploient montrer que deux jeux de scurit G et G0
sont proches et permettent dans ces cas de borner la probabilit quils se comportent de manires
diffrentes. Lintrt de ces preuves reposent sur deux ides :
On ne prouve pas directement la proximit des jeux G et G0 , mais on procde de manire
itrative en passant par une succession (finie) de jeux G = G0 , G1 , . . . , Gn = G0 . La proximit de G et G0 peut tre drive de la proximit pour tout i de Gi et Gi+1 . Ceci simplifie
les preuves de scurit, en remplaant une preuve monolithique complexe analyser en
une succession de preuves plus lmentaires.
On travaille de manire formelle, en modifiant petit petit, dun jeu lautre, le code des
algorithmes mis en uvre. Cette manire de procder donne une plus grande confiance
dans lexhaustivit de la preuve. De plus les transitions entre jeux peuvent tres classes
en trois types classiques, dont limpact sur les probabilits de comportement des jeux
successifs est bien tudi.
4.1.5.2
Type de transition
Dans sa formalisation, Shoup identifie trois types de transition. On les rappelle brivement
ici.
Transition par changement de distribution. Ce type de transition consiste modifier la
distribution de tirage dune variable alatoire entre deux jeux. Dans ce cas, les deux jeux peuvent
servir distinguer les deux distributions. La diffrence de probabilits entre les deux jeux est
donc borne par lavantage maximum dun distingueur entre les deux distributions. Lorsquon
borne le nombre de tirages de cette valeur alatoire par N au cours du jeu, lavantage maximum
peut tre born par N fois la distance statistique entre les deux distributions de tirage. Pour
deux distributions de probabilit Pr0 et Pr1 sur un ensemble la distance statistique est
donne par
1X
=
|Pr0 [x] Pr1 [x]| .
2
x
Transition par dlimitation des diffrences. Ce type de transition est utilis quand on
arrive montrer que deux jeux successifs se comportent de manire identique tant quun vnement Ev ne se produit pas. Le lemme de diffrence permet alors de borner la diffrence de
probabilits entre les deux jeux.
70
Chapitre 4. Prliminaires
4.2
On prsente dans cette section les fonctions de hachage cryptographiques, leurs usages et les
notions de scurit quelles doivent satisfaire.
4.2.1
4.2.1.1
Nous dfinissons ici les fonctions de hachage. Nous nonons leurs proprits, et notamment
les proprits que doivent remplir les fonctions de hachage cryptographiques. Nous terminons par
une discussion sur la manire dvaluer la scurit des fonctions de hachage.
Dfinition 23 On appelle fonction de hachage une fonction
h : {0, 1} {0, 1}`h ,
o {0, 1} dsigne lensemble des suites de bits de longueur finie arbitraire. On note `h la taille
de la sortie de la fonction de hachage. On appelle hach dun message M {0, 1} son image
H = h(M ) par la fonction de hachage h.
Une fonction de hachage est donc une fonction qui, un message de taille quelconque, associe
une valeur de longueur fixe. Les applications de telles fonctions sont nombreuses. Pour avoir une
utilit pratique, une fonction de hachage doit vrifier une proprit supplmentaire : elle doit
pouvoir tre value efficacement.
En cryptographie, on attend de plus des fonctions de hachage quelles se comportent comme
des fonctions alatoires. Pour des raisons pratiques, on ne peut pas mettre en uvre des procds
alatoires pour raliser des fonctions de hachage. On utilise des procds dterministes, pseudoalatoires . On attend dune fonction de hachage quil soit aussi difficile de la mettre en dfaut
quune fonction alatoire. Suivant le contexte dutilisation, cette attente peut se traduire par les
exigences dfinies ci-dessous :
71
Attaques gnriques
Nous prsentons dans cette section des algorithmes gnriques permettant de trouver collisions et (secondes) primages pour des fonctions alatoires. Ces algorithmes sont dits gnriques
car ils ne requirent aucune connaissance du fonctionnement de la fonction de hachage attaque.
On considre une fonction alatoire f : X Y. Lensemble darrive Y est suppos fini, de
cardinal 2`h .
Attaque en (seconde) primage. Pour une fonction alatoire, la probabilit
que limage
1
`
h
dun lment de X soit y Y est 2`h . Lalgorithme 7 requiert en moyenne O 2
calculs de f .
Pour trouver une seconde primage de f pour x, on prend y = f (x).
Attaque en collision. La meilleure attaque gnrique en collision repose sur une proprit
mathmatique contre-intuitive dsigne par le terme paradoxe des anniversaires. Cette proprit
nonce que trouver une collision pour une fonction alatoire requiert un nombre dvaluations
de la fonction bien infrieur la taille de lespace darrive.
Proposition 19 Soit f : X Y une fonction alatoire, o Y est un ensemble fini
de cardinal
t. Alors le nombre dvaluations ncessaires pour trouver une collision est en O t .
72
Chapitre 4. Prliminaires
Lalgorithme 8 permet de rechercher une collision sur une fonction alatoire. Il fait appel
une fonction recherche qui cherche parmi les valeurs de hach dj obtenues la valeur que lon
vient de calculer, renvoyant lindex de la premire valeur trouve, ou 1 sil nexiste pas de telle
valeur. Le paradoxe des anniversaires prvoit que le nombre dvaluations effectuer sera de
`h
lordre de 2`h = 2 2 .
Algorithme 8 Recherche gnrique de collision
Sortie : x, x0 tel que f (x) = f (x0 )
j 1
tant que true faire
choisir alatoirement xi X
yi = f (xi )
j recherche(yi )
si j 6= 1 et xi 6= xj alors
return (xi , xj )
fin si
stocker (xi , yi )
fin tant que
On peut galement utiliser lalgorithme de Floyd ([87, exercices 6 et 7, page 4]) qui permet
de sabstraire du cot en mmoire de lalgorithme prcdent.
4.2.2
4.2.3
73
Lorsquon prouve la scurit dun schma cryptographique utilisant comme primitive sousjacente une fonction de hachage, on a besoin de formaliser la scurit des fonctions de hachage
pour pouvoir la prendre en compte dans la preuve de scurit. Usuellement, ces preuves de
scurit sont des preuves par rduction. Elles noncent que sil existe un attaquant capable de
remettre en cause la scurit du protocole, alors il existe un attaquant capable de remettre en
cause la scurit dune primitive sous-jacente. [121] dtaille un problme li la formalisation
de la rsistance en collision des fonctions de hachage, primitive nutilisant pas de cl. En effet,
du fait de la taille des ensembles de dpart et darrive dune fonction de hachage, lexistence
dune collision est assure. Il existe donc un attaquant capable de produire une collision, un
tel attaquant possdant dans son code une collision de la fonction de hachage. Les preuves de
scurit rduisant la remise en cause de la scurit dun protocole lexistence dun adversaire
produisant une collision pour une fonction de hachage napporte donc pas de garantie de scurit.
Les cryptographes ont proposs deux mthodes pour lever cette difficult.
Mthode 1 : Ajout dune cl. Afin de faciliter la formalisation des proprits de scurit,
Damgrd considre des fonctions de hachage ayant une entre supplmentaire correspondant
une cl [52]. Lobjectif de lattaquant cherchant remettre en cause la rsistance en collision
dune fonction de hachage est alors, tant donn une cl K, de trouver M 6= M 0 tel que
h(K, M ) = h(K, M 0 ). Lattaquant ne matrisant pas le choix de la cl K, lespace des cls
tant suppos suffisamment grand et la taille du code de lattaquant tant limite par son temps
dexcution, le code dun attaquant efficace ne peut contenir une collision pour toute cl possible.
La porte de cette premire mthode de formalisation est cependant discutable, dans la mesure
o les fonctions de hachage sont gnralement dfinies sans cl. Quelques mthodes classiques
permettent de transformer une fonction de hachage sans cl en fonction de hachage avec cl,
comme par exemple lutilisation dun mode tel que HMAC [88]. Cependant lusage de fonctions
de hachage avec cl reste limit dans les contextes requrant la rsistance en collision, notamment
dans celui de la signature lectronique [99][Chapitre 11].
74
4.2.4
Chapitre 4. Prliminaires
Nous avons vu que la scurit des fonctions de hachage peut svaluer vis--vis de trois
proprits classiques, rsistance en collision, seconde primage et primage. Dautres notions
de scurit ont t dfinies ultrieurement. Elles cherchent rapprocher la fonction de hachage
dune primitive idalise.
PRF. La premire de ces notions, celle de fonction pseudo-alatoire, cherche comparer une
fonction de hachage cl une famille de fonctions alatoires. Cette notion permet de dcrire la
scurit des fonctions de hachage avec cl et est utilise quand on cherche dmontrer quune
telle fonction constitue un bon algorithme dauthentification de message (MAC).
PRO. La deuxime de ces notions, celle de pseudo oracle alatoire, cherche comparer la
fonction de hachage une fonction alatoire. Intuitivement, elle suppose quil nest pas possible
dexhiber de relation entre entres et sorties de la fonction de hachage autre que lapplication
de la fonction. Cette notion doit son succs son utilisation pour prouver de nombreux schmas
cryptographiques asymtriques reposant sur une fonction de hachage.
4.3
Historique
Lhistoire de ltude des fonctions de hachage peut tre grossirement rpartie en trois priodes.
4.3.1
Ltude publique des fonctions de hachage dmarre au milieu des annes 1980 et une premire
priode va tre consacre dfinir les proprits de scurit attendues des fonctions de hachage
et chercher dfinir des fonctions ralisant ces proprits de scurit. Cette priode va voir
lmergence dun principe de conception de fonctions de hachage qui va se gnraliser et aboutir
la normalisation dun grand nombre de fonctions de hachage similaires, notamment MD4 [117]
et MD5 [118], SHA-0 [110] et SHA-1 [111]. tant donn les besoins exprims lemploi de ces
fonctions va se gnraliser trs rapidement.
Les principes de conception communs entre ces fonctions permet de dcomposer leur construction en trois niveaux :
le cur de la fonction de hachage est une permutation paramtre. Dans le cas des algorithmes des familles MD et SHA, des permutations paramtres spcifiques sont dfinies.
Elles ont pour particularit des tailles de cls et de blocs plus importantes que les tailles
usuellement rencontres pour les algorithmes de chiffrement par bloc. Par exemple pour
la fonction SHA-256, la taille de cl est de 512 bits, la taille de bloc de 256 bits.
un mode de compression permet de transformer cette permutation paramtre en une
fonction de compression, qui peut tre vue comme une fonction de hachage traitant des
messages de taille fixe.
une extension de domaine permet de transformer cette fonction de compression en une
fonction de hachage, pouvant traiter des messages de longueur arbitraire.
4.3. Historique
4.3.2
75
Cryptanalyses
partir du milieu des annes 1990, une activit de cryptanalyse de ces fonctions de hachage
commence se dvelopper. Les analyses se concentrent principalement sur la rsistance en collision de ces fonctions. Les premiers rsultats marquants sont obtenus par Dobbertin qui calcule
une collision pour MD4 [57] et une collision pour la fonction de compression de MD5 [58].
En 1998, Chabaud et Joux proposent une attaque contre SHA-0 [37]. Outre le fait dexpliquer
pourquoi cette fonction a t corrige en 1995, dfinissant ainsi la fonction SHA-1, cette attaque
expose des principes gnraux pour raliser des attaques en collision sur des fonctions de hachage.
Lide centrale est de raliser une attaque diffrentielle. Il sagit didentifier des diffrences entre
deux messages susceptibles de suivre une propagation bien tablie au cours des calculs et finissant
par sannuler lissue du calcul. La squence des diffrences parcourues au cours du calcul est
dsigne sous le terme de chemin diffrentiel. Une fois un chemin diffrentiel dcouvert, on
cherche une paire de messages pour laquelle le chemin diffrentiel est suivi lors des calculs, ce
qui conduit une collision.
Durant la comptition AES, qui sest droule entre 1997 et 2001 avec pour objectif la normalisation dun algorithme de chiffrement par bloc successeur du DES, lactivit de cryptanalyse
des fonctions de hachage est quelque peu mise entre parenthses. Il faut attendre les annes 20032004 pour voir merger de nouveaux rsultats comme la ralisation du calcul dune collision de
la fonction SHA-0 [20]. Lanne 2005 voit la publication par Wang, Yu et Yin dattaques en
collision contre les fonctions MD5 [138] et SHA-1 [137]. Ces nouvelles attaques reprennent le
principe des attaques diffrentielles, mais introduisent de nouvelles techniques pour acclrer
la phase de recherche de paires de messages conformes au chemin diffrentiel identifi, comme
les techniques de modification de messages et les techniques de bits neutres. La construction de
chemins diffrentiels est galement adapte ces techniques.
4.3.3
SHA-3
76
Chapitre 4. Prliminaires
le but de faire merger un bon niveau de confiance. Pour une bibliographie complte sur les
candidats, les analyses de scurit qui sy rapportent et les attaques dont ils ont fait lobjet, on
se rfre au SHA-3 Zoo [61].
Phase initiale. Lappel candidature, se clturant le 31 octobre 2008, a vu la soumission
de 64 candidats, dont 51 ont t retenus pour prendre part la comptition. De nombreuses
attaques pratiques sont publies pendant cette premire phase. lissue de cette premire phase,
14 candidats sont retenus pour participer la phase suivante. La slection sest opre principalement sur des critres de scurit, limination des candidats casss , et de performances,
limination des candidats notablement plus lents que les algorithmes de la famille SHA-2.
Deuxime phase. Lanalyse des candidats restants, parfois dsigns sous le terme de demifinalistes, se fait plus subtile. Si quelques attaques thoriques sont encore dcouvertes [65, 31],
lessentiel des rsultats pendant cette phase se concentrent sur des versions rduites des algorithmes ou lidentification de proprits non-idales des primitives sous-jacentes des algorithmes.
Au terme de cette phase, cinq algorithmes sont retenus pour la phase finale. La slection peut
tre vue comme conservatrice dans le sens o :
Les algorithmes concourant peuvent tre classs en diffrentes catgories selon leurs
principes de conception, leur source de non linarit, etc. La slection du NIST ne prend
pas parti pour lun de ces principes de construction. Au contraire, elle conserve au moins
un algorithme de chaque famille afin que tous les principes de conception continuent tre
tudis.
En-dehors des considrations de performances, les algorithmes retenus sont ceux disposant
des meilleures garanties de scurit. En particulier, lexistence de proprits non idales
sur les composants internes des fonctions de hachage a t considre comme rdhibitoire.
Au contraire, les fonctions de hachage disposant dune bonne marge de scurit ont t
privilgies. Cette marge de scurit peut tre estime de la manire suivante : chaque
fonction utilise une primitive sous-jacente (permutation, permutation paramtre, etc)
obtenue par itration dune tape lmentaire ; on compare le nombre ditrations pour
lequel il est possible didentifier une proprit non idale sur la primitive sous-jacente et le
nombre ditrations utilis dans la fonction de hachage. En rgle gnrale, plus cet cart
est important, plus on dispose dune marge de scurit importante.
On peut encore noter propos de cette slection que si les performances affiches par les candidats ont permis de les dpartager entre eux, elles nont pas favoris quelques candidats plus
rapides prsentant moins de garanties. De plus les algorithmes retenus ont des dbits du mme
ordre de grandeur que SHA-2 et sont plutt moins rapides sur des plateforme bas cot (processeur 8 ou 32 bits, cf [59]).
Phase finale. La phase finale est en cours actuellement. Elle devrait sachever dici lanne
prochaine, la publication du standard SHA-3 tant prvue pour 2012. Les algorithmes finalistes
sont Blake, Grstl, Keccak, JH et Skein.
Outre lidentification dun recours au cas o des dfauts viendraient tre identifis contre la
famille SHA-2, on peut dores et dj affirmer que la comptition SHA-3 a permis des avances
notables de ltat de lart du domaine des fonctions de hachage :
77
Sur le plan des principes de conception, des familles ont t identifies et des principes
dattaques spcifiques dvelopps ;
Sur le plan des modes opratoires, extensions de domaine, modes de compression, de
nouvelles propositions ont t formules. On peut citer titre dexemple :
une nouvelle extension de domaine o la mthode de compression est rduite sa plus
simple expression (ou exclusif) et o la fonction de tour est une permutation : les fonctions ponges [19], dont Keccak est un exemple ;
une extension de domaine base sur un tweakable-block-cipher [91], mode propos dans
la dfinition de lalgorithme Skein.
4.4
Extension de domaine
Comme nous lavons vu dans la section prcdente, une fonction de hachage est une primitive
cryptographique susceptible de traiter des messages trs longs. Afin de faciliter la construction
et lvaluation de telles primitives cryptographiques, on procde usuellement en dfinissant une
primitive ayant des entres de taille fixe relativement petite et en la mettant en uvre dans un
mode opratoire. Un tel mode opratoire, prolongeant le domaine de dfinition de la primitive
ayant des entres de taille fixe est appel extension de domaine. Historiquement, une extension
de domaine relativement simple a merg ds le dbut des annes 1990 et son usage sest rpandu
dans les fonctions de hachage dfinies partir de cette priode. On commence par prsenter cette
extension de domaine, attribue Merkle [100] et Damgrd [52]. Des limitations dcouvertes sur
cette extension de domaine ont entran un effort de recherche afin de dterminer les proprits
que doit satisfaire une bonne extension de domaine destine la construction dune fonction de
hachage et de dterminer de nouvelles constructions structurellement plus robustes. On ralise
un panorama de ces proprits et de ces constructions dans les sections suivantes.
4.4.1
4.4.1.1
78
Chapitre 4. Prliminaires
padding nest pas anodin pour la scurit (cf [99], commentaire de lalgorithme 9.25 et remarque
9.32). Un padding couramment employ consiste concatner au message un bit 1, suivi dun
nombre variable de bits 0. Puis on concatne au message ainsi obtenu la valeur de la taille
en bits du message initial. Cette taille est code sur un nombre fixe de bits, 64 pour MD4. Le
nombre de 0 ajouts est choisi de telle sorte que le message final obtenu ait une taille multiple de la taille dun bloc et soit le plus petit possible. Ce schma de padding porte le nom de
MD-strengthening.
La partie grise du dernier bloc de message dans la figure 4.1 reprsente le padding. Avec
le padding dcrit ci-dessus, une partie de la chane de caractres ajoute au message initial
peut galement tre prsente dans lavant-dernier bloc, contrairement ce que la figure semble
impliquer.
Les fonctions de compression pouvant tre considres comme des fonctions de hachage
rduites, il est naturel dtendre les objectifs de scurit des fonctions de hachage ces fonctions
de compression.
Dfinition 25 Une collision de la fonction de compression F est un quadruplet
(IV, M, IV 0 , M 0 ) {0, 1}`h {0, 1}m {0, 1}`h {0, 1}m , (IV, M ) 6= (IV 0 , M 0 ) tel que
F (IV, M ) = F (IV 0 , M 0 ).
De manire formelle, on peut dmontrer le thorme suivant d Merkle et Damgrd :
Thorme 7 Soit F une fonction de compression et h une fonction de hachage construite sur
le principe de Merkle-Damgrd utilisant F et utilisant le padding dcrit plus haut. Alors on a :
F est rsistante en collision h est rsistante en collision.
Si une fonction de hachage utilise une "bonne" fonction de compression, il sera difficile de
trouver des collisions sur la fonction de hachage. On ne sait cependant pas montrer lquivalence
des deux propositions. Ainsi, une collision pour la fonction de compression dune fonction de
hachage itre ne remet pas pour autant en cause la rsistance en collision de la fonction de
hachage. Cependant, dun point de vue acadmique, on rejette les fonctions de hachage contruites
suivant le principe de Merkle-Damgrd reposant sur des fonctions de compression pour lesquelles
on peut trouver des collisions plus rapidement que par une attaque gnrique. Limportance de ce
thorme dcoule du fait quil permette au concepteur dune fonction de hachage de se concentrer
sur la conception de la fonction de compression. Lextension de Merkle-Damgrd lui fournit une
manire naturelle de transformer une fonction de compression rsistante en collision en une
fonction de hachage rsistante en collision.
M0
M1
H0
H1
Mk1
Hk1
Hk = H
79
Dautre part, la notion de primage pour une fonction de hachage se transpose galement
aux fonctions de compression :
Dfinition 26 Soit H1 {0, 1}`h . Une primage de H1 par la fonction de compression F est
un couple (H0 , M ) {0, 1}`h {0, 1}m tel que
F (H0 , M ) = H1 .
De plus, on a le rsultat de rduction de scurit suivant :
Thorme 8 Soit F une fonction de compression et h une fonction de hachage construite sur
le principe de Merkle-Damgrd utilisant F . Alors on a :
F est rsistante en primage h est rsistante en primage.
En dautres termes, on peut attaquer la rsistance en primage dune fonction de hachage
itre si on connait une attaque en primage sur la fonction de compression (cf [116], Proposition 2.2).
4.4.1.2
Si litration dune fonction de compression permet de dfinir des fonctions de hachage utilisables en pratique, elle structure fortement les fonctions de hachage obtenues. Quelques rsultats
ont t obtenus sur le mode de Merkle-Damgrd, rsultats reposant notamment sur cette structure itrative. Elle induit un comportement qui distingue les fonctions construites suivant ce
mode de fonctions alatoires.
Nous prsentons dans cette section les attaques tirant parti des modes opratoires utiliss par
les fonctions de hachage usuelles. Ces attaques ne font intervenir que les proprits des modes
opratoires et ont des complexits meilleures que les attaques gnriques contre les fonctions de
hachage. Cependant, elles sont elles-mmes gnriques en un certain sens, car elles nexploitent
pas de faiblesse des primitives utilises par les modes.
4.4.2
4.4.3
Multicollisions
Une autre proprit dcouverte par Joux sur les fonctions de hachage itres est leur relative
faiblesse vis--vis des multicollisions [79].
80
Chapitre 4. Prliminaires
Pour une fonction de hachage itre, la complexit du calcul dune 2k -multicollision est donc
trs infrieure la complexit de ce calcul pour une fonction de hachage idale.
M00
h0
h1
M01
0
Mk1
M20
M10
h2
M11
hk
M21
1
Mk1
k1
lun des deux blocs qui collisionnent ltape i, M0i0 ||M1i1 || . . . ||Mk1
, (i0 , . . . , ik1 ) {0, 1}k ,
collisionnent et sont distincts.
Depuis [79], dautres publications ont exploit la possibilit dobtenir des multicollisions
pour attaquer les fonctions de hachage itres. Les rsultats les plus significatifs sont rappels
ci-dessous :
Attaques sur des fonctions concatnes, variante initiale de Joux [79], extension par Hoch
et Shamir [75],
Acclration de lattaque en seconde primage de messages longs par Kelsey et Schneier
[82],
Attaque Nostradamus contre les schmas dengagement [81].
4.4.4
Dans la section prcdente on vient de voir que lattrait de lextension de domaine de MerkleDamgrd provient notamment de sa capacit transposer, prserver quelques proprits de la
fonction de compression sous-jacente la fonction de hachage obtenue. [1, 12, 43] montrent que
dautres proprits de scurit ne sont cependant pas prserves par le mode de Merke-Damgrd.
En conjonction avec ses faiblesses identifies, ceci a conduit les cryptographes proposer des
extensions de domaine plus robustes, dont on donne ici quelques exemples, en sefforant pour
chacune delles dexposer leurs motivations.
81
wide-pipe MD/Chop-MD. Une premire ide propose ds 2004 par Lucks [92] est lutilisation dun tat interne plus grand que la taille de sortie de la fonction de hachage w > `h . Dans
une premire phase, lextension de domaine de Merkle-Damgrd est applique avec une variable
de chanage de w bits. Dans une phase de finalisation la variable de chanage sur w bits est
transforme en une valeur de `h bits, soit travers une fonction de compression, soit dans le cas
de Chop-MD, par simple troncation. Coron et al. montrent que Chop-MD est indiffrentiable
dun oracle alatoire [43].
M0
M1
H0
w
H1
w
Mk1
Hk1
w
Hk
w
H
`h
HAIFA. Biham et Dunkelman proposent en 2006 une extension de domaine, HAIFA [22], base
sur lextension de domaine de Merkle-Damgrd. Le but recherch est damliorer la rsistance
du mode de Merkle-Damgrd contre les attaques qui laffectent. La principale diffrence consiste
en lajout dentres additionnelles la fonction de compression :
un sel, dfinissant de fait une fonction de hachage avec cl. Cet ajout permet notamment
dappliquer formellement les notions de scurit dfinies sur les fonctions de hachage avec
cl et dviter les compromis temps-mmoire.
un compteur indiquant le nombre de bits de message dj traits.
M0
M1
sel
0
H0
sel
m
H1
Mk1
sel
(k 1)m
Hk1
Hk = H
EMD. EMD [12], pour Enveloped Merkle-Damgrd, est une extension de domaine construite
sur le mme principe que le mode HMAC. Dans une premire phase, le mode de Merkle-Damgrd
est appliqu. Le traitement du dernier bloc de message diffre. Sa concatnation avec la sortie du
mode de Merkle-Damgrd est utilise comme bloc de message dun dernier appel la fonction
de compression. [12] dmontre que lorsque le padding utilis est le MD-strengthening, ce mode
prserve rsistance en collision, ainsi que les proprits PRF et PRO.
82
Chapitre 4. Prliminaires
M0
M1
H0
H1
Mk2
Hk2
Mk1
k
H00
M1
Mk1
Chapitre 5
Sommaire
5.1
5.2
5.3
83
86
5.2.1
Concept dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . . . . . . . .
86
5.2.2
87
5.2.3
88
5.2.4
99
5.3.2
5.3.3
Nous prsentons dans ce chapitre une preuve dindiffrentiabilit dune extension de domaine
gnrique. Cette extension de domaine gnralise de nombreuses extensions de domaine, notamment Chop-MD et celle dveloppe dans le cadre de la dfinition de la fonction Shabal. On drive
de cette preuve des bornes sur lavantage dun distingueur cherchant distinguer une fonction
idale construite sur ce mode gnrique et un oracle alatoire, pour diffrents encodages.
5.1
Nous introduisons en Figure 5.1 une extension de domaine gnrique. Ce mode opratoire
permet dutiliser une primitive dont les entres sont de taille finie et un encodage de message
non-ambigu pour construire une fonction de hachage dfinie sur lensemble des messages de
longueur finie arbitraire.
Ce mode est un mode itratif : chaque tour, un bloc de message de `m bits est trait
et un tat interne 1 de s bits est mis jour. Nous supposons donn un encodage de message
non-ambigu, ou padding. Une fonction dencodage, pad, permet de transformer un message de
longueur finie arbitraire, M {0, 1} en un
+ message dcomposable en un nombre entier de blocs,
dit message padd, pad(M) {0, 1}`m . La fonction de dcodage associe est note unpad.
Une fois le message padd trait par la construction itrative, la valeur de hach, de longueur
`h bits est dfinie comme une partie de ltat interne final. En dautres termes, la fonction de
finalisation retenue est une troncature de ltat interne final.
1. La terminologie tat interne est ici prfre celle de variable de chanage traditionnellement employe
pour la construction de Merkle-Damgrd
84
Nous dmontrons dans ce chapitre que la scurit de cette construction dpend des proprits
du schma de padding retenu. Aprs avoir considr un schma de padding arbitraire nous nous
intresserons au cas des padding sans prfixe.
La fonction utilise pour mettre jour ltat interne chaque tour est dcompose en deux
oprations lmentaires. Tout dabord, une insertion de bloc de message Insert[M ] consiste
appliquer ltat interne une transformation inversible dpendant du bloc de message courant
M {0, 1}`m . Dans un deuxime temps, la primitive F sur laquelle repose la construction est
applique. Lentre de F est constitue de ltat interne et du bloc de message courant. La sortie
de F met jour tout ou partie de ltat interne, dont lintgralit de la partie de ltat interne
utilise comme valeur de hach de ltat interne final. On peut donc dcomposer ltat interne
en trois parties disctinctes :
la partie de ltat interne mise jour par F mais non extraite la fin du calcul de la
construction est note A et sa taille en bit est note `a ;
la partie de ltat interne mise jour par F et extraite la fin du calcul de la construction
est note B et sa taille en bit est note `h ;
la partie de ltat interne non mise jour par F est note C et sa longueur est note `c .
La taille de ltat interne s vrifie s = `a + `h + `c , et n la taille de sortie de la fonction F vrifie
n = `a + `h . Pour un tat interne x, on note x|A , x|B , x|C les parties A, B, C de x.
On note
F : {0, 1}`m {0, 1}s {0, 1}n
(M, A, B, C) FM,C (A, B) = (A0 , B 0 ).
Lorsque F est modlise par un chiffrement par bloc idal, (M, C) joue le rle de cl.
On note xi la valeur de ltat interne aprs linsertion de i blocs de message et Mi le bloc de
message dont linsertion produit ltat xi . La valeur initiale de ltat interne est une constante
x0 = (A0 , B0 , C0 ). La construction est alors dfinie par la fonction de mise jour suivante :
xi+1 = Round[Mi ](xi ) = (F(Mi , Insert[Mi ](xi )), Insert[Mi ](xi )|C ) .
M1
F
Insert
Mk
M2
F
Insert
F
Insert
85
pour `c = 0 (i.e. la primitive sous-jacente affecte lintgralit de ltat interne). Dans le cas o
ltat interne est le double de la taille des hachs produits (i.e. n = s = 2`h ), ce mode correspond
la construction dite wide-pipe [92].
Shabal. Le mode opratoire utilis dans Shabal-512 peut tre obtenu en utilisant la fonction
dinsertion dfinie par
Insert[M ](A, B, C) = (A, C M, B M ),
avec `h = `c = `m = 512. En effet, dans la reprsentation originale du mode opratoire de
Shabal, tel que dcrit en Figure 5.2, linsertion de message entre deux appels conscutifs la
permutation paramtre P fait intervenir deux blocs de messages diffrents, puisque le bloc de
message correspondant au premier appel P est soustrait C avant que le bloc de message
correspondant au deuxime appel P soit ajout B. Bien quil sagisse l de le reprsentation
naturelle de ce mode, particulirement du point de vue de limplmentation, elle alourdit les
preuves de scurit.
M1
M2
A
P
B
C
86
M2
A
Q
B
C
Q
+
5.2
Dans cette section, nous donnons une preuve que le mode opratoire gnrique dcrit dans
la section prcdente est indiffrentiable dun oracle alatoire lorsque la primitive sous-jacente
est idale, i.e. lorsquelle est remplace par un oracle alatoire ou une permutation paramtre
idale. Cette preuve, dont le rsultat est nonc dans les thormes 9 et 10 amliore les bornes
prcdement connues aussi bien pour Chop-MD [38] que pour Shabal [34]. Les bornes donnes
pour le cas o lencodage de message est arbitraire sont amliores pour un encodage de message
sans prfixe.
5.2.1
Concept dindiffrentiabilit
CF
87
SH
Q0
5.2.2
Soit X = {0, 1}s lensemble des tats internes possibles. Rappelons que la i-me insertion de
message excute une sous-routine Round[Mi ], dfinie par
Round[Mi ](x) = F(Mi , Insert[Mi ](x)), Insert[Mi ](x)|C ,
sur ltat interne courant.
Ltat interne initial est un tat constant fix par la spcification de la construction x0 =
(A0 , B0 , C0 ). Le simulateur de F (resp. de (F, F 1 )) est obtenu en construisant dynamiquement
un graphe G = (V, E) X X 2 , o V est lensemble des sommets et E lensemble des arcs.
V est form de lensemble des tats Insert1 [M ](A, B, C), o (M, A, B, C) est une requte F
reue par le simulateur et de toutes les rponses aux requtes reues par le simulateur compltes
par les parties C des requtes pour former un tat interne X . Lorsque F est une permutation
paramtre, V contient galement les tats (A0 , B 0 , C) correspondant aux requtes (M, A0 , B 0 , C)
faites la fonction inverse F 1 , et Insert1 [M ](A, B, C) o (A, B) est la rponse correspondant
du simulateur.
M
Un arc de x y dans le graphe est tiquet par un bloc de `m bits M et est not x y.
Il traduit le fait que les tats x et y sont lis par lapplication de la fonction de tour pendant
le jeu, i.e. y = Round[M ](x). On note de plus X (resp. Y ) le sous-ensemble de V constitu des
origines (resp. des buts) des arcs dans E.
Un sommet x V a un chemin tiquet par une chane de bits sil existe une liste
(ventuellement vide) de blocs de message de `m bits M1 , . . . , Mk avec = M1 k . . . kMk telle
M
i
quil existe k arcs dans le graphe de la forme xi1
xi , 1 i k et xk = x. On note alors
[G]
x0 ,
x. Si besoin, on mentionne le graphe dans lequel le chemin existe x0 , x. Dans ce cas,
les sommets traverss par le chemin et les artes quil emprunte appartiennent aux ensembles
88
des sommets et des artes de G. Le chemin est dit complet si son tiquette est un message padd,
i.e. il existe M {0, 1} tel que = pad(M).
Au cours de la preuve de scurit, nous allons tre amens considrer des vnements
se produisant au cours de la construction du graphe. Par consquent nous considrerons ltat
de certains objets un instant donn du jeu de scurit. Pour un objet O, on note O(q) sa
valeur avant la q-me requte, la premire requte tant indexe par 1. Soit un sommet (resp.
un arc) prsent dans le graphe la fin dun jeu. On note qx (resp. qa ) la requte qui insre cet
lment dans le graphe, i.e. qx = max (q 0|x
/ V (q)) (resp. qa = max (q 0|x
/ E(q))), avec
la convention que la requte 0 correspond linitialisation du simulateur.
5.2.3
Nous considrons le mode gnrique de la Figure 5.1 pour un encodage de message quelconque. Nous prsentons en Figure 5.5 un simulateur S. En utilisant ce simulateur, on obtient
une borne prcise sur lavantage dun distingueur cherchant distinguer notre construction
dun oracle alatoire dans le cadre de lindiffrentiabilit. Notre preuve consiste dfinir une
succession de jeux pour construire progressivement le simulateur S. On montre ensuite que la
diffrence des probabilits de voir le distingueur rpondre 1 entre le jeu original o il interagit
avec Q = (C F , F) et le jeu final o il interagit avec Q0 = (H, S H ) est borne par les probabilits
dvnements dchec qui sont susceptibles de permettre au distingueur de faire la diffrence
entre la construction et la simulation.
Initialisation de S
1. V = {x0 } et E =
Simulation de F
Entre:
(M, A, B, C)
Sortie:
(A0 , B 0 )
H
1. x = Insert1 [M ](A, B, C)
2. Si x y E
(a) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)
3. Si , M tel que x0 ,
x et kM = pad(M)
$
6. V = V {x, y} et E = E {x y}
7. Retourner (A0 , B 0 )
5.2.3.1
Rsum de la preuve
La proprit dindiffrentiabilit est prouve en construisant une squence de jeux pour construire progressivement S. Les jeux successifs sont reprsents schmatiquement en Figure 6.2
et peuvent tre rsums de la manire suivante :
89
F
C
H
S
(0)
(1)
(2-3)
(4)
(5)
(6)
(7)
Figure 5.6 volution des interactions entre oracles et simulateurs au cours de la preuve.
(0) On part du jeu original o le distingueur interagit avec le systme Q = (C F , F), o C est
une implmentation de la construction. 2
(1) On insre un simulateur S, qui remplace F auprs du distingueur et de la construction. Ce
simulateur se contente de transmettre les requtes F et renvoie les rponses obtenues de
F lappelant, C ou D. S construit le graphe correspondant aux couples (requte, rponse)
quil voit passer.
(2-3) S simule F au lieu de raliser des appels F.
(4) Lorsque cest ncessaire, S fait des appels H pour dfinir ses valeurs de sorties.
(5) C est remplace par une construction C qui excute C F sur ses entres, en faisant des appels
S lorsquune valuation de F est ncessaire, mais ignore les rponses obtenues et ralise
un appel final H pour obtenir la rponse la requte. Les rponses des requtes L ne
dpendent plus du simulateur.
(6) C est supprim et les requtes L sont directement transmises loracle alatoire. Un
composant du distingueur enregistre les requtes L et les excute en fin de jeu. Les
rponses aux requtes R ne dpendent plus des appels L.
(7) Lexcution finale de la construction est supprime. Le distingueur interagit prsent avec
le systme final Q0 = (H, S H ).
On note Wi lvnement D retourne 1 au jeu i, i.e. avant la (i + 1)-me transition. Lors de
chaque transition entre les jeux i et i + 1, on borne la diffrence entre les probabilits Wi et
Wi+1 . Pendant la squence de jeux, nous allons dfinir des vnements dchecs permettant
dvaluer dans quels cas les simulateurs dans deux jeux successifs produisent des sorties ayant
des distributions diffrentes. Lorsquon considre simultanment un vnement Ev et Wi , la
probabilit de lvnement est considr dans le jeu i. Si ncessaire, on indexe Ev par i pour
viter toute confusion : Evi .
Au cours de la preuve, on sassure que chaque requte augmente dau plus un le nombre
darcs dans le graphe du simulateur.
2. On ne fait pas de distinction entre la construction C et un programme qui lexcute.
90
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
C
Simulation de F
Entre:
(M, A, B, C), origine O = C ou D
Sortie:
(A0 , B 0 )
S
D
1. x = Insert1 [M ](A, B, C)
2. Appeler F : (A0 , B 0 ) = F(M, A, B, C)
3. y = (A0 , B 0 , C)
M
4. VO = VO {x, y} et EO = EO {x y}
5. Retourner (A0 , B 0 ) O
Jeu 2. On modifie lgrement notre simulateur pour liminer la fonction alatoire F. Celleci est remplace par une simulation parfaite ralise par le simulateur. chaque fois que S a
besoin dobtenir F(M, A, B, C) pour (A, B, C) X , S slectionne alatoirement la rponse. On
explicite le simulateur en Figure 5.8. Ceci ne modifie pas les distributions des sorties puisque F
est un oracle alatoire. Par consquent Pr [W2 ] = Pr [W1 ].
91
Initialisation de S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
(M, A, B, C), origine O = C ou D
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
S
D
2. Si x y ED EC
M
(a) VO = VO {x, y} et EO = EO {x y}
(b) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)
$
5. VO = VO {x, y} et EO = EO {x y}
6. Retourner (A0 , B 0 ) O
on dit que lvnement Echec1 se produit. Le simulateur mis jour est explicit en Figure 5.9.
Les modifications entre le jeu 2 et le jeu 3 ne modifient pas la vue de lattaquant, par
consquent Pr [W3 ] = Pr [W2 ].
On dfinit prsent une proprit du graphe impliquant les deux proprits nonces ci
dessus. Nous prouvons galement que cette proprit est vrifie lorsque Echec
1 ne se produit
pas.
Dfinition 28 Soit G = (V, E) le graphe construit par le simulateur la fin dun jeu de la suite
de jeux dcrite dans la preuve. On dit que le graphe est stable si pour tout sommet x V , le
nombre de chemins de x naugmente pas aprs la requte qx .
Proposition 21 Soit G = (V, E) le graphe construit par le simulateur la fin dun jeu. Si G
est stable alors un sommet de V a au plus un chemin.
92
Initialisation de S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
(M, A, B, C), origine O = C ou D
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
D
2. Si x y ED EC
M
(a) VO = VO {x, y} et EO = EO {x y}
(b) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)
$
6. VO = VO {x, y} et EO = EO {x y}
7. Retourner (A0 , B 0 ) O
k
1
2
uk = x
x0
u1
u2 . . . uk1
et
P
1
2
`
x0
v1
v2 . . . v`1
v` = x.
P`i+1
deux arcs uki x0 et v`i x0 partagent le mme but x0 mais ont des sources
diffrentes. Considrons prsent le sous-ensemble de E des arcs dont le but est x0 . tant
donn qu chaque requte au plus un arc est dfini, considrons la requte o le premier arc
de ce sous-ensemble est dfini. la fin de cette requte, x0 a au plus un chemin, alors que x0
a au moins deux chemins la fin du jeu. Ainsi G nest pas stable.
Proposition 22 Soit G = (V, E) le graphe construit par le simulateur la fin dun jeu suscep
tible de lever le drapeau Drapeau1 . Si Echec
1 ne se produit pas, alors G est stable.
Dmonstration : On dmontre la preuve par contrapose. Supposons que G nest pas stable.
Soit x un sommet avec un chemin = M1 k . . . kMk complt aprs linsertion de x. Il existe une
93
1
2
k
x0
x1
x2 . . . xk1
xk = x.
Soit q lindice de la requte pendant laquelle ce chemin a t complt. Ceci signifie quil
Mi
existe un entier i, 1 i k, tel que larc xi1
xi a t ajout au graphe pendant la
q-me requte alors que tous les autres arcs du chemin appartiennent E(q). Puisque q est
M
i
minimal, xi1
xi
/ E(q). Par dfinition de x et de , on a q > qx . xi est un lment de
i
V (q). En effet, puisque xi1
xi est le seul arc nappartenant pas E(q), on en dduit
Mi+1
Jeu 4. On peut prsent insrer loracle alatoire H dans le jeu. Au lieu de dfinir une rponse
alatoire pour une paire x V, M {0, 1}`m , o x a un chemin dans le graphe, S ralise un
appel H pour laisser H le soin de dfinir la partie B de la rponse la requte, lorsque kM
est un message padd. S complte alors la partie A manquante de la sortie en la simulant. Cette
Dans
h le cas o Echec
i 1 ne
h se produit pas,
i la distribution des sorties de S nest pas modifie et on a
Echec
3 (resp. Echec3 ) lvnement Drapeau3 (resp. Drapeau3 ) est lev la fin du jeu . Ces
deux drapeaux deviennent pertinents au jeu 6.
Jeu 5. La construction C est remplace par une construction C avec une interface identique.
Lorsque D effectue une requte m {0, 1} L, C procde en deux tapes : C commence par
excuter la construction C F sur m en effectuant des requtes S chaque fois quune valuation
94
Initialisation de S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
(M, A, B, C), origine O = C ou D
i indice de la requte du point de vue du distingueur
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
M0
2. Si O = D et z x EC \ ED avec x0 ,
z, et kM 0
est prfixe dun message padd, Lever Drapeau3
M
3. Si x y ED EC
M
(a) VO = VO {x, y} et EO = EO {x y}
M0
8. Si O = C et x y
/ ED et y z ED dindice
j > i et kM est prfixe dun message padd avec
x0 ,
x, Lever Drapeau03
M
9. VO = VO {x, y} et EO = EO {x y}
10. Retourner (A0 , B 0 ) O
95
H
I
S
D0
D
Pr W5 Echec
1 = Pr W4 Echec1 .
Jeu 6. On modifie prsent le jeu de scurit de telle sorte que les appels de la construction
au simulateur sont retards, et ne sont excuts qu la fin du jeu. Informellement, tout se
passe comme si on forait le distingueur excuter la fin du jeu la construction initiale sur
chacune des requtes quil a soumise L. Plus formellement, la construction C est supprime.
Le distingueur D est utilis pour construire un distingueur D0 qui :
transmet S les requtes-rponses de D R sans modification ;
transmet H les requtes-rponses de D L en enregistrant la liste des requtes ;
la fin du jeu, excute les requtes correspondant lexcution de la construction sur la
liste des requtes de D L ;
renvoie la sortie de D.
On peut modliser les actions supplmentaires de D0 par lintroduction dun intercepteur I par
lequel passent toutes les requtes de D L et qui excute, en fin de jeu, la construction sur
ces requtes, en les traitant dans lordre o il les a reues, en faisant appel S. On donne
en Figure 5.11 une reprsentation du jeu 6. Le simulateur est inchang par rapport aux jeux
4 eth 5. La dfinition
de W6 est modifie pour tenir compte de la dfinition de ce jeu : W6 =
i
H,S H
0
Pr D
=1 .
Les rponses des requtes L sont distribues de la mme manire dans les jeux 5 et 6. La
manire de dfinir les rponses des requtes faites au simulateur peut tre modifie. Pour rappel,
le simulateur, dfinit au jeu 4, peut rpondre de 3 manires diffrentes aux requtes quil reoit :
Mthode (1) : si la requte correspond un arc prcdemment dfini, il rpond en utilisant
linformation contenue dans cet arc ;
Mthode (2) : si la requte dfinit un nouvel arc, le simulateur simule F pour gnrer les parties
A et B de la rponse et complte avec la partie C approprie ;
Mthode (3) : si cet arc complte un chemin complet, la partie B est remplace par la rponse
une requte loracle alatoire.
On montre que les rponses des requtes faites au systme sont identiques si lvnement
Echec
1 Echec3 ne se produit pas dans le jeu 5.
On commence par analyser les requtes effectues par le distingueur et par la construction
et comment elles diffrent entre le jeu 5 et le jeu 6.
Considrons une requte provenant du distingueur. On analyse ce qui se passe suivant la
manire de rpondre dans le jeu 5.
96
(b) Si Echec
1 Echec3 , larc est gnr de la mme manire.
97
2. Si la rponse cette requte est obtenue selon la mthode (2) dans le jeu 5, cela signifie
que kM nest pas un message padd. Ceci est galement vrai dans le jeu 6 car les blocs
de messages du chemin ne sont pas modifis et la distribution nest donc pas modifie
dans ce cas.
3. Si la rponse cette requte est obtenue selon la mthode (3) dans le jeu 5, la distribution
peut tre modifie. En effet, dans le jeu 6, la rponse de la requte est obtenue soit selon
la mthode (1), soit selon la mthode (3). La mthode (2) nest pas possible car par
construction x a un chemin et kM est complet.
(a) Si la mthode (3) est employe pour rpondre dans le jeu 6, larc est dfini de la mme
manire que dans le jeu 5.
(b) Si la mthode (1) est employe, ncessairement larc rpt dans le jeu 6 a t dfini
par le distingueur, car sil avait t dfini par la construction il aurait galement t
gnr par la mthode (1) dans le jeu 5 par conservation de la chronologie des requtes
de la construction. De plus larc rept dans le jeu 6 correspond une requte j > i
du distingueur, car dans le cas contraire il aurait t galement gnr par la mthode
(1) dans le jeu 5.
6 car il nexiste pas de noeud but de deux artes dans le graphe du jeu 6. De plus Echec
3 ne se
produit pas non plus dans le jeu 6 car cela entrainerait loccurence de Echec
dans
le
jeu
5. On
3
0 6
5
5
6
(Echec
1 ) (Echec3 ) = (Echec1 ) (Echec3 ) ,
et les graphes dfinis par le simulateur dans les deux jeux sont identiques quand cet vnement
se produit. Par consquent, la vue du distingueur est identique dans les deux jeux et on a
h
i
h
i
0
Pr W6 Echec
1 Echec3 = Pr W5 Echec1 Echec3 .
On applique prsent le lemme de diffrence entre les jeux 5 et 6. On a
h
i
h
i
0 6
5
6
5
Pr (Echec
1 ) (Echec3 ) ,
h
i
h
i
5
5 + Pr (Echec
Pr (Echec
1)
3) .
De plus
h
i
h
i
h
i
Pr W5 Echec
1 = Pr W4 Echec1 = Pr W3 Echec1 .
98
On peut donc appliquer une nouvelle fois le lemme de diffrence entre les jeux 3 et 5 pour
obtenir
h
i
h
i
3
5
De plus, si Echec
1 ne se produit pas, la requte du distingueur correspondant la source x se
M
produit aprs la dfinition de larc x x0 .
Dmonstration : Supposons que PredictionArc se produise pendant la requte q. Soit xf ltat
dfini ltape 1 et Mf le bloc de message soumis par la requte. PredictionArc se produit
pendant cette requte, on a donc O = D et xf a un chemin dans G. Ainsi, il existe une suite
dtats x1 , . . . , xk = xf et une suite de blocs de message M1 , . . . , Mk tels que
M
k
1
2
xk = xf .
x0
x1
x2 . . . xk1
De plus, M1 k . . . kMk kMf est un message padd. xf na pas de chemin dans GD , donc il existe
M
i
1 i k tel que larc ai = xi1
xi appartiennent EC \ ED . Soit I le plus grand
entier vrifiant cette proprit. Par dfinition de la construction, pour 1 j I, qaj qaI et
larc aj appartient EC . Ainsi, xI1 a un chemin = M1 . . . MI1 dans GC . On a galement
aI EC \ ED . De plus, xI correspond une requte du distingueur, soit la requte qaI+1 si
MI+1
99
h
h 0
i
i
h
i
3 , Pr (Echec
5
)
)
Pr DQ = 1 Pr DQ = 1 max Pr (Echec
1
1
h
i
h
i
5
5
5.2.4
On tend prsent la squence de jeux au cas o F est une permutation paramtre, ce qui
permet de prouver dans ce cas lindistinguabilit de la construction un oracle alatoire dans le
modle du chiffrement par bloc idal. Le simulateur doit simuler non seulement les requtes la
permutation paramtre F, mais galement les requtes son inverse F 1 . Cela ne modifie pas
profondment les simulateurs intervenant dans les jeux 0 7 prcdemment dfinis et la preuve
peut tre tendue en ajoutant une simulation de F 1 de la manire suivante.
Jeu 1. S redirige simplement les requtes au chiffrement par bloc idal F et retourne la sortie
sans modification. Il stocke dans le graphe larc dfini par la rponse de F 1 . On donne le
simulateur en Figure 5.12. La simulation des requtes R nest pas modifie. La distribution
des rponses D ntant pas altre, on a Pr [W1 ] = Pr [W0 ].
F
Simulation de F 1
Entre:
(M, A0 , B 0 , C), origine O = D
Sortie:
(A, B)
1. y = (A0 , B 0 , C)
2. Appeler F 1 : (A, B) = F 1 (M, A0 , B 0 , C)
S
D
3. x = Insert1 [M ](A, B, C)
M
4. VO = VO {x, y} et EO = EO {x y}
5. Retourner (A, B) O
Jeu 2. Dans le jeu 2, S simule F et F 1 parfaitement, i.e. la simulation assure que pour
1
tout paramtre (M, C), FM,C et FM,C
se comportent comme des permutations inverses lune de
lautre. Cette simulation est obtenue en rptant les sorties de F, F 1 prcdemment dfinies et
en slectionnant les nouvelles valeurs uniformment parmi les valeurs qui ne correspondent pas
une rponse pour une entre diffrente. Afin de prparer les jeux suivants on introduit deux
drapeaux derreurs et on formule la simulation comme indiqu en Figure 5.13. tant donn que
la distribution des rponses du simulateur ne sont pas modifies, on a Pr [W2 ] = Pr [W1 ].
Jeu 3. Dans le jeu 3, S simule F et F 1 en choisissant la rponse alatoirement. Le simulateur
est obtenu partir du simulateur du jeu 2 en supprimant deux instructions de type Aller ,
comme dcrit en Figure 5.13. Ceci modifie la distribution des rponses de R et R1 . En effet, des
collisions inattendues de la part dune permutation paramtre sont susceptibles de se produire
dans les simulations de F et F 1 dans le jeu 3. Ces incohrences surviennent quand :
100
Initialisation de S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
(M, A, B, C), origine O = C ou D
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
M
2. Si x y ED EC
M
(a) VO = VO {x, y} et EO = EO {x y}
(b) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)
$
(b) Si x0 y ED EC
i. Lever Drapeau2
6. VO = VO {x, y} et EO = EO {x y}
7. Retourner (A0 , B 0 ) O
Simulation de F 1
Entre:
(M, A0 , B 0 , C), origine O = D
Sortie:
(A, B)
1. y = (A0 , B 0 , C)
M
2. Si x y ED EC
M
(a) VO = VO {x, y} et EO = EO {x y}
(b) Retourner (A, B), o Insert[M ](x) = (A, B, C)
$
(b) Si x y 0 ED EC
i. Lever Drapeau2
ii. (Jeu 2 uniquement) Aller ltape 3
M
7. VO = VO {x, y} et EO = EO {x y}
8. Retourner (A, B) O
Insert[M ] est une bijection, ceci est quivalent lexistence dans le graphe dun arc x y
101
si Drapeau2 est lev, alors le drapeau Drapeau1 a dj t lev prcdemment. On note Echec
1
lvnement Drapeau1 est lev au cours du jeu . Comme
les
jeux
2
et
3
se
comportent
de
la
h
i
h
i
Echec
1
2
1 .
Dans les jeux suivants on cesse de considrer Drapeau2 . Ceci ne change pas le comportement
1
2
k
x0
x1
x2 . . . xk1
xk = x.
Soit q lindice de la requte pendant laquelle ce chemin a t complt. Ceci signifie quil existe
Mi
un entier i, 1 i k, tel que larc xi1
xi a t ajout au graphe pendant la q-me requte
(effectue auprs de la simulation de F ou de F 1) alors que tous les autres arcs du chemin
appartiennent E(q).
M
i
Puisque q est minimal, xi1
xi
/ E(q). Par dfinition de x et de , on a q > qx . xi1 et
i
xi sont des lments de V (q). En effet, puisque xi1
xi est le seul arc nappartenant pas
Mi1
E(q), on en dduit que pour i 2, xi2 xi1 E(q), et donc xi1 V (q) pour i > 1.
Mi+1
102
i
Par consquent, xi1
xi a t gnr pendant une requte la simulation de F et Drapeau1
est lev pendant la requte q car xi V (q 0 ), ou il a t gnr pendant une requte la
z, et kM 0
2. Si O = D et z x EC \ ED avec x0 ,
est prfixe dun message padd, Lever Drapeau3
3. Si x y ED EC
(b) VO = VO {x, y} et EO = EO {x y}
S
D
7. Si x0 , x et y VC VD Lever Drapeau1
M
M0
8. Si O = C et x y
/ ED et y z ED dindice
j > i et kM est prfixe dun message padd avec
x0 ,
x, Lever Drapeau03
M
9. VO = VO {x, y} et EO = EO {x y}
10. Retourner (A0 , B 0 ) O
Jeu 4. Loracle alatoire H remplace la partie B de la simulation de F pour les noeuds situs
lextrmit de chemins complets. Le simulateur est dcrit en Figure 5.14. On a montr que si
Echec
1 ne se produit pas, le graphe est stable et donc la vue de lattaquant nest pas modifie
par lintroduction
de loracle
la probabilit de Echec
1 nest pas modifie,
h
i
halatoire. De plus
i
103
Simulation de F 1
Entre:
(M, A0 , B 0 , C), origine O = D
Sortie:
(A, B)
1. y = (A0 , B 0 , C)
M
2. Si x y ED EC
M
(b) VO = VO {x, y} et EO = EO {x y}
(c) Retourner (A, B), o x = (A, B, C)
$
6. VO = VO {x, y} et EO = EO {x y}
7. Retourner (A, B) O
lvnement Echec
4 dfini par Drapeau4 a t lev au cours du jeu , qui seront utiles pour
analyser la diffrence de probabilit entre les jeux suivants.
Jeu 5. La construction est remplace par une construction C qui excute la construction mais
ignore son rsultat et obtient sa rponse de loracle alatoire. Le simulateur nest pas modifi
parh rapport au jeu
du casi fonction reste valide dans le cas permutation, ainsi
i 4. Lanalyse
h
Pr W5 Echec
1 = Pr W4 Echec1 .
Jeu 6. Dans le jeu 6, les appels de la construction au simulateur sont retards et ne sont
excuts qu la fin du jeu. Lanalyse faite dans le cas fonction idale doit tre adapte pour
prendre en compte le nouveau type de requtes, faite par le distingueur la permutation inverse.
Pour ces requtes, seules les mthodes de gnration (1), rptition dun arc prcdent, et (2),
simulation de F, peuvent tre utilises pour dterminer la rponse, cf jeu 6 en section 5.2.3.1.
Loracle alatoire H nintervient jamais pour rpondre une telle requte.
104
si Echec
4 se produit.
2. Si la rponse est obtenue par simulation dans le jeu 5, elle sera galement obtenue par
simulation dans le jeu 6.
Il reste tudier le cas des requtes ralises par la construction.
1. Le cas dune rponse obtenue par rptition dans le jeu 5 ne change pas.
2. Le cas dune rponse obtenue par simulation dans le jeu 5 ne change pas non plus, car si la
rponse est dfinie par un appel la permutation inverse (nouveau cas) elle est galement
obtenue par simulation.
3. Si la rponse la requte est obtenue selon la mthode (3) dans le jeu 5, la distribution
peut tre modifie. Dans le jeu 6, la rponse de la requte peut tre obtenue soit selon la
mthode (1), soit selon la mthode (3).
(a) Si la mthode (3) est employe pour rpondre dans le jeu 6, larc est dfini de la mme
manire que dans le jeu 5.
(b) Si la mthode (1) est employe dans le jeu 6, ncessairement larc a t dfini par le
distingueur et j > i, cf cas fonction idale.
i. Si lappel j du distingueur a t effectu auprs de la permutation, on reprend
lanalyse du cas fonction.
ii. Si lappel j du distingueur a t effectue auprs de la permutation inverse, la
distribution est modifie. Dans ce cas, la rponse lappel j du distingueur dans
5
5
5
6
6
6
(Echec
1 ) (Echec3 ) (Echec4 ) (Echec1 ) (Echec3 ) (Echec4 ) .
(Echec
1 ) (Echec3 ) (Echec4 ) = (Echec1 ) (Echec3 ) (Echec4 ) ,
et les graphes dfinis par le simulateur dans les deux jeux sont identiques quand cet vnement
se produit. Par consquent la vue du distingueur est identique dans les deux jeux et on a
h
i
h
i
0 6
0 6
5
5
5
6
Pr W5 (Echec
= Pr W6 (Echec
1 ) (Echec3 ) (Echec4 )
1 ) (Echec3 ) (Echec4 ) .
En appliquant le lemme de diffrence entre les jeux 5 et 6 on obtient
h
i
h
i
5
5
5
(
Echec
)
.
1
3
4
De plus
h
i
h
i
h
i
Pr W5 Echec
1 = Pr W4 Echec1 = Pr W3 Echec1 .
On peut donc appliquer une nouvelle fois le lemme de diffrence entre les jeux 3 et 5 pour
obtenir
h
i
h
i
3
5
105
Jeu 7. Le jeu 7 est identique au jeu 7 du cas fonction auquel on ajoute le simulateur de F 1 .
Le graphe GC restant vide, on peut supprimer le code du simulateur qui sy rapporte. Aucune
dcision ntant prise partir de Drapeau1 on supprime galement le test susceptible de le lever.
Le simulateur de la permutation est dcrit en Figure 5.15.
Initialisation de S
1. V = {x0 } et E =
Simulation de F
Entre:
(M, A, B, C)
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
M
2. Si x y E
(a) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)
3. Si , M tel que x0 ,
x et kM = pad(M)
$
4. Sinon
$
6. V = V {x, y} et E = E {x y}
7. Retourner (A0 , B 0 )
Simulation de F 1
Entre:
(M, A0 , B 0 , C)
Sortie:
(A, B)
1. y = (A0 , B 0 , C)
M
5. V = V {x, y} et E = E {x y}
6. Retourner (A, B)
Pr DQ = 1 Pr DQ =1 max Pr (Echec
1 ) , Pr (Echec1 )
h
i
h
i
5 + Pr (Echec
5
+Pr (Echec
1)
3 Echec4 ) .
5.3
Bornes dindiffrentiabilit
Dans les deux sections prcdentes, on a dtaill une squence de jeux permettant de borner
lavantage maximum dun distingueur cherchant faire la diffrence entre le mode gnral propos en section 5.1 instanci avec une primitive idalise, et dun oracle alatoire utilis avec une
106
simulation de la primitive. Afin de borner cet avantage maximal, on doit borner la probabilit
doccurence dvnements dfinis dans la squence de jeux. La probabilit de certains de ces
vnements peut tre borne indpendamment de lencodage de message utilis. On qualifie de
gnrales ces bornes. La probabilit dautres vnements peut tre affecte par les proprits de
lencodage de message. Pour ces vnements, on donne des bornes en considrant deux types de
fonctions dencodage de message :
un encodage de message gnrique, par exemple un padding non ambigu,
un encodage sans prfixe, i.e. un encodage tel que tout message de limage de cet encodage
ne contient pas de prfixe strict appartenant galement cette image.
Les preuves des rsultats prsents sont calculatoires et reportes en annexe A.
5.3.1
Borne de Echec
1 . On nonce des bornes sur la probabilit doccurence de lvnement Echec1 .
Lemme 4 Pour F fonction ou permutation paramtre, pour tout jeu o lvnement Echec
1
est considr
h
i
2 n
Pr Echec
.
1 N 2
Lvnement Echec
1 correspond loccurence dune collision sur ltat interne de la construction qui peut conduire une collision sur les sorties du systme qui ne se produirait quavec une
probabilit beaucoup plus faible pour un oracle alatoire.
Borne de Echec
3 et Echec4 . Afin de borner les probabilits de Echec3 et Echec4 , qui correspondent la probabilit de succs dune attaque en extension de message, on commence par
tablir le lemme gnral suivant qui dcrit la probabilit doccurence de t-collisions.
Lemme 5 Pour 1 t N , soit tColl(N, k) lvnement il existe au moins t occurences
identiques dans un ensemble de N valeurs tires alatoirement dans un ensemble E selon une
distribution D satisfaisant pour tout x
E, Pr $ [x = x
] 2k . Alors, on a
xD
N
X
t=1
Pr Echec
N
Pr [tColl] ,
4 2
t=1
107
5.3.2
peuvent jouer un rle. On nonce les bornes suivantes sur la probabilit de Echec
3 quand au plus
1
N requtes sont soumises (R, R ) au cours du jeu, pour un encodage de message arbitraire.
Lemme 7 Lorsque F est une fonction ou une permutation paramtre, la probabilit de Echec
3
1
aprs au plus N appels R, R satisfait
N
i
h
X
`a
N
Pr [tColl] ,
Pr Echec
3 2
t=1
Pr [tColl] .
Pr Echec3 Echec4 2 N
t=1
En utilisant tous les rsultats prcdents, en utilisant la borne prcdente sur la probabilit
des t collisions avec k = `h et = `a , on obtient le thorme suivant sur lindiffrentiabilit un
oracle alatoire de notre construction de fonction de hachage dans le modle de loracle alatoire
ou de la fonction de chiffrement idale.
Thorme 9 Considrons le mode dcrit en Figure 5.1 et le simulateur S dfini dans le dernier
jeu de la squence de jeux. Alors pour tout distingueur D interagissant avec Q et faisant au plus
N appels F si F est une fonction ou N appels (F, F 1 ) si F est une permutation paramtre,
on a
Adv(D) (3 + e)2(`h +`a ) N 2 + `h 2(`a 1) N .
(5.1)
Adv(D) 2
N +2
`a
l ` + ` log (2) m
a
h
2
N
`h `a log2 e
(5.2)
108
Corollaire 1 Pour F une fonction, le mode gnral dcrit en Figure 5.1 avec `c = 0 et une
fonction dinsertion gale lidentit correspond la construction Chop-MD avec une variable
de chanage de n bits et une taille de hach de `h bits. Pour tout distingueur D qui ralise au
plus N appels la fonction F, soit directement, soit au travers de la construction, on a
Adv(D) (3 + e)2n N 2 + `h 2(n`h 1) N .
(5.3)
N +2
(n`h )
l n log (2) m
2
N
.
2`h n log2 e
(5.4)
5.3.3
Pr Echec
N .
3 2
En rsumant les rsultats prcdents, en utilisant la borne gnrale sur la probabilit des
multicollisions avec k = `h et = `a , on obtient le thorme suivant sur lindiffrentiabilit de
notre mode gnrique lorsque la primitive F est une fonction idale ou un chiffrement par bloc
idal, dans le cas dun encodage de message sans prfixe :
Thorme 10 Considrons le mode gnrique dcrit en Figure 5.1 et le simulateur S dfini
dans le dernier jeu de nos squences de jeux. Supposons de plus que lencodage de message est
sans-prfixe. Alors pour tout distingueur D interagissant avec S et ralisant au plus N appels
F, soit directement, soit au travers de lexcution de la construction, pour F fonction on a
Adv(D) 3 2n N 2 .
(5.5)
Pour tout distingueur D interagissant avec S et ralisant au plus N appels (F, F 1 ), soit
directement, soit au travers de la construction, pour F permutation paramtre, on a
Adv(D) (3 + e)2(`h +`a ) N 2 + `h 2(`a 1) N .
(5.6)
Adv(D) 2 2
N +2
`a
l ` + ` log (2) m
a
h
2
N
`h `a log2 e
et lavantage de D est born par la plus petite valeur entre (5.6) et (5.7).
(5.7)
Chapitre 6
Sommaire
6.1
109
110
111
112
112
112
113
114
115
115
117
117
117
119
120
129
Dans le chapitre prcdent, nous avons donn une preuve dindiffrentiabilit de loracle alatoire dun mode opratoire bas sur une fonction de compression ou une permutation paramtre
lorsque cette primitive sous-jacente est considre comme idale, i.e. choisie comme une fonction
ou une permutation paramtre alatoire. Nous tudions dans ce chapitre limpact sur la scurit
de la fonction de hachage de la dcouverte de proprits cartant la primitive sous-jacente dune
primitive idale, en donnant une modlisation de ces proprits et en montrant comment on
peut en tenir compte dans une preuve de scurit dans un modle idalis adapt. Les rsultats
obtenus permettent de dmontrer la robustesse dextensions de domaine vis--vis de lexistence
de distingueurs contre les fonctions sous-jacentes.
6.1
Dans cette section, nous commenons par prsenter quelques attaques en distingueur contre
des fonctions internes des fonctions de hachage candidates la comptition SHA-3. La mise en
lumire de tels distingueurs participe leffort de cryptanalyse des candidats. Dans leur qute
dattaques contre les fonctions de hachage proposes, les cryptanalystes sefforcent de trouver
des comportements non-idaux et de les exploiter afin de remettre en cause une des proprits
de scurit attendues dune fonction de hachage. La comptition SHA-3 a ceci de particulier
110
que de nombreux distingueurs contre des primitives sous-jacentes ont t exposs sans que cela
soit suivi dans les faits par une attaque contre la fonction de hachage complte. La mise en
vidence de distingueurs et de proprits non idales devient une fin en soi, sans que limpact
sur la scurit ne soit systmatiquement analys. Nous montrons dans la section suivante que ces
distingueurs peuvent tre incorpors lanalyse de scurit. Au prix dun abaissement de la borne
de scurit, on peut tendre les preuves du cas idal pour prendre en compte les distingueurs de
la fonction sous-jacente.
6.1.1
6.1.2
111
112
6.2
On tudie dans cette section la possibilit dadapter les preuves dindiffrentiabilit du mode
gnrique tudi au chapitre prcdent quand la primitive sous-jacente est lobjet de distingueurs.
6.2.1
Problmatique
6.2.2
Afin de simplifier lexpos on se restreint au cas o la primitive sous-jacente est une fonction
de compression F : {0, 1}`m +n {0, 1}n . On a vu dans la section prcdente que lexistence
de distingueurs rend problmatique lidalisation dune fonction de compression. Cette idalisation consiste remplacer la fonction de compression mise en uvre par une fonction alatoire, tire uniformment parmi lensemble FUNC des fonctions de compression ayant les mmes
paramtres. Afin de prendre en compte les distingueurs tout en restant dans un cadre idalis
on considre la proposition suivante : dans le modle idalis, au lieu de tirer alatoirement la
fonction de compression parmi toutes les fonctions de mmes paramtres, on tire dornavant F
parmi un sous-ensemble de fonctions FUNC0 FUNC correspondant lensemble des fonctions
exhibant un biais donn. On cherche appliquer ce formalisme pour adapter la preuve de scurit donne au chapitre prcdent dans le cas idal. Dans la suite de cette section, on identifie
les points quil est ncessaire dadapter dans la preuve et on donne une nouvelle reprsentation
des distingueurs, en termes des distributions dchantillonage quils induisent.
6.2.3
113
Lorsquon cherche adapter les preuves dindiffrentiabilit dun oracle alatoire dans le cas
biais, une premire ide est de rutiliser le mme simulateur que dans le cas idal. La mme
squence de jeux est utilise. Cependant, entre le jeu 1, o le simulateur redirige les requtes
la fonction F, et le jeu 2, o le simulateur simule parfaitement les rponses aux requtes, on
se retrouve prsent confront une transition de type changement de distribution . Dans
le cas idal, les distributions ne sont pas modifies cause du caractre idal de la fonction F,
cest--dire que ces images sont tires uniformment dans {0, 1}n . Une diffrence de taille entre
le cas idal et le cas biais est que dans le cas biais la distribution de la rponse de F une
requte nest plus a priori indpendante des rponses antrieures. Il suffit pour sen convaincre
de considrer lexistence dun distingueur dordre 2. La distribution utilise lors de la requte q
peut donc tre crite
D(u, L(q)) = {(A0 , B 0 ) = F(u), F FUNC0 [L(q)]},
$
o L(q) dsigne la liste des requtes ralises auprs du simulateur accompagnes des rponses
produites par le simulateur avant la requte q et FUNC0 [L(q)] dsigne le sous-ensemble des
fonctions F FUNC0 vrifiant de plus F(u) = v pour tout (u, v) L(q). Dans ce cas la distance
entre les deux jeux peut tre borne par N fois la distance statistique entre la distribution
uniforme sur {0, 1}n et la distributions D, o N est le nombre de dfinitions de sortie de F,
comme vu en section 4.1.5.
Proposition 24 Considrons le mode gnrique dfini en section 5.1. Supposons que F soit
une fonction alatoire slectionne uniformment dans FUNC0 FUNC et soit H un oracle
alatoire. On a
Adv(D) Advid (D) + N max kD U k,
o Advid (D) est la borne suprieure de lavantage du distingueur quand F est une fonction de
compression idale et
max kD U k =
max
kD(u, L) U k.
u,L,|L|N
Cette borne, pouvant tre obtenue de manire directe, napporte des garanties de scurit
que dans le cas o la distance statistique max kD U k est petite. En particulier, elle napporte
aucune garantie quand elle est utilise dans des cas o la fonction interne possde des distingueurs
vrifis avec des probabilits proches ou gales 1. Nous avons vu plus haut que ce cas de figure
ne peut tre ignor. Afin dobtenir des preuves de scurit prenant en compte ces distingueurs
et apportant des garanties non triviales, il faut donc adapter le simulateur au cas biais. Une
telle adaptation est susceptible de russir car
pour les distingueurs dordre 1, la proportion dtats auxquels ils sappliquent est en gnral
faible ;
pour les distingueurs dordre quelconque, lutilisation dun distingueur pour mettre en
dfaut la fonction de hachage ncessite un vnement de type collision interne, ce point
apparatra plus clairement par la suite.
114
6.2.4
F FUNC0
FM,C (A, B) = (A0 , B 0 )|L .
115
b
lhistorique et sachant FM,C
= B 0 . La distribution des valeurs produites par SimulerA est telle
que, pour tout historique et toute valeur B 0 compatible avec la distribution de F, on ait
h
i
0
0
b
0
Pr SimulerA(M, A, B, C, B 0 , L) = A0 = Pr $
F
(A,
B)
=
(A
,
B
)|L
F
(A,
B)
=
B
.
M,C
M,C
0
F FUNC
6.2.5
Dans le cadre du cas idal, on a bien identifi que la partie A et la partie B des sorties
de F ne jouent pas le mme rle. Ceci est dautant plus vrai dans le cas biais. En effet, la
partie B dune sortie de F est susceptible de servir de valeur de hach lorsque la construction
est utilise. Par consquent, le biais sur cette partie de la sortie doit rester trs faible, car le
moindre biais statistique sur les valeurs de hachs conduit un distingueur sur la construction.
En fait, seules les parties B des requtes intervenant dans le calcul dun hach potentiel ne
doivent pas prsenter de biais. Il est donc possible de tolrer un biais important sur la partie
B dune fraction des entres de F, tant que ces entres ninterviennent pas dans le calcul dun
hach. La partie A dune sortie de F peut galement tre utilise par un attaquant pour essayer
de provoquer des vnements dont la probabilit est plus leve que pour une fonction idale.
Cependant, ces vnements portent sur ltat interne de la construction qui est surdimensionn
par rapport la taille de sortie de la fonction de hachage et donc par rapport au paramtre de
scurit. On peut donc tolrer un biais plus important sur cette partie.
On quantifie ces biais au travers de deux paramtres, nots et . On sefforcera de garantir
dans les simulateurs que la distance statistique entre la distribution des parties B des sorties de
F et la distribution uniforme de la partie B reste infrieure , et que le biais sur la partie A
ne perturbe pas trop la distribution de la sortie de F, soit
Pr FM,C (A, B) = (A0 , B 0 ) 2n+ .
6.2.6
Requtes biaises
116
On a vu plus haut que dans une grande majorit des cas, les distingueurs peuvent tre crits
comme une relation telle quune proprit sur les entres de F implique une relation sur ses
sorties. Dans ce cas de figure, les requtes relatives dun historique ne dpendent que des valeurs
dentre prsentes dans lhistorique, i.e. de lensemble V = L|X . On se restreint aux distingueurs
de cette forme et on note Rel(V, , ) lensemble des requtes relatives un historique constitu
de paires (entre, sortie) dont les entres forment lensemble V .
Lensemble Rel(, , ) joue un rle particulier. Il correspond aux entres de F qui conduisent
un biais excessif, mme si aucune information additionnelle nest connue sur F, en dehors des
distingueurs quelle vrifie. Par exemple, dans le cas de la fonction Shabal, cet ensemble contient
les points fixes exhibs dans [86].
Dfinition 31 (requtes (, )-atypiques) Soit un rel dans [0, 1], un rel dans [0, n].
Lensemble des requtes (, )-atypiques est dfini comme
AT(, ) = Rel(, , )
Dans la construction du simulateur dans le cas biais, on a galement besoin de dterminer
de manire incrmentale les requtes relatives de lhistorique. Pour ce faire, un historique tant
donn, on distingue les requtes relatives introduites par une nouvelle requte.
Dfinition 32 (requtes (, )-relatives une requte x) Soit un rel dans [0, 1], un
rel dans [0, n]. Soit X un ensemble dentres de F et x une entre de F. Lensemble des requtes
(, )-relatives de x, conformment X, not R(x, X, , ), est dfini comme
R(x, X, , ) = {x}(Rel({x} X, , ) \ Rel(X, , )) x0 |x Rel({x0 } X, , ) \ Rel(X, , ) .
Ceci dfinit une relation symtrique.
Dans la suite on se limitera ltude de distingueurs tels que lensemble des requtes relatives
une entre est indpendant de lhistorique, i.e. pour tous ensembles dentres (X, X 0 ), pour
toute entre x, on a
R(x, X, , ) = R(x, X 0 , , ) = R(x, , ).
Cest en particulier le cas de distingueurs dordre 2 comme les distingueurs rotationnels et
diffrentiels voqus prcdemment.
Dans nos preuves dindiffrentiabilit, les entres de F sont dcomposes en deux parties, une
correspondant la variable de chanage, lautre correspondant aux blocs de message. On postule
lexistence dalgorithmes efficaces permettant de raliser des tests dexistence de messages, ou
couple de messages, qui permettent de complter une variable de chanage de manire obtenir
des entres atypiques ou relatives :
(, )-EstAtypique(y) renvoie vrai si et seulement si il existe M tel que M, Insert[M ](y)
AT(, ). Par extension un noeud y pour lequel cet algorithme renvoie vrai sera qualifi
datypique.
(, )-EstAutoRelatif(y) renvoie vrai si et seulement si il existe M 6= M 0 tels que
(M, Insert[M ](y)) R((M 0 , Insert[M 0 ](y)), , ). Par extension un noeud y pour lequel
cet algorithme renvoie vrai sera qualifi dauto-relatif.
(, )-SontRelatifs1 (y, y 0 ) renvoie vrai si et seulement si il existe M, M 0 tels que
(M, Insert[M ](y)) R((M 0 , Insert[M 0 ](y 0 )), , ). Si cet algorithme renvoie vrai, les noeuds
y et y 0 sont qualifis de relatifs.
117
6.3
6.3.1
On doit adapter le simulateur du cas idal car la borne dindiffrentiabilit que lon obtient
partir de ce simulateur est triviale, du fait de lexistence de distingueurs. Une premire modification correspond simuler F non plus de manire alatoire, mais en utilisant des algorithmes
dchantillonage SimulerAB et SimulerA qui rendent compte de la distribution de ses sorties. Une
deuxime modification consiste commencer par dfinir, pour chaque requte faite au simulateur, les requtes relatives prolongeant un chemin. De cette manire, on peut mieux garantir la
cohrence du simulateur avec loracle alatoire.
6.3.2
118
Initialisation de S
1. V = {x0 } et E =
Simulation de F
Entre:
(M, A, B, C)
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
, A,
B,
C
R((M, x)) tel que x0 ,
2. Pour M
x
, o
](A,
B,
C)
x
= Insert1 [M
(a) Si @
x y E
= pad(M)
i. Si M tel que
kM
0
A. B = H(M)
, A,
B,
C,
B 0 , E)
B. A0 = SimulerA(M
0
0
, A,
B,
C,
ED EC )
ii. Sinon (A , B ) = SimulerAB(M
0
0
iii. y = (A , B , C)
M
iv. V = V {x, y} et E = E {x y}
M
3. Si x y E slectionner y
4. Sinon
(a) (A0 , B 0 ) = SimulerAB(M, A, B, C, E)
(b) y = (A0 , B 0 , C)
M
5. V = V {x, y} et E = E {x y}
6. Retourner (A0 , B 0 ) O
119
)NR
N 2(n )
Pr Echec NR (Natypique + Nautorel + 1 + NR )N + (max (2, NR ) + 2NR
pour un encodage de message arbitraire
N
h
i
X
5
`a
Pr (Echec
)
N
2
N
Pr [tColl] ,
3
R
t=1
Pr (Echec
NR
2
N .
3)
On remarque que ce thorme ne sapplique que pour des formes de biais particulires,
savoir
on ne tolre aucun biais sur la partie B ;
pour les noeuds non excessivement biais, la simulation de la partie A est indpendante
de lhistorique.
Ces deux contraintes sont utilises dans la preuve au moment o la dpendance du simulateur
aux requtes effectues par la construction est retire. Bien que = 0, on donne des bornes de
manire gnrique pour les premiers jeux o cette contrainte nest pas utilise.
6.3.3
Rsum de la preuve
La proprit dindiffrentiabilit est prouve en construisant une squence de jeux pour construire progressivement S. Les jeux successifs sont reprsents schmatiquement en figure 6.2 et
peuvent tre rsums de la manire suivante :
(0) On part du jeu original o le distingueur interagit avec le systme Q = (C F , F), o C est
une implmentation de la construction. 2
(1) La fonction alatoire F est remplace par un simulateur S qui se contente de transmettre
les requtes F et renvoie les rponses obtenues de F lappelant, C ou D. S construit le
graphe correspondant aux couples (requte, rponse) quil voit passer.
(2-3) S simule F au lieu de raliser des appels F. Dans le jeu 3, on peut ventuellement
simuler plusieurs valeurs de F pour chaque requte S pour tenir compte des valeurs
excessivement biaises.
(4) Lorsque cest ncessaire, S fait des appels H pour dfinir ses valeurs de sortie.
(5) C est remplace par une construction C qui excute C F sur ses entres, en faisant des appels
S lorsquune valuation de F est ncessaire, mais ignore les rponses obtenues et ralise
un appel final H pour obtenir la rponse la requte. Les rponses des requtes L ne
dpendent plus du simulateur.
(6) C est supprime et les requtes L sont directement transmises loracle alatoire. Un
composant du distingueur enregistre les requtes L et les excute en fin de jeu. Les
rponses aux requtes R ne dpendent plus des appels L.
(7) Lexcution finale de la construction est supprime. Le distingueur interagit prsent avec
le systme final Q0 = (H, S H ).
On reprend les conventions de la preuve dans le cas idal (indexation dvnement, leve de
drapeau, sortie du jeu de scurit, etc.)
2. On ne fait pas de distinction entre la construction C et un programme qui lexcute.
120
F
C
H
S
(0)
(1)
(2-3)
(4)
(5)
(6)
(7)
Figure 6.2 volution des interactions entre oracles et simulateurs au cours de la preuve.
6.3.4
Initialisation de S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
2. Appeler F: (A0 , B 0 ) = F(M, A, B, C)
3. y = (A0 , B 0 , C)
M
4. VO = VO {x, y} et EO = EO {x y}
5. Retourner (A0 , B 0 ) O
Initialization of S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
Sortie:
(A0 , B 0 )
S
D
1. x = Insert1 [M ](A, B, C)
M
2. Si x y ED EC
M
(a) VO = VO {x, y} et EO = EO {x y}
(b) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)
3. (A0 , B 0 ) = SimulerAB(M, A, B, C, ED EC )
4. y = (A0 , B 0 , C)
M
5. VO = VO {x, y} et EO = EO {x y}
6. Retourner (A0 , B 0 ) O
121
122
123
Initialisation de S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
, A,
B,
C
R((M, x)) tel que x0 ,
2. Pour M
x
, o
](A,
B,
C)
x
= Insert1 [M
(a) Si
x y ED EC
i. VO = VO {
x, y} et EO = EO {
x y}
(b) Sinon
, A,
B,
C,
ED EC )
i. (A0 , B 0 ) = SimulerAB(M
0
0
ii. y = (A , B , C)
iii. Si y VC VD Lever Drapeau1
M0
vii. Si x0 ,
y tel que SontRelatifs1 (y, y) Lever
DrapeauBiais3
M
viii. VO = VO {x, y} et EO = EO {x y}
3. (A0 , B 0 ) = SimulerAB(M, A, B, C, ED EC )
4. y = (A0 , B 0 , C)
M
5. VO = VO {x, y} et EO = EO {x y}
6. Retourner (A0 , B 0 ) O
124
Dmonstration : On dmontre la preuve par contrapose. Supposons que G ne soit pas stable.
On distingue 2 cas :
le nombre de chemins vers un noeud relatif dune requte augmente aprs le traitement de
,x
cette requte. Considrons lentre (M
) pour laquelle un nouveau chemin vers une entre
relative dune requte antrieure est cr. Le traitement de cette entre cre un chemin, x
a
donc un chemin. Considrons la valeur y dfinie ltape 2(b)ii. Un nouveau chemin vers une
entre relative dune requte antrieure tant cr, soit y est dans le graphe et le traitement
M
,x
de lentre M
lve Drapeau1 ltape 2(b)iii, soit il existe un arc x dans le graphe et
,x
le traitement de lentre (M
) lve Drapeau1 ltape 2(b)iv.
le nombre de chemins vers un noeud y ayant un chemin augmente aprs linsertion de y dans
le graphe. Le cas o y correspond une entre de F a dj t traite. Si y correspond une
sortie de F, comme il possde un chemin, il a t insr dans le graphe. Lors du traitement de
lentre ajoutant un chemin supplmentaire vers y, y V et Drapeau1 est lev ltape 2(b)iii.
On termine en prouvant des proprits relatives lapparition dentres de requtes biaises
avec un chemin dans le graphe.
Proposition 28 Soit G = (V, E) le graphe construit par le simulateur la fin dun jeu suscep
tible de lever le drapeau DrapeauBiais1 . Si x0 nest pas un noeud atypique et si EchecBiais
1 ne se
produit pas, alors il ny a pas de noeud atypique avec un chemin dans G.
Dmonstration : On procde par contrapose. Soit un noeud atypique x ayant un chemin.
Supposons x 6= x0 . Considrons la requte crant un chemin vers x. ltape 2(b)v, le drapeau
DrapeauBiais1 est lev.
Proposition 29 Soit G = (V, E) le graphe construit par le simulateur la fin dun jeu suscep
tible de lever le drapeau DrapeauBiais2 . Si x0 nest pas un noeud auto-relatif et si EchecBiais
2 ne
se produit pas, alors il ny a pas de noeud auto-relatif avec un chemin dans G.
La preuve est analogue celles du cas noeuds atypiques.
Proposition 30 Soit G = (V, E) le graphe construit par le simulateur la fin dun jeu suscep
tible de lever le drapeau DrapeauBiais3 . Si EchecBiais
3 ne se produit pas, alors pour toute paire
0
de noeuds x, x ayant un chemin dans le graphe, SontRelatifs(x, x0 ) est faux.
Cette proposition dcoule directement du test ralis ltape 2(b)vii.
On note Echec
lvnement lun des drapeaux dfinis par ce simulateur, lexception du
125
Initialisation de S
1. VC = {x0 } et EC =
2. VD = {x0 } et ED =
Simulation de F
Entre:
Sortie:
(A0 , B 0 )
1. x = Insert1 [M ](A, B, C)
, A,
B,
C
R((M, x)) tel que x0 ,
2. Pour M
x
, o
](A,
B,
C)
x
= Insert1 [M
M0
EC \ ED avec x0 ,
z, et kM 0 est
(a) Si O = D et z x
prfixe dun message padd, Lever Drapeau3
(b) Si
x y ED EC
i. VO = VO {
x, y} et EO = EO {
x y}
C
(c) Sinon
= pad(M)
i. Si M tel que
kM
D
A. B 0 = H(M)
, A,
B,
C,
B 0 , E D EC )
B. A0 = SimulerA(M
0
0
, A,
B,
C,
ED EC )
ii. Sinon (A , B ) = SimulerAB(M
0
0
iii. y = (A , B , C)
iv. Si y VC VD Lever Drapeau1
M0
viii. Si x0
,
DrapeauBiais3
ix. VO = VO {x, y} et EO = EO {x y}
M
3. Si x y ED EC slectionner y
4. Sinon
(a) (A0 , B 0 ) = SimulerAB(M, A, B, C, ED EC )
(b) y = (A0 , B 0 , C)
M
5. VO = VO {x, y} et EO = EO {x y}
6. Retourner (A0 , B 0 ) O
126
On borne prsent la diffrence de distribution entre les sorties de F gnres par le simulateur dans les jeux 3 et 4. Le seul cas de figure o la simulation est modifie entre ces deux
jeux est le cas de la dfinition dune sortie par loracle alatoire dans le jeu 4. Plaons-nous
un instant o une telle requte est traite et supposons que lhistorique des requtes et des
simulations a t identique dans les deux jeux, on note E cet historique commun. Pour borner
la distance statistique de la sortie de F dans chacun des jeux on estime la somme suivante
h
i
h
i
h
i
X
0
0
0
0
0
Pr SimulerAB(M, A, B, C, E) = (A , B ) Pr H(M) = B Pr SimulerA(M, A, B, C, B , E) = A ,
A0 ,B 0
h
i
h
i
X
0
0
`
0
0
b
0
Pr
FM,C (A, B) = (A , B )|E 2 h Pr $
FM,C (A, B) = (A , B )|E FM,C (A, B) = B ,
$
0
0
F FUNC
F FUNC
0
A0 ,B
h
i
h
i
X
X
b
0
`
a
0
b
0
h
Pr
F
(A,
B)
=
B
|E
2
Pr
F
(A,
B)
=
A
|E
F
(A,
B)
=
B
,
M,C
M,C
M,C
$
$
F FUNC0
F FUNC0
B0
A0
h
i
X
b
0
`
Pr
FM,C (A, B) = B |E 2 h .
$
B0
F FUNC0
On peut donc borner la distance statistique entre les deux jeux par la distance statistique entre la
partie B de F et la distribution uniforme. Sous lhypothse quaucun drapeau nest lev, lentre
de F nest pas un noeud atypique, autorelatif ou relatif dun noeud prcdemment dfini. Cette
distance est donc borne par , par dfinition des ensembles de relatifs.
Lors de chaque requte au simulateur, au plus NR requtes sont simules. La distance statistique entre les distributions des graphes obtenus aprs N requtes au simulateur dans les jeux
3 et 4 est donc majore par NR N . Les tests de leve de drapeau sappliquant de manire
dterministe partir du graphe, on en dduit
h
i
h
i
Pr W3 Echec
Pr W4 Echec
NR N
et
h
i
i
h
3
4
Pr
Echec
Pr
Echec
NR N .
Comme dans la preuve dans le cas idal, on doit prsent supprimer les dpendances entre
construction et simulateur. Le jeu 5 supprime la dpendance de la construction en le simulateur,
le jeu 6 supprime la dpendance du simulateur en les requtes ralises auprs de la construction.
Jeu 5. Comme dans le cas idal, la construction C est remplace par une construction C
avec une interface identique. Lorsque D effectue une requte m {0, 1} L, C procde en
deux tapes : C commence par excuter la construction C F sur m en effectuant des requtes
S chaque fois quune valuation de F est requise ; puis C ignore le rsultat de lexcution
de la construction et effectue un appel H pour obtenir h = H(m) et retourne h D. Le
simulateur S nest pas modifi. Lanalyse faite dans le cas idal se transpose dans le cas biais. Un
changement de distribution est susceptible de se produire entre les jeux 4 et 5 si le dernier appel
dune construction de hach a t dfini prcdemment par le simulateur sans faire intervenir
lvnement Echec
Echec
3 ne se produit pas dans le jeu 5, et quune hypothse supplmentaire
sur le biais de la fonction F, savoir que ce biais est indpendant de lhistorique, est vrifie,
127
alors la vue de lattaquant nest pas modifie. Comme dans le cas idal, lvnement Echec
3 peut
tre rexprim dans le jeu 6 en terme de contrainte sur lordre des requtes. On obtient alors
h
i
h
i
0
Pr W6 Echec
Echec
3 = Pr W5 Echec Echec 3 .
128
2. larc i + 1 provient dune requte du distingueur. On distingue alors les cas suivants :
(a) le noeud x a un chemin dans G6 au moment de la requte i + 1. Par rcurrence
les noeuds de ce chemin sont gnrs de la mme manire dans le jeu 5 et le jeu 6.
On peut mme remarquer que par dfinition de la construction retarde, tous les arcs
constituant ont t dfinis par des appels provenant du distingueur. On distingue
les sous-cas suivants :
i. larc est trait par rejeu dans le jeu 6. Il sagit ncessairement du rejeu dun
arc dcoulant dune requte du distingueur. Lordre des requtes provenant du
distingueur ntant pas modifi, on en dduit par rcurrence que la manire de
gnrer larc nest pas modifie.
ii. larc est trait par simulation dans le jeu 6. Comme il a un chemin, cela signifie
que kM nest pas un message padd. tant galement un chemin de x
au moment de traiter la requte dans le jeu 5, la manire de gnrer nest pas
modifie.
iii. larc est trait par loracle alatoire dans le jeu 6. De la mme manire que le
sous-cas prcdent, la manire de gnrer nest pas modifie.
(b) le noeud x na pas de chemin dans G6 . Dans ce cas on distingue les sous-cas suivants :
i. sil na pas de chemin dans G5 , la rponse est gnre de la mme manire, soit
par rejeu, soit par simulation.
ii. si x a un chemin dans G5 au moment du traitement de cette requte dans le
jeu 5, la distribution peut changer si kM est un chemin complet. La condition
x na pas de chemin dans G6 mais a un chemin dans G5 peut tre rcrite dans
le jeu 5 uniquement : au moment o lon considre cette requte dans le jeu 5, x
na pas de chemin dans GD mais a un chemin dans GC . On a vu dans la preuve
du cas idal que ceci entrainait lexistence dun arc de EC \ ED dont x est le but.
Le cas problmatique dclenche donc la leve de Drapeau3 dans le jeu 5.
On a montr par cette tude de cas que la manire de gnrer une requte ne change pas si
Echec
ne se produit pas dans le jeu 5, il ne se produit pas dans le jeu 6. La requte est donc
gnre de manire non biaise et dans ce cas la simulation est indpendante de lhistorique.
Si les mmes jetons alatoires sont utiliss, on obtient donc la mme rponse, ce qui conclut la
preuve par rcurrence.
Jeu 7. On termine la preuve comme dans le cas idal en supprimant lexcution retarde de
la construction. Celle-ci naffectant pas la distribution de la vue de lattaquant, on a
Pr [W6 ] = Pr [W7 ] .
En supprimant du simulateur du jeu 7 toutes les mentions au graphe traant les appels de la
construction et les tests de leve de drapeau qui naffectent pas la vue de lattaquant, on obtient
bien le simulateur prsent en figure 6.1. Ce jeu correspond au jeu final. En mettant bout bout
les rsultats obtenus, en appliquant le lemme de diffrence entre les jeux 5 et 6 , on a montr
129
h
i
h
i
h 0 i
3
5
+ 2N NR ) + Pr (Echec
Pr DQ = 1 Pr DQ =1 2(Pr (Echec)
3) .
On borne ces probabilits dans la section suivante.
6.3.5
Borne dindiffrentiabilit
On borne prsent les vnements intervenant au cours des jeux prcdents et permettant de
borner lavantage dun distingueur pour diffrencier la construction dun oracle alatoire pour le
simulateur dfini. nouveau on distingue les bornes gnrales, indpendantes de lencodage de
message utilis des bornes faisant intervenir lencodage de message. Les preuves sont reportes
en appendice A.
6.3.5.1
Borne de Echec.
On nonce des bornes sur la probabilit doccurrence de lvnement Echec
1.
Pr Echec
2
1 NR (Natypique + Nautorel + 1 + NR )N + (max (2, NR ) + 2NR )NR N
Lvnement Echec
1 correspond loccurrence de collisions sur ltat interne de la construction qui peuvent conduire des collisions sur les sorties du systme qui ne se produiraient quavec
une probabilit beaucoup plus faible pour un oracle alatoire ou la possibilit dapparition au
cours du calcul dun hach dune entre dont le biais trop important permet de distinguer la
construction dun oracle alatoire.
6.3.5.2
peuvent jouer un rle. On nonce les bornes suivantes sur la probabilit de Echec
3 quand au plus
N requtes sont soumises (R) au cours du jeu, pour un encodage de message arbitraire.
probabilit de Echec
3 aprs au plus N appels R satisfait
N
h
i
X
(`a )
Pr Echec3 NR 2
N
Pr [tColl] ,
t=1
130
6.3.5.3
Quand lencodage de message est sans prfixe, on peut amliorer la borne donne dans la
section prcdente.
Lemme 11 Pour F fonction de compression et un encodage de message sans prfixe, la proba
bilit de Echec
3 aprs N appels au simulateur est
i
h
2 (n ) 2
N .
Pr Echec
3 NR 2
6.3.5.4
Interprtation
Bibliographie
[1] E. Andreeva, G. Neven, B. Preneel, and T. Shrimpton. Seven-Property-Preserving Iterated
Hashing : ROX. In K. Kurosawa, editor, Advances in Cryptology - ASIACRYPT 2007, 13th
International Conference on the Theory and Application of Cryptology and Information
Security, Kuching, Malaysia, December 2-6, 2007, Proceedings, volume 4833 of Lecture
Notes in Computer Science, pages 130146. Springer, 2007. 80
[2] F. Armknecht, C. Carlet, P. Gaborit, S. Knzli, W. Meier, and O. Ruatta. Efficient Computation of Algebraic Immunity for Algebraic and Fast Algebraic Attacks. In Vaudenay
[136], pages 147164. 38, 41, 42, 47
[3] G. Ars and J.-C. Faugre. Algebraic Immunities of functions over finite fields. Technical
report, INRIA, Rapport de Recherche n5532, 2005. 38, 41
[4] J.-P. Aumasson, E. Ksper, L.R. Knudsen, K. Matusiewicz, R. Odegaard, T. Peyrin, and
M. Schlffer. Differential Distinguishers for the Compression Function and Output Transformation of Hamsi-256. Cryptology ePrint Archive, Report 2010/091, 2010. 110
[5] J.-P. Aumasson and W. Meier. Zero-sum distinguishers for reduced Keccak-f and for
the core functions of Luffa and Hamsi. presented at the rump session of Cryptographic
Hardware and Embedded Systems - CHES 2009, 2009. 110
[6] S. Babbage. A Space/Time Tradeoff in Exhausive Search Attacks on Stream Ciphers. In
European Convention on Security and Detection, volume 408. IEE Conference Publication,
mai 1995. 14
[7] S. Babbage, C. De Cannire A. Canteaut, C. Cid, H. Gilbert, T. Johansson, M. Parker,
B. Preneel, V. Rijmen, and M. Robshaw. The eSTREAM Portfolio. eSTREAM, ECRYPT
Stream Cipher Project, 2005. http://www.ecrypt.eu.org/stream. 12
[8] S. Babbage and M. Dodd. The stream cipher MICKEY (version 1). eSTREAM, ECRYPT
Stream Cipher Project, Report 2005/015, 2005. http://www.ecrypt.eu.org/stream. 10
[9] M. Backes and D. Unruh. Limits of Constructive Security Proofs. In J. Pieprzyk, editor,
Advances in Cryptology - ASIACRYPT 2008, 14th International Conference on the Theory
and Application of Cryptology and Information Security, Melbourne, Australia, December
7-11, 2008. Proceedings, volume 5350 of Lecture Notes in Computer Science, pages 290
307. Springer, 2008. 73
[10] E. Barkan, E. Biham, and N. Keller. Instant Ciphertext-Only Cryptanalysis of GSM
Encrypted Communication. J. Cryptology, 21(3) :392429, 2008. 8, 11, 18
[11] M. Bellare, A. Boldyreva, and A. Palacio. An Uninstantiable Random-Oracle-Model
Scheme for a Hybrid-Encryption Problem. In C. Cachin and J. Camenisch, editors, Advances in Cryptology - EUROCRYPT 2004, International Conference on the Theory and
Applications of Cryptographic Techniques, Interlaken, Switzerland, May 2-6, 2004, Proceedings, volume 3027 of Lecture Notes in Computer Science, pages 171188. Springer,
2004. 66
[12] M. Bellare and T. Ristenpart. Multi-Property-Preserving Hash Domain Extension and the
EMD Transform. In X. Lai and K. Chen, editors, Advances in Cryptology - ASIACRYPT
2006, 12th International Conference on the Theory and Application of Cryptology and
Information Security, Shanghai, China, December 3-7, 2006, Proceedings, volume 4284 of
Lecture Notes in Computer Science, pages 299314. Springer, 2006. 80, 81
132
Bibliographie
[13] M. Bellare and P. Rogaway. Random Oracles are Practical : A Paradigm for Designing
Efficient Protocols. In ACM Conference on Computer and Communications Security, pages
6273, 1993. 66
[14] C. Berbain, O. Billet, A. Canteaut, N. Courtois, B. Debraize, H. Gilbert, L. Goubin,
A. Gouget, L. Granboulan, C. Lauradoux, M. Minier, T. Pornin, and H. Sibert. Decim A New Stream Cipher for Hardware Applications. eSTREAM, ECRYPT Stream Cipher
Project, Report 2005/004, 2005. http://www.ecrypt.eu.org/stream. 10
[15] C. Berbain, H. Gilbert, and A. Maximov. Cryptanalysis of Grain. In Robshaw [120], pages
1529. 20
[16] C. Berbain, H. Gilbert, and J. Patarin. QUAD : A Practical Stream Cipher with Provable
Security. In Vaudenay [136], pages 109128. 11
[17] D.J. Bernstein. Salsa20. eSTREAM, ECRYPT Stream Cipher Project, Report 2005/025,
2005. http://www.ecrypt.eu.org/stream. 12
[18] D.J. Bernstein. Understanding Brute Force. eSTREAM, ECRYPT Stream Cipher Project,
Report 2005/036, 2005. http://www.ecrypt.eu.org/stream. 17
[19] G. Bertoni, J. Daemen, M. Peeters, and G. Van Assche. On the Indifferentiability of the
Sponge Construction. In N.P. Smart, editor, Advances in Cryptology - EUROCRYPT 2008,
27th Annual International Conference on the Theory and Applications of Cryptographic
Techniques, Istanbul, Turkey, April 13-17, 2008. Proceedings, volume 4965 of Lecture Notes
in Computer Science, pages 181197. Springer, 2008. 77, 82
[20] E. Biham, R. Chen, A. Joux, P. Carribault, C. Lemuet, and W. Jalby. Collisions of SHA0 and Reduced SHA-1. In R. Cramer, editor, Advances in Cryptology - EUROCRYPT
2005, 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, May 22-26, 2005, Proceedings, volume 3494 of
Lecture Notes in Computer Science, pages 3657. Springer, 2005. 75
[21] E. Biham and A. Shamir. Differential Cryptanalysis of the Full 16-Round DES. In E.F.
Brickell, editor, CRYPTO, volume 740 of Lecture Notes in Computer Science, pages 487
496. Springer, 1992. 22
[22] Eli Biham and Orr Dunkelman. A Framework for Iterative Hash Functions - HAIFA.
Cryptology ePrint Archive, Report 2007/278, 2007. http://eprint.iacr.org/. 81
[23] A. Biryukov. A new 128 bit key stream cipher : LEX. eSTREAM, ECRYPT Stream
Cipher Project, Report 2005/013, 2005. http://www.ecrypt.eu.org/stream. 52
[24] A. Biryukov. The Design of a Stream Cipher LEX. In E. Biham and A. Youssef, editors,
Selected Areas in Cryptography SAC 2006, Lecture Notes in Computer Science. Springer,
2006. to appear. 52
[25] A. Biryukov and A. Shamir. Cryptanalytic Time/Memory/Data Tradeoffs for Stream
Ciphers. In T. Okamoto, editor, ASIACRYPT, volume 1976 of Lecture Notes in Computer
Science, pages 113. Springer, 2000. 15
[26] L. Blum, M. Blum, and M. Shub. A Simple Unpredictable Pseudo-Random Number
Generator. SIAM J. Comput., 15(2) :364383, 1986. 11
[27] D. Boneh, editor. Advances in Cryptology - CRYPTO 2003, 23rd Annual International
Cryptology Conference, Santa Barbara, California, USA, August 17-21, 2003, Proceedings,
volume 2729 of Lecture Notes in Computer Science. Springer, 2003. 134, 138
Bibliographie
133
[28] D. Boneh, A. Joux, and P. Nguyen. Why Textbook ElGamal and RSA Encryption are
Insecure. In T. Okamoto, editor, Advances in Cryptology Proceedings of ASIACRYPT
2000, volume 1976 of Lecture Notes in Computer Science, pages 3043. Springer, 2000. 59
[29] C. Bouillaguet, P.-A. Fouque, and G. Leurent. Security Analysis of SIMD. In A. Biryukov,
G. Gong, and D.R. Stinson, editors, Selected Areas in Cryptography - 17th International
Workshop, SAC 2010, Waterloo, Ontario, Canada, August 12-13, 2010, Revised Selected
Papers, volume 6544 of Lecture Notes in Computer Science, pages 351368. Springer, 2010.
110, 130
[30] C. Boura and A. Canteaut. A Zero-Sum property for the Keccak-f Permutation with 18
Rounds. In Proceedings of the IEEE International Symposium on Information Theory
(ISIT 2010), 2010. 110
[31] C. Boura and A. Canteaut. Zero-Sum Distinguishers for Iterated Permutations and Application to Keccak-f and Hamsi-256. In A. Biryukov, G. Gong, and D.R. Stinson, editors,
Selected Areas in Cryptography - 17th International Workshop, SAC 2010, Waterloo, Ontario, Canada, August 12-13, 2010, Revised Selected Papers, volume 6544 of Lecture Notes
in Computer Science, pages 117. Springer, 2010. 76
[32] C. Boura, A. Canteaut, and C. De Cannire. Higher-Order Differential Properties of
Keccak and Luffa. In A. Joux, editor, Fast Software Encryption - 18th International
Workshop, FSE 2011, Lyngby, Denmark, February 13-16, 2011, Revised Selected Papers,
volume 6733 of Lecture Notes in Computer Science, pages 252269. Springer, 2011. 110
[33] A. Braeken, J. Lano, N. Mentens, B. Preneel, and I. Verbauwhede. SFINKS : A Synchronous Stream Cipher for Restricted Hardware Environments. eSTREAM, ECRYPT
Stream Cipher Project, Report 2005/026, 2005. http://www.ecrypt.eu.org/stream. 10
[34] E. Bresson, A. Canteaut, B. Chevallier-Mames, C. Clavier, T. Fuhr, A. Gouget, T. Icart,
J.-F. Misarsky, M. Naya-Plasencia, P. Paillier, T. Pornin, J.-R. Reinhard, C. Thuillet,
and M. Videau. Shabal, a submission to NISTcryptographic hash algorithm competition.
Submission to the NIST Hash competition, 2008. 86, 107
[35] C. Calik and M.S. Turan. Message Recovery and Pseudo-Preimage Attacks on the Compression Function of Hamsi-256. Cryptology ePrint Archive, Report 2010/057, 2010. 110
[36] R. Canetti, O. Goldreich, and S. Halevi. The Random Oracle Methodology, Revisited
(Preliminary Version). In Symposium on Theory of Computing - STOC 98, pages 209
218. ACM, 1998. Full version available at http://arxiv.org/abs/cs.CR/0010019. 66
[37] F. Chabaud and A. Joux. Differential Collisions in SHA-0. In H. Krawczyk, editor,
Advances in Cryptology - CRYPTO 98, 18th Annual International Cryptology Conference,
Santa Barbara, California, USA, August 23-27, 1998, Proceedings, volume 1462 of Lecture
Notes in Computer Science, pages 5671. Springer, 1998. 50, 54, 75
[38] D. Chang and M. Nandi. Improved Indifferentiability Security Analysis of chopMD Hash
Function. In K. Nyberg, editor, Fast Software Encryption, 15th International Workshop,
FSE 2008, Lausanne, Switzerland, February 10-13, 2008, Revised Selected Papers, volume
5086 of Lecture Notes in Computer Science, pages 429443. Springer, 2008. 86, 108
[39] P. Chose, A. Joux, and M. Mitton. Fast Correlation Attacks : An Algorithmic Point of
View. In L.R. Knudsen, editor, EUROCRYPT, volume 2332 of Lecture Notes in Computer
Science, pages 209221. Springer, 2002. 21, 22
134
Bibliographie
[40] C. Cid and G. Leurent. An Analysis of the XSL Algorithm. In B.K. Roy, editor, ASIACRYPT, volume 3788 of Lecture Notes in Computer Science, pages 333352. Springer,
2005. 22
[41] D. Coppersmith, H. Krawczyk, and Y. Mansour. The Shrinking Generator. In CRYPTO,
pages 2239, 1993. 10
[42] D. Coppersmith and S. Winograd. Matrix Multiplication via Arithmetic Progressions. J.
Symb. Comput., 9(3) :251280, 1990. 39
[43] J.-S. Coron, Y. Dodis, C. Malinaud, and P. Puniya. Merkle-Damgrd Revisited : How
to Construct a Hash Function. In V. Shoup, editor, Advances in Cryptology - CRYPTO
2005 : 25th Annual International Cryptology Conference, Santa Barbara, California, USA,
August 14-18, 2005, Proceedings, volume 3621 of Lecture Notes in Computer Science, pages
430448. Springer, 2005. 80, 81
[44] N. Courtois. Higher Order Correlation Attacks, XL Algorithm and Cryptanalysis of Toyocrypt. In P.J. Lee and C.H. Lim, editors, ICISC, volume 2587 of Lecture Notes in Computer Science, pages 182199. Springer, 2002. 22
[45] N. Courtois. Fast Algebraic Attacks on Stream Ciphers with Linear Feedback. In Boneh
[27], pages 176194. 22, 38, 46
[46] N. Courtois. Cryptanalysis of Sfinks. eSTREAM, ECRYPT Stream Cipher Project, Report
2006/002, 2006. http://www.ecrypt.eu.org/stream. 38
[47] N. Courtois and W. Meier. Algebraic Attacks on Stream Ciphers with Linear Feedback.
In E. Biham, editor, EUROCRYPT, volume 2656 of Lecture Notes in Computer Science,
pages 345359. Springer, 2003. 38, 40, 41
[48] N. Courtois and J. Pieprzyk. Cryptanalysis of Block Ciphers with Overdefined Systems of
Equations. In Y. Zheng, editor, ASIACRYPT, volume 2501 of Lecture Notes in Computer
Science, pages 267287. Springer, 2002. 22
[49] D.A. Cox, J. Little, and D. OShea. Ideals, varieties, and algorithms - an introduction to
computational algebraic geometry and commutative algebra (3. ed.). Undergraduate texts
in mathematics. Springer, 2007. 39
[50] J. Daemen, R. Govaerts, and J. Vandewalle. A Practical Approach to the Design of High
Speed Self Synchronizing Stream Ciphers. In Singapore ICCS/ISITA 92. Communications on the Move, volume 1, pages 279283, 1992. 7
[51] J. Daemen and P. Kitsos. The Self-Synchronizing Stream Cipher Moustique. eSTREAM,
ECRYPT Stream Cipher Project, Report 2005/018, 2005. http://www.ecrypt.eu.org/
stream. 7
[52] I. Damgrd. On the Existence of Bit Commitment Schemes and Zero-Knowledge Proofs.
In G. Brassard, editor, Advances in Cryptology - CRYPTO 89, 9th Annual International
Cryptology Conference, Santa Barbara, California, USA, August 20-24, 1989, Proceedings,
volume 435 of Lecture Notes in Computer Science, pages 1727. Springer, 1989. 73, 77
[53] D.E. Denning. Cryptography and Data Security, page 100. Addison-Wesley, 1982. 17
[54] F. Didier. Using Wiedemanns Algorithm to Compute the Immunity Against Algebraic
and Fast Algebraic Attacks. In R. Barua and T. Lange, editors, INDOCRYPT, volume
4329 of Lecture Notes in Computer Science, pages 236250. Springer, 2006. 38, 41, 42, 47
[55] F. Didier and J.-P. Tillich. Computing the Algebraic Immunity Efficiently. In Robshaw
[120], pages 359374. 38, 41, 42, 47
Bibliographie
135
136
Bibliographie
[73] M. Hell and T. Johansson. Breaking the F-FCSR-H Stream Cipher in Real Time. In
J. Pieprzyk, editor, ASIACRYPT, volume 5350 of Lecture Notes in Computer Science,
pages 557569. Springer, 2008. 12
[74] M.E. Hellman. A Cryptanalytic Time-Memory Tradeoff. IEEE Transactions on Information Theory, 26(4) :401406, 1980. 14, 15
[75] J.J. Hoch and A. Shamir. Breaking the ICE - Finding Multicollisions in Iterated Concatenated and Expanded (ICE) Hash Functions. In M. Robshaw, editor, Fast Software
Encryption, 13th International Workshop, FSE 2006, Graz, Austria, March 15-17, 2006,
Revised Selected Papers, volume 4047 of Lecture Notes in Computer Science. Springer,
2006. 80
[76] T. Isobe, T. Ohigashi, H. Kuwakado, and M. Morii. A Chosen-IV Key Recovery Attack
on Py and Pypy. IEICE Transactions, 92-D(1) :3240, 2009. 23
[77] . Jaulmes and F. Muller. Cryptanalysis of the F-FCSR Stream Cipher Family. In
B. Preneel and S.E. Tavares, editors, Selected Areas in Cryptography, volume 3897 of
Lecture Notes in Computer Science, pages 2035. Springer, 2005. 23
[78] T. Johansson and F. Jnsson. Fast Correlation Attacks through Reconstruction of Linear
Polynomials. In M. Bellare, editor, CRYPTO, volume 1880 of Lecture Notes in Computer
Science, pages 300315. Springer, 2000. 21, 22
[79] A. Joux. Multicollisions in Iterated Hash Functions. Application to Cascaded Constructions. In M. Franklin, editor, Advances in Cryptology Proceedings of CRYPTO 2004,
volume 3152 of Lecture Notes in Computer Science, pages 306316. Springer, 2004. 79, 80
[80] A. Joux and J.-R. Reinhard. Overtaking VEST. In A. Biryukov, editor, FSE, volume 4593
of Lecture Notes in Computer Science, pages 5872. Springer, 2007. 23
[81] J. Kelsey and T. Kohno. Herding Hash Functions and the Nostradamus Attack. In S. Vaudenay, editor, Advances in Cryptology - EUROCRYPT 2006, 25th Annual International
Conference on the Theory and Applications of Cryptographic Techniques, St. Petersburg,
Russia, May 28 - June 1, 2006, Proceedings, volume 4004 of Lecture Notes in Computer
Science, pages 183200. Springer, 2006. 80
[82] J. Kelsey and B. Schneier. Second Preimages on n-Bit Hash Functions for Much Less
than 2n Work. In R. Cramer, editor, Advances in Cryptology - EUROCRYPT 2005, 24th
Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, May 22-26, 2005, Proceedings, volume 3494 of Lecture Notes in
Computer Science, pages 474490. Springer, 2005. 80
[83] E.L. Key. An Analysis of the Structure and Complexity of Nonlinear Binary Sequence
Generators. IEEE Transactions on Information Theory, 22(6) :732736, 1976. 42
[84] S. Kiyomoto, T. Tanaka, and K. Sakurai. K2 : A Stream Cipher Algorithm using Dynamic Feedback Control. In J. Hernando, E. Fernndez-Medina, and M. Malek, editors,
SECRYPT, pages 204213. INSTICC Press, 2007. 10
[85] A. Klein. Attacks on the RC4 stream cipher. Des. Codes Cryptography, 48(3) :269286,
2008. 11
[86] L. Knudsen, K. Matusiewicz, and S.S. Thomsen. Observations on the Shabal keyed permutation. Public comment on the NIST Hash competition, 2009. 110, 116
[87] D.E. Knuth. The Art of Computer Programming, vol. II : Seminumerical Algorithms.
Addison-Wesley, 1969. 72
Bibliographie
137
[88] H. Krawczyk, M. Bellare, and R. Canetti. HMAC : Keyed-Hashing for Message Authentication. RFC 2104 (Informational), 1997. http://www.ietf.org/rfc/rfc2104.txt. 73
[89] S. Lang. Algebra. Springer, 2002. 29
[90] R. Lidl and H. Niederreiter. Finite Fields. Cambridge University Press, 2008. 26
[91] M. Liskov, R.L. Rivest, and D. Wagner.
24(3) :588613, 2011. 77
J. Cryptology,
[92] S. Lucks. Design Principles for Iterated Hash Functions. Cryptology ePrint Archive,
Report 2004/253, 2004. http://eprint.iacr.org/. 81, 85
[93] J.L. Massey. Shift-Register Synthesis and BCH Decoding. IEEE Transactions on Information Theory, 15(1) :122127, 1969. 9, 33
[94] U.M. Maurer, R. Renner, and C. Holenstein. Indifferentiability, Impossibility Results on
Reductions, and Applications to the Random Oracle Methodology. In Moni Naor, editor,
Theory of Cryptography, First Theory of Cryptography Conference, TCC 2004, Cambridge,
MA, USA, February 19-21, 2004, Proceedings, volume 2951 of Lecture Notes in Computer
Science, pages 2139. Springer, 2004. 68, 69
[95] W. Meier, E. Pasalic, and C. Carlet. Algebraic Attacks and Decomposition of Boolean
Functions. In C. Cachin and J. Camenisch, editors, Advances in Cryptology - EUROCRYPT 2004, International Conference on the Theory and Applications of Cryptographic
Techniques, Interlaken, Switzerland, May 2-6, 2004, Proceedings, volume 3027 of Lecture
Notes in Computer Science, pages 474491. Springer, 2004. 38
[96] W. Meier and O. Staffelbach. Fast Correltaion Attacks on Stream Ciphers (Extended
Abstract). In C.G. Gnther, editor, Advances in Cryptology - EUROCRYPT 88, Workshop
on the Theory and Application of of Cryptographic Techniques, Davos, Switzerland, May
25-27, 1988, Proceedings, volume 330 of Lecture Notes in Computer Science, pages 301
314. Springer, 1988. 20
[97] W. Meier and O. Staffelbach. Fast Correlation Attacks on Certain Stream Ciphers. J.
Cryptology, 1(3) :159176, 1989. 20
[98] W. Meier and O. Staffelbach. The Self-Shrinking Generator. In A. De Santis, editor,
EUROCRYPT, volume 950 of Lecture Notes in Computer Science, pages 205214. Springer,
1994. 10
[99] A. Menezes, P.C. van Oorschot, and S.A. Vanstone. Handbook of Applied Cryptography.
CRC Press, 1996. 9, 10, 18, 71, 73, 78
[100] R.C. Merkle. One Way Hash Functions and DES. In G. Brassard, editor, Advances
in Cryptology - CRYPTO 89, 9th Annual International Cryptology Conference, Santa
Barbara, California, USA, August 20-24, 1989, Proceedings, volume 435 of Lecture Notes
in Computer Science, pages 428446. Springer, 1989. 77
[101] B. Mourrain and O. Ruatta. Relations Between Roots and Coefficients, Interpolation and
Application to System Solving. J. Symb. Comput., 33(5) :679699, 2002. 41
[102] F. Muller. Differential Attacks and Stream Ciphers. In State of the Art in Stream Ciphers.
ECRYPT Network of Excellence in Cryptology, 2004. Workshop Record. 23
[103] National Institute of Standards and Technology. FIPS PUB 197 : Advanced Encryption
Standard, 2001. 6, 22
[104] National Institute of Standards and Technology. FIPS Special Publication 800-38A,
Recommandation for Block Cipher Modes of Operation, 2001. 6
138
Bibliographie
[105] National Institute of Standards and Technology. FIPS Special Publication 800-38A,
Recommandation for Block Cipher Modes of Operation : The XTS-AES Mode for Confidentiality on Storage Devices, 2010. 6
[106] K. Nohl and C. Paget. GSM - SRSLY ? 26th Chaos Communication Congress, 2009. 8,
11, 17
[107] P. Oechslin. Making a Faster Cryptanalytic Time-Memory Trade-Off. In Boneh [27], pages
617630. 14, 15
[108] National Bureau of Standards. FIPS PUB 46 : Data Encryption Standard, 1977. 6
[109] National Institute of Standards and Technology. FIPS PUB 81 : DES Modes of Operations,
1977. 6
[110] National Institute of Standards and Technology. Secure Hash Standard. FIPS Publication
180, 1993. 74
[111] National Institute of Standards and Technology. Secure Hash Standard. FIPS Publication
180-1, 1995. http://www.itl.nist.gov/fipspubs/fip180-1.htm. 74
[112] National Institute of Standards and Technology. Announcing Request for Candidate Algorithm Nominations for a New Cryptographic Hash Algorithm (SHA-3) Family. Federal
Register, volume 72, no 212, 11 2007. 75
[113] P.J. Olver. On Multivariate Interpolation. Technical report, IN STUD. APPL. MATH,
2004. 36, 41
[114] S. ONeil, B. Gittins, and H. Landman. VEST Hardware-Dedicated Stream Ciphers. eSTREAM, ECRYPT Stream Cipher Project, Report 2005/032, 2005. http:
//www.ecrypt.eu.org/stream. 49
[115] S. ONeil, B. Gittins, and H. Landman. VEST Ciphers. eSTREAM, ECRYPT Stream
Cipher Project, 2006. http://www.ecrypt.eu.org/stream/p2ciphers/vest/vest_p2.
pdf. 8, 49, 50, 51, 52, 55, 56, 61
[116] B. Preneel. Analysis and Design of Cryptographic Hash Functions. PhD thesis, Katholieke
Universiteit Leuven, 1993. 79
[117] R. Rivest. The MD4 Message-Digest Algorithm. RFC 1320 (Informational), 1992. http:
//www.ietf.org/rfc/rfc1320.txt. 74
[118] R. Rivest. The MD5 Message-Digest Algorithm. RFC 1321 (Informational), 1992. http:
//www.ietf.org/rfc/rfc1321.txt. 74
[119] P. Rizomiliotis. Remarks on the New Attack on the Filter Generator and the Role of
High Order Complexity. In S.D. Galbraith, editor, Cryptography and Coding, 11th IMA
International Conference, Cirencester, UK, December 18-20, 2007, Proceedings, volume
4887 of Lecture Notes in Computer Science, pages 204219. Springer, 2007. 42
[120] M.J.B. Robshaw, editor. Fast Software Encryption, 13th International Workshop, FSE
2006, Graz, Austria, March 15-17, 2006, Revised Selected Papers, volume 4047 of Lecture
Notes in Computer Science. Springer, 2006. 132, 134, 140
[121] P. Rogaway. Formalizing Human Ignorance. In P.Q. Nguyen, editor, Progressin Cryptology
- VIETCRYPT 2006, First International Conferenceon Cryptology in Vietnam, Hanoi,
Vietnam, September 25-28, 2006, Revised Selected Papers, volume 4341 of Lecture Notes
in Computer Science, pages 211228. Springer, 2006. 73
Bibliographie
139
[122] P. Rogaway and T. Shrimpton. Cryptographic Hash-Function Basics : Definitions, Implications, and Separations for Preimage Resistance, Second-Preimage Resistance, and Collision
Resistance. In B.K. Roy and W. Meier, editors, Fast Software Encryption, 11th International Workshop, FSE 2004, Delhi, India, February 5-7, 2004, Revised Papers, volume
3017 of Lecture Notes in Computer Science, pages 371388. Springer, 2004. 73
[123] S. Rnjom, G. Gong, and T. Helleseth. On Attacks on Filtering Generators Using Linear
Subspace Structures. In S.W. Golomb, G. Gong, T. Helleseth, and H.-Y. Song, editors,
SSC, volume 4893 of Lecture Notes in Computer Science, pages 204217. Springer, 2007.
38, 42
[124] S. Rnjom and T. Helleseth. A New Attack on the Filter Generator. IEEE Transactions
on Information Theory, 53(5) :17521758, 2007. 38, 42, 46
[125] G. Rose, P. Hawkes, M. Paddon, and M. Wiggers de Vries. Primitive Specification for
SSS. eSTREAM, ECRYPT Stream Cipher Project, Report 2005/028, 2005. http://www.
ecrypt.eu.org/stream. 7
[126] R. Schroeppel and A. Shamir. A T = O(2n/2 ), S = O(2n/4 ) algorithm for certain NPcomplete problems. SIAM Journal on Computing, 10(3) :456464, 1981. 59
[127] P. Sepehrdad, S. Vaudenay, and M. Vuagnoux. Discovery and Exploitation of New Biases in
RC4. In A. Biryukov, G. Gong, and D.R. Stinson, editors, Selected Areas in Cryptography,
volume 6544 of Lecture Notes in Computer Science, pages 7491. Springer, 2010. 11
[128] C.E. Shannon. Communication Theory of Secrecy Systems. Bell Systems Technical Journal, 28 :656715, 1949. 6
[129] Victor Shoup. Sequences of games : a tool for taming complexity in security proofs.
Cryptology ePrint Archive, Report 2004/332, 2004. http://eprint.iacr.org/. 69
[130] A. Sidorenko and B. Schoenmakers. Concrete Security of the Blum-Blum-Shub Pseudorandom Generator. In N.P. Smart, editor, IMA Int. Conf., volume 3796 of Lecture Notes
in Computer Science, pages 355375. Springer, 2005. 11
[131] T. Siegenthaler. Decrypting a Class of Stream Ciphers Using Ciphertext Only. IEEE
Transactions on Computers, 34(1) :8185, 1985. 18
[132] L.R. Simpson, E. Dawson, J.Dj. Goli, and W. Millan. LILI Keystream Generator. In
D.R. Stinson and S.E. Tavares, editors, Selected Areas in Cryptography, volume 2012 of
Lecture Notes in Computer Science, pages 248261. Springer, 2000. 10
[133] D.R. Stinson. disponible http://www.cacr.math.uwaterloo.ca/~dstinson/papers/
polemic.ps, 2001. 66
[134] V. Strassen. Gaussian Elimination is not Optimal. Journal of Numerical Mathematics,
13 :354356, 1969. 39
[135] E. Tews, R.-P. Weinmann, and A. Pyshkin. Breaking 104 Bit WEP in Less Than 60
Seconds. In S. Kim, M. Yung, and H.-W. Lee, editors, WISA, volume 4867 of Lecture
Notes in Computer Science, pages 188202. Springer, 2007. 8, 11, 18
[136] S. Vaudenay, editor. Advances in Cryptology - EUROCRYPT 2006, 25th Annual International Conference on the Theory and Applications of Cryptographic Techniques, St.
Petersburg, Russia, May 28 - June 1, 2006, Proceedings, volume 4004 of Lecture Notes in
Computer Science. Springer, 2006. 131, 132
140
Bibliographie
[137] X. Wang, H. Yu, and Y. Yin. Finding Collisions in the Full SHA-1. In V. Shoup, editor,
Advances in Cryptology - CRYPTO 2005 : 25th Annual International Cryptology Conference, Santa Barbara, California, USA, August 14-18, 2005, Proceedings, volume 3621 of
Lecture Notes in Computer Science, pages 1736. Springer, 2005. 75
[138] X. Wang, H. Yu, and Y. Yin. How to Break MD5 and Other Hash Functions. In R. Cramer,
editor, Advances in Cryptology - EUROCRYPT 2005, 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, May
22-26, 2005, Proceedings, volume 3494 of Lecture Notes in Computer Science, pages 1935.
Springer, 2005. 75
[139] D. Whiting, B. Schneier, S. Lucks, and F. Muller. Phelix - Fast Encryption and Authentication in a Single Cryptographic Primitive. eSTREAM, ECRYPT Stream Cipher Project,
Report 2005/020, 2005. http://www.ecrypt.eu.org/stream. 8
[140] D.H. Wiedemann. Solving sparse linear equations over finite fields. IEEE Transactions on
Information Theory, 32(1) :5462, 1986. 42
[141] H. Wu and B. Preneel. Resynchronization Attacks on WG and LEX. In Robshaw [120],
pages 422432. 23
[142] H. Wu and B. Preneel. Differential Cryptanalysis of the Stream Ciphers Py, Py6 and Pypy.
In M. Naor, editor, EUROCRYPT, volume 4515 of Lecture Notes in Computer Science,
pages 276290. Springer, 2007. 23
Annexe A
A.1
A.1.1
do
h
i
Pr Echec
(q)
max Pr [ y V (q) : y = y]
1
2
u
n
(2q 1)
Pr Echec
=
Pr
Echec
(q)
1
1
q=1
2n
N
X
(2q 1)
q=1
2n (N (N + 1) N )
2n N 2 .
1. la premire valeur de y dans le jeu 2 du cas permutation paramtre
142
la probabilit de Echec
1 (q) est value de la mme manire. Supposons que la requte q soit
1
adresse R . Soit v = (M, A0 , B 0 , C) la requte effectue. On considre lensemble
D0 (v) = {Insert1 [M ](A, B, C) | (A, B) {0, 1}`a {0, 1}`h } .
Le noeud x 2 dfini pendant le traitement de
i q est soit extrait de G soit tir uniformh la requte
0
ment dans D (v). Dans le premier cas, Pr Echec2 (q) = 0. Dans le deuxime cas, on considre
x
un lment de X . Comme Insert[M ] est une permutation pour tout M fix, il existe un unique
B,
C)
tel que Insert[M ](
B,
C).
En prenant les probabilits sur la slection
tat (A,
x) = (A,
0
uniforme de x dans D (v), on a
h
i
B)
C = C
Pr [x = x
] = Pr (A, B) = (A,
2(`a +`h ) = 2n ,
du fait de lindpendance de la partie C et des parties A et B de Insert[M ](x). On en dduit que
pour tout x
X,
max Pr [x = x
] 2n
v
do
h
i
1
Pr Echec
(q)
|
requte
q
est
adresse
R
max Pr [ x
V (q) : x = x
]
1
2
v
n
(2q 1)
puisque |V (q)| 2q 1.
Comme Echec
1 (q) peut tre born de la mme manire quand la requte q est adresse R
1
o R , on a
h
i
n
Pr Echec
1 (q) (2q 1)2
et finalement
h
Pr Echec
1
N
X
h
i
Pr Echec
1 (q)
q=1
n
N
X
(2q 1)
q=1
n 2
A.1.2
N .
Preuve du lemme 5
2
t
N t e t k(t1)
2
.
2t t
2. la premire valeur de x dans le jeu 2 dans le cas permutation paramtre
A.1. Preuves des bornes dindiffrentiabilit des preuves dans le cas idal
143
On pose
t0 = 2k +
eN
,
2k
2
2k .
t
2t
(A.1)
1
1
log2 t 2k log2 (2).
2
2
Donc, pour t t0 ,
k2k+1
k2k+1
eN
+ log2 1 +
= log2 e + log2 N k + log2 1 +
,
log2 t log2
eN
eN
2k
do
eN
k2k+1
t (log2 t + k log2 N log2 e) 2k 1 + k+1 log2 1 +
eN
k2
2k
o la dernire galit est dduite du fait que pour x 0,
1
f : x 7 1 +
log2 (1 + x)
x
est croissante et limx0 f (x) = 1/ ln 2 > 1. En utilisant t 2k 1, on dduit
t (log2 t + k log2 N log2 e) +
1
log2 t 2k .
2
dt0 e1
Pr [tColl(N, k)] =
t=1
Pr [tColl(N, k)] +
t=1
N
X
Pr [tColl(N, k)]
t=dt0 e
dt0 e 1 + N 2k ,
conduisant
N
X
t=1
k + log2 ( 2)
.
t1 =
k log2 e
Pour tout t dt1 e et tout N 2 , on a alors
Pr [tColl(N, k)]
1
.
N
144
k + log2 ( 2)
t=1
N
X
1
N
t=dt1 e
(dt1 e 1) + 1 = dt1 e .
On obtient finalement
N
X
t=1
A.1.3
l k + log (2) m
2
.
Pr [tColl(N, k)]
k log2 e
Preuve du lemme 6
On considre le graphe construit par notre simulateur aprs quil ait rpondu N requtes.
Soit r un entier et rColl lvnement correspondant la situation suivante : il existe r arcs
Mi
xi
yi dans ED EC , pour 1 i r, tels que tous les yi , 1 i r, ont la mme partie B.
De plus, on dfinit lvnement tCollmax comme t est la plus grande valeur r telle que rColl
est vraie . Alors :
N
h
i
h
i
X
Pr Echec4 =
Pr [tCollmax] Pr Echec
4 | tCollmax
t=1
N
X
i
h
t=1
h
i
A.1. Preuves des bornes dindiffrentiabilit des preuves dans le cas idal
145
Comme on effectue lanalyse sachant que lvnement (t + 1)Coll ne se produit pas, pour tout
H, la taille de Y C (q, H) est majore par t.
Pour un tat fix z = (Az , H, Cz ) X la probabilit quun noeud y = (A0y, By0, Cy) dans
C
Y (q) soit gal z est
Pr [y = z] = Pr A0y = Az By0 = H Cy = Cz ,
By0 = H Pr A0y = Az ,
By0 = H 2`a ,
o la premire galit dcoule de lindpendance des parties A et B des noeuds dfinis par le
simulateur et la seconde ingalit dcoule de la slection uniforme des parties A.
Pour un noeud y = (A0 , B 0 , C) choisi par le distingueur par le biais dune requte q avec pour
entre u = (M, A0 , B 0 , C), la probabilit quun noeud y = (A0y, H, Cy) dans Y C (q, H) partage la
mme partie A est
X
Pr A0 = a A0y = a ,
Pr A0 = A0y =
a{0,1}`a
Pr A0 = a Pr A0y = a ,
a{0,1}`a
= 2`a
Pr A0y = a ,
a{0,1}`a
= 2`a ,
o la seconde galit dcoule de lindpendance des parties A de y et de y, et
h la troisime galit de
i
Pr Echec
(q)
|
tCollmax
max Pr y Y C (q) ,
4
u
X
max
Pr y Y C (q, H) ,
u
H{0,1}`h
max
u
H{0,1}`h
max
u
yY
Pr [y = y] ,
C (q,H)
[yB = H] Pr [yA = yA ] ,
H{0,1}`h yY C (q,H)
max
u
H{0,1}`h
t2`a .
h
i
Pr Echec
4
N
X
t=1
2`a N
N
X
t=1
2`a N
N
X
t=1
Pr [tColl] ,
146
A.1.4
Preuve du lemme 7
A.1.5
Preuve du lemme 8
Echec3 , on considre uniquement le fait que le noeud soumis par le distingueur est le but dun
arc de EC \ ED . Quand lencodage de message est sans prfixe, la condition additionnelle qui
Pr [xA = yA xB = yB ] =
Pr A = a B = b A0 = a B 0 = b ,
a,b{0,1}n
Pr [A = a B = b] Pr A0 = a B 0 = b ,
a,b{0,1}n
= 2n
Pr [A = a B = b] ,
a,b{0,1}n
= 2n ,
o la seconde galit est hdduiteide lindpendance des parties A et B de x et de y.
Pr Echec
= max Pr x YpfC (q) ,
3 (q)
u
X
max
Pr [x = y] ,
u
max
u
yYpfC (q)
X
yYpfC (q)
(q 1)2n ,
car |YpfC (q)| q 1. Par consquent, on a
2n ,
A.2. Preuves des bornes dindiffrentiabilit des preuves dans le cas biais
147
N
i
i
h
h
X
Echec
(q)
Pr
Pr Echec
3
3
q=1
2n
N
X
(q 1)
q=1
2n
A.2
A.2.1
N (N + 1)
N
2
N2
.
2
A ,B
Pr (A0 , B 0 ) = (A , B ) 2(n ) .
Un des drapeaux est lev si (A0 , B 0 ) appartient un ensemble de noeuds constitu :
des noeuds atypiques, au nombre de Natypique ;
des noeuds auto-relatifs, au nombre de Nautorel ;
des noeuds figurant dans le graphe, au nombre born par 1 + q max (2, NR ) ;
2 ;
des noeuds relatifs dune requte dans le graphe, au nombre born par qNR
des noeuds relatifs dun noeud possdant un chemin dans le graphe, au nombre born par
NR (1 + qNR ).
On a donc
h
i
2
Pr Echec(q)
Natypique + Nautorel + 1 + NR + (max (2, NR ) + 2NR
)q 2(n ) .
Pour N requtes aux simulateurs, il y a au plus N NR dfinitions dentres de F. La probabilit
que Echec
se produise au cours de N requtes est borne par
NX
NR
h
i
2 (n )
Pr Echec
Natypique + Nautorel + 1 + NR + (max (2, NR ) + 2NR
)q 2
,
q=1
2 )N 2 N 2 2(n ) .
NR (Natypique + Nautorel + 1 + NR )N + (max (2, NR ) + 2NR
R
A.2.2
Preuve du lemme 10
On reprend la preuve du lemme 7. Drapeau3 est dsormais lev si lattaquant ralise une
requte relative dun noeud but dun arc dfini par la construction. Si Echec
ne se produit pas,
pour les requtes provenant de la construction, il y a au plus un arc dfini par requte. Le nombre
darcs correspondant au bout de la q-me requte reste donc q. Par contre, en soumettant une
requte, le distingueur teste jusqu NR valeurs de Y C . Par ailleurs, la condition = 0 permet
dassurer que la probabilit pour lattaquant de choisir A permettant de complter un noeud
148
pour trouver un relatif dun noeud de Y C est majore par 2`a . On en dduit la borne de la
preuve.
A.2.3
Preuve du lemme 11