Sunteți pe pagina 1din 166

SGDSN/ANSSI

Universit de Versailles Saint-Quentin

Laboratoire de Cryptographie

Laboratoire PRiSM

COLE DOCTORALE
STV

THSE
prsente pour obtenir le grade de

Docteur de lUniversit de Versailles


Spcialit : Informatique
soutenue publiquement par

Jean-Ren Reinhard

tude de Primitives Cryptographiques Symtriques :


Chiffrements par Flot et Fonctions de Hachage

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

Travaux effectus au Laboratoire de Cryptologie de lANSSI


Agence Nationale de la Scurit des Systmes dInformation
51, boulevard de la Tour-Maubourg 75700 PARIS 07 SP

SGDSN/ANSSI

Universit de Versailles Saint-Quentin

Laboratoire de Cryptographie

Laboratoire PRiSM

COLE DOCTORALE
STV

THSE
prsente pour obtenir le grade de

Docteur de lUniversit de Versailles


Spcialit : Informatique
soutenue publiquement par

Jean-Ren Reinhard

tude de Primitives Cryptographiques Symtriques :


Chiffrements par Flot et Fonctions de Hachage

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

Travaux effectus au Laboratoire de Cryptologie de lANSSI


Agence Nationale de la Scurit des Systmes dInformation
51, boulevard de la Tour-Maubourg 75700 PARIS 07 SP

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.

Rsum : Lutilisation de primitives cryptographiques symtriques reste incontournable dans


tout systme mettant en oeuvre des mcanismes cryptographiques. Les travaux de cette thse
sinscrivent dans le contexte de deux comptitions internationales, eSTREAM et SHA-3, qui
ont stimul le dveloppement et la cryptanalyse de deux familles de primitives cryptographiques
symtriques, respectivement les algorithmes de chiffrement par flot et les fonctions de hachage.
Dans une premire partie, nous traitons dalgorithmes de chiffrement par flot du point de
vue du cryptanalyste. Nous prsentons des principes dattaque sappliquant de manire gnrale
de nombreux algorithmes de chiffrement par flot. travers deux exemples, nous dveloppons
plus particulirement la prsentation des attaques algbriques et des attaques diffrentielles.
Nous ralisons un tat de lart des attaques algbriques appliques au registre linaire filtr et
prsentons des attaques diffrentielles IV choisis de complexit pratiquable contre la famille
dalgorithmes VEST, soumise la comptition eSTREAM et accepte en phase 2.
Dans une deuxime partie, nous tudions la construction de fonctions de hachage cryptographiques. Nous avons travaill la conception dun candidat la comptition SHA-3 :
Shabal. On se concentre dans ce mmoire sur la scurit de son algorithme dextension de domaine dans le modle de lindiffrentiabilit dun oracle alatoire, en idalisant la fonction de
compression. On prsente galement une modlisation permettant de prendre en compte des
proprits non-idales de la fonction de compression utilise et on tend la preuve de lextension
de domaine de Shabal dans ce cadre.

Mots cls : Cryptanalyse dalgorithme de chiffrement par flot, registre linaire filtr, attaques
algbriques, VEST, extension de domaine de fonction de hachage, indiffrentiabilit, Shabal.

Table des matires


Remerciements . .
Abstract . . . . . .
Rsum . . . . . .
Table des matires
Table des figures .
Liste des tableaux
Introduction . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
i
. iii
. v
. vii
. xi
. xiii
.
1

Chiffrement par Flot

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

2 Structure Algbrique du Registre Linaire Filtr


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 . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

25
25
26
29
30
31
31
32
32
33
35
35
35
37
38

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

viii

Table des matires


2.4.2
2.4.3

Structure linaire du LFSR filtr. . . . . . . . . . . . . . . . . . . . . . . .


Attaques algbriques rapides. . . . . . . . . . . . . . . . . . . . . . . . . .

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

Table des matires

ix

4.4.4

80

Scurit dune extension de domaine . . . . . . . . . . . . . . . . . . . . .

5 Preuve dindiffrentiabilit dans le cas idal


5.1 Un mode opratoire gnrique . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Preuve dindiffrentiabilit dans le cas idal . . . . . . . . . . . . . . . . .
5.2.1 Concept dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Principe de conception du simulateur et notations . . . . . . . . .
5.2.3 Indiffrentiabilit dans le cas dune fonction idale . . . . . . . . .
5.2.4 Indiffrentiabilit dans le cas dune permutation paramtre idale
5.3 Bornes dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 Bornes gnrales dindiffrentiabilit . . . . . . . . . . . . . . . . .
5.3.2 Bornes pour un encodage de message arbitraire . . . . . . . . . . .
5.3.3 Bornes pour un encodage de message sans prfixe . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

83
83
86
86
87
88
99
105
106
107
108

6 Preuve dindiffrentiabilit dans le cas biais


6.1 Fonctions non idales . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1.1 Attaques en distingueur sur fonction de tour . . . . . . . . . . .
6.1.2 Modlisation de fonctions biaises . . . . . . . . . . . . . . . . .
6.2 Modle de la fonction biaise idale . . . . . . . . . . . . . . . . . . . .
6.2.1 Problmatique . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2 Fonction biaise idale . . . . . . . . . . . . . . . . . . . . . . .
6.2.3 Borne directe dindiffrentiabilit dun oracle alatoire . . . . .
6.2.4 Reprsentation algorithmique dune fonction biaise idalise .
6.2.5 Quantification du biais dune fonction idalise biaise . . . . .
6.2.6 Requtes biaises . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Preuve dindiffrentiabilit dans le modle de la fonction biaise idale
6.3.1 Modifications de la preuve du cas idal . . . . . . . . . . . . . .
6.3.2 Simulateur et borne dindiffrentiabilit . . . . . . . . . . . . .
6.3.3 Rsum de la preuve . . . . . . . . . . . . . . . . . . . . . . . .
6.3.4 Squence de jeux de la preuve . . . . . . . . . . . . . . . . . . .
6.3.5 Borne dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

109
109
110
111
112
112
112
113
114
115
115
117
117
117
119
120
129

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Bibliographie

131

A Calculs des bornes des preuves dindiffrentiabilit


A.1 Preuves des bornes dindiffrentiabilit des preuves dans le
A.1.1 Preuve du lemme 4 . . . . . . . . . . . . . . . . . .
A.1.2 Preuve du lemme 5 . . . . . . . . . . . . . . . . . .
A.1.3 Preuve du lemme 6 . . . . . . . . . . . . . . . . . .
A.1.4 Preuve du lemme 7 . . . . . . . . . . . . . . . . . .
A.1.5 Preuve du lemme 8 . . . . . . . . . . . . . . . . . .
A.2 Preuves des bornes dindiffrentiabilit des preuves dans le
A.2.1 Preuve du lemme 9 . . . . . . . . . . . . . . . . . .
A.2.2 Preuve du lemme 10 . . . . . . . . . . . . . . . . .
A.2.3 Preuve du lemme 11 . . . . . . . . . . . . . . . . .

141
141
141
142
144
146
146
147
147
147
148

cas
. .
. .
. .
. .
. .
cas
. .
. .
. .

idal .
. . . .
. . . .
. . . .
. . . .
. . . .
biais
. . . .
. . . .
. . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

Table des figures


1.1
1.2
1.3
1.4
1.5

Algorithme de chiffrement par flot construit selon


Algorithme de chiffrement par flot construit selon
Algorithme de chiffrement par flot construit selon
Algorithme de chiffrement par flot construit selon
Modlisation du GPA par un LFSR bruit . . . .

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

LFSR de type Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


LFSR de type Galois . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Structure linaire quivalente du LFSR filtr . . . . . . . . . . . . . . . . . . . . .

31
31
44

3.1
3.2

Mise jour dun registre du compteur . . . . . . . . . . . . . . . . . . . . . . . .


Motif diffrentiel et tats en collision . . . . . . . . . . . . . . . . . . . . . . . . .

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

Une extension de domaine gnrique. . . . . . . . . . . . . . . . . . . . . . . . . .


Extension de domaine de Shabal. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reprsentation quivalente de lextension de domaine de Shabal. . . . . . . . . . .
La construction C F a accs un oracle F. Le simulateur S H a accs loracle
alatoire H. Le distingueur interagit soit avec Q = (C F , F), soit avec Q0 = (H, S H )
et doit les distinguer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
volution des interactions entre oracles et simulateurs au cours de la preuve. . . .
Simulateur S de F dans le jeu 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F dans le jeu 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F dans le jeu 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F dans le jeu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interactions entre les composants du jeux 6. . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F 1 dans le jeu 1 . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F et F 1 dans les jeux 2 et 3 . . . . . . . . . . . . . . . . . . .
Simulateur S de F dans le jeu 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F 1 dans le jeu 4 . . . . . . . . . . . . . . . . . . . . . . . . . .
Simulateur S de F et F 1 dans le jeu final . . . . . . . . . . . . . . . . . . . . .

87
88
89
90
91
92
94
95
99
100
102
103
105

6.1
6.2
6.3
6.4
6.5

Cas biais Simulateur S de F. . . . .


volution des interactions entre oracles
Cas biais Simulateur S de F dans le
Cas biais Simulateur S de F dans le
Cas biais Simulateur S de F dans le

118
120
121
121
123

dune fonction de hachage itre


dune 2k -multicollision . . . . .
domaine wide-pipe/Chop-MD .
domaine Haifa . . . . . . . . . .
domaine EMD . . . . . . . . . .
domaine fonction ponge . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

. . . . . . . . . . . . . . . . . . . . . .
et simulateurs au cours de la preuve. .
jeu 1. . . . . . . . . . . . . . . . . . .
jeu 2. . . . . . . . . . . . . . . . . . .
jeu 3. . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

xii

Table des figures


6.6

Cas biais Simulateur S de F dans le jeu 4. . . . . . . . . . . . . . . . . . . . . 125

Liste des tableaux


1.1

2.1
2.2
2.3
2.4
2.5
3.1
3.2

Ordre de grandeur des temps daccs et capacit des technologies courantes de


mmoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rsum de la complexit de lattaque algbrique nave . . . . . . . . . . . . . . .
Complexit CAnn du calcul dannulateurs de degr minimum e dune fonction
boolenne n variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rsum de la complexit de lattaque algbrique avec prise en compte des annulateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Complexit CAnn du calcul dannulateurs de degr minimum dune fonction
boolenne n variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rsum de la complexit de lattaque algbrique rapide . . . . . . . . . . . . . . .
Taille Ni du plus grand ensemble dtats en collision pour la fonction i de mise
jour de registre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Taille de familles couvrantes de quelques fonctions non linaires . . . . . . . . . .

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

Chiffrement par Flot

Chapitre 1

Prliminaires

Sommaire
1.1

1.2

1.3

1.1
1.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 . . . . . . . . . . . . . . . .

Historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2.1

Constructions base de registres linaires . . . . . . . . . . . . . . . . . . .

1.2.2

Algorithme de chiffrement flot prouv sr . . . . . . . . . . . . . . . .

11

1.2.3

Chiffrements par flot industriels . . . . . . . . . . . . . . . . . . . . . . . . .

11

1.2.4

Constructions fondes sur des primitives cryptographiques sous-jacentes . .

12

1.2.5

Chiffrement par flot moderne comptition eSTREAM . . . . . . . . . . .

12

Principes de cryptanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . .

12

1.3.1

Attaques gnriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

13

1.3.2

Attaques par corrlation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Chiffrement par bloc

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

Chiffrement par flot synchrone

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

Scurit des algorithmes de chiffrement par flot

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.

En cryptographie symtrique, il nexiste pas, en rgle gnrale, de preuve de la scurit dun

1.2. Historique

algorithme. La scurit dun algorithme est la conjonction de deux points :


Le dimensionnement de lalgorithme est tel que les meilleures attaques gnriques connues
sur lalgorithme ont des complexits inatteignables en pratique ;
Il nexiste pas dattaque plus rapide que ces attaques.
Si le premier point peut facilement tre analys, le deuxime point nest jamais compltement
garanti. La confiance dans un algorithme symtrique est lie la dure consacre son tude et
la qualit des arguments de scurit produits au cours de cette tude.

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

Constructions base de registres linaires

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

Algorithme de chiffrement flot prouv sr

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

Chiffrements par flot industriels

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

Constructions fondes sur des primitives cryptographiques sousjacentes

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

Chiffrement par flot moderne comptition eSTREAM

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

Principes de cryptanalyse des algorithmes de chiffrement par


flot

On prsente ici dans les grandes lignes les principes de cryptanalyse les plus communs des
algorithmes de chiffrement par flot.

1.3. Principes de cryptanalyse

1.3.1

13

Attaques gnriques

Du fait de sa dfinition et de sa construction, un algorithme de chiffrement par flot peut


tre attaqu de manire gnrique. Cest le dimensionnement de lalgorithme qui permet de se
prmunir contre ces attaques, i.e. il existe des attaques contre lalgorithme de chiffrement par flot
mais leur complexit est telle quelles ne peuvent aboutir de manire pratique. On distingue les
attaques directes des compromis temps-mmoire-donne. La complexit des attaques gnriques
dpend de trois paramtres, dont ces attaques fixent donc la taille minimale :
la taille de la cl ;
la taille de ltat interne ;
la taille de lIV.
1.3.1.1

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.

1.3. Principes de cryptanalyse

15

Prcalcul. Le prcalcul consiste calculer et stocker en mmoire un certain nombre de


paires formes dun lment de E et de son image par la fonction . Plus prcisment, on tire
m lments x E distincts et on stocke en mmoire les paires (x, (x)). la fin du prcalcul
on trie ces couples selon la valeur de (x). On a P = M = m.
Rsolution. On suppose disposer dune suite chiffrante de longueur D = N
m . On peut
construire de lordre de D fentres de n bits de suite chiffrante. Pour chacune de ces fentres, on
teste si la table donne un antcdent. Si cest le cas, on retourne cet antcdent. La complexit
de cette phase est T = D = N
m . Heuristiquement, on considre M T = N paires de la forme
(fentre de suite chiffrante, image de dans la table) chacune ayant probabilit 1/N de rpter
la mme valeur. On sattend donc ce que la table donne un antcdent sur lensemble des
fentres considres.
Remarque 1. Quitte abandonner la phase de prcalcul, on peut commencer par collecter
et stocker en mmoire m bits de suite chiffrante, puis tester alatoirement N
m valeurs dtat
interne en calculant leur image par et en recherchant le rsultat parmi les fentres de suite
chiffrante collecte. On a alors D = M = m et T = N
m . Cet autre point du compromis vrifie la
mme relation M T = N . On peut adopter le compromis qui minimise la quantit de donnes
utilise D = min(M, T ).
Remarque 2. La valeur retourne par lalgorithme ne correspond pas forcment la valeur
de ltat interne. En effet rien ne garantit linjectivit de . Cependant, la probabilit de trouver
le bon rsultat est non ngligeable et la probabilit derreur lie ce phnomne peut tre
dimininue en augmentant lgrement la taille des fentres considres (f = n+ ).
n
Remarque 3. Un point classique de ce compromis est la valeur T = M = 2 2 . tant donne
la quantit de mmoire et/ou de donnes ncessaire pour raliser ce compromis, il ne pose
gnralement pas de problme en pratique. Cependant il indique quil est sain de dimensionner
ltat interne du GPA pour que sa taille soit au moins gale deux fois le niveau de scurit
vis.
Compromis de Hellman, tables arc-en-ciel et compromis de Biryukov-Shamir. Le
compromis de Hellman [74] peut-tre utilis pour attaquer aussi bien la cl que ltat interne dun
GPA. Il repose sur un prcalcul diffrent. Le compromis dOeschlin [107], plus connu sous le nom
de table arc-en-ciel, est apparent au compromis de Hellman. Le compromis de Biryukov-Shamir
[25] est une variante du compromis de Hellman spcifique au GPA qui porte spcifiquement sur
ltat interne et reprend lide du compromis de Babbage-Goli de rsoudre une inversion parmi
D instances du problme.
Principe du prcalcul. Le prcalcul dans ces compromis se fonde sur la construction de
chanes de valeurs par itration de la fonction f . Considrons une valeur x E, un entier t et
une fonction de rduction . On peut construire une chane de t + 1 valeurs de E commenant
par x en itrant la fonction f :
f

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.

1.3. Principes de cryptanalyse

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

Temps daccs (s)


108
107
105
10

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

Attaques par corrlation

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

Figure 1.5 Modlisation du GPA par un LFSR bruit

1.3. Principes de cryptanalyse

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)

pnd = 12 erfc( 212 2 ( 12 (1 + ) `limit ) 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,

do, en liminant `limit ,


M
M

+
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.

1.3. Principes de cryptanalyse

21

Supposons que lattaquant dispose de D bits de suite chiffrante z = (z 0 , . . . , z D1 ) et quil


peut en driver M approximations de combinaisons linaires de bits de ltat initial x = x0 de
biais
L1
X

xi ai,j = f i (z) [], 0 j < M.

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

ce qui donne une borne infrieure sur le nombre dapproximations collecter,


M

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

La notion dattaque diffrentielle merge de la cryptanalyse des algorithmes de chiffrement


par bloc et a notamment permis dobtenir les premiers rsultats contre lalgorithme DES [21].
Il sagit dtudier le comportement diffrentiel de lalgorithme, cest dire comment pour
des couples de clairs de diffrence donne et bien choisie, cette diffrence initiale se propage au
cours du calcul de la fonction de chiffrement.

1.3. Principes de cryptanalyse

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

Structure Algbrique du Registre


Linaire Filtr

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

On commence par rappeler quelques dfinitions et proprits dobjets mathmatiques utiles


la cryptanalyse des LFSR.

26

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

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

Proposition 5 (Construction dun corps fini de caractristique p) Soit P un polynme


irrductible unitaire de Z/pZ[X] de degr m. Lgalit modulo P des polynmes de Z/pZ[X]
dfinit une relation dquivalence dont le quotient (Z/pZ[X])/P est un corps de cardinal pm .
Proposition 6
m

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

Cette valeur est un lment de Fq0 .


Dfinition 4 Soit Fq , q = pm , un corps fini et Fq . Lapplication
: Fp [X] Fq
d
d
X
X
i
P =
pi X P () =
pi i
i=0

i=0

est un morphisme danneau. Lensemble des polynmes annulateurs de est 1


(0) = {P
Fp [X]|P () = 0}. Cest un idal de Fp [X], engendr par un polynme unitaire m irrductible
sur F[X]. On dsigne m sous le terme de polynme minimal de .
Dfinition 5 Soit Fq un corps et Fq0 un sous corps de Fq , q = q 0 m . La relation sur Fq
1 R2 ssi r tel que 2 = 1q

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

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

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 | .

Cette relation dquivalence permet dexpliquer la correspondance entre les dcompositions


m
de X p X comme produit de polynmes irrductibles et comme produit des polynmes unitaires de degr 1 de Fq [X].
Lorsquon considre un lment primitif de Fq , cette relation a une traduction naturelle
sur les logarithmes en base des lments de Fq .
Proposition 10 Soit Fq , q = pm un corps fini ainsi que un lment primitif de Fq . Les trois
propositions suivantes sont quivalentes :
i1 et i2 sont conjugus ;
j tel que i2 = pj i1 mod pm 1 ;
lcriture en base p de i2 se dduit de celle de i1 par rotation de ses chiffres.
Par extension, on note Ci la classe dquivalence de lexposant i, ni sa taille et R un ensemble
contenant un reprsentant de chaque classe dquivalence. De plus on note Rd (resp. Rd ) le
sous-ensemble de R contenant des entiers dont lcriture en base p comporte un nombre de
chiffres non-nuls gal d (resp. d).
Dfinition 6 Un polynme P Fp [X] unitaire de degr m est dit primitif si cest le polynme
minimal dun lment primitif de Fpm .
Proposition 11 Un polynme unitaire de degr m P Fp [X] est primitif si et seulement si les
conditions suivantes sont satisfaites

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

La polynme minimal et le polynme caractristique de cette matrice sont gaux A.


Proposition 12 Soit E un espace vectoriel de dimension finie n et u un endomorphisme de E,
dont le polynme minimal u est de degr m. Il existe x E tel que x, u(x), u2 (x), . . . , um1 (x)
est libre. Le sous-espace vectoriel engendr par ces vecteurs est stable par u et appel clture stable
de x par u.
Les deux rsultats suivants tablissent des dcompositions dendomorphisme despace vectoriel.
Thorme 2 (Dcomposition de Frobenius [89][Thorme 14.2.1]) Soit E un espace
vectoriel de dimension finie, non nul, sur un corps K et u un endomorphisme de E. Alors
E admet une dcomposition en somme directe
E = E1 Er ,
o chaque Ei est la clture stable dun lment de E par u. De plus, en notant iu le polynme
annulateur de la restriction de u Ei et u le polynme annulateur de u on a
1
ru |r1
u | |u = u .

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

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

2.1.3

Suite rcurrente linaire

On procde prsent quelques rappels sur les suites rcurrentes linaires.


Dfinition 8 Soit KN lensemble des suites dlments de K. On munit cet ensemble dune loi
de composition interne + et dune loi de composition externe dfinies de la manire suivante :
+ : KN KN
a = (a0 , a1 , . . .), b = (b0 , b1 , . . .)
: K KN
, a = (a0 , a1 , . . .)

KN
a + b = (a0 + b0 , a1 + b1 , . . .),
KN
a = (a0 , a1 , . . .).

(K, +, ) est un espace vectoriel. On note 0 la suite nulle.


Dfinition 9 On appelle fonction de dcalage et on note D lendomorphisme de KN dfini par
D : KN KN
(a0 , a1 , a2 , . . .) (a1 , a2 , . . .)
Proposition 13 Lapplication
: (K[X], +, , ) (End
KN , +, , )


P
Pd
i
s di=0 pi Di (s)
P = i=0 pi X
est un morphisme dalgbre.
Dfinition 10 Soit s KN une suite dlments de K. On dit que s est une suite rcurrente
linaire dordre L sil existe A K[X] de degr L tel que
(A)(s) = 0,
i.e. il existe (a0 , a1 , . . . , aL ) KL+1 , aL 6= 0 tel que
t N,

L
X

ai st+i = 0.

i=0

On dit que A est un polynme de rcurrence de s.


Le morphisme dalgbre permet de driver facilement quelques proprits utiles des suites
linaires rcurrentes, dont les propositions suivantes.
Proposition 14 Soit s KN . Lensemble des polynmes de rcurrence de s forme un idal
de K[X]. K[X] tant principal, il est engendr par un polynme s unitaire appel polynme
minimal de s.
Proposition 15 Soit s1 , s2 KN deux suites rcurrentes linaires, de polynmes minimaux
s1 , s2 . Si s1 et s2 sont premiers entre eux, alors s1 +s2 = s1 s2 .
Dmonstration : Il est clair que s1 +s2 |s1 s2 . Soit P un polynme de rcurrence de s1 + s2 , i.e.
(P )(s1 + s2 ) = 0. On a 0 = (s1 P )(s1 + s2 ) = (s1 P )(s1 ) + (s1 P )(s2 ) = (s1 P )(s2 ).
On a donc s2 |s1 P , et comme s1 et s2 sont premiers entre eux, s2 |P . De mme s1 |P , et
comme s1 et s2 sont premiers entre eux, s1 s2 |P .

Cette proposition stend naturellement au cas de n suites rcurrentes linaires dont les
polynmes minimaux sont premiers entre eux deux deux.

2.2. Registre dcalage rtroaction linaire

2.2

31

Registre dcalage rtroaction linaire

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

Figure 2.1 LFSR de type Fibonacci


LFSR de type Galois. Le rebouclage consiste ajouter ltat aprs dcalage, en
attribuant au pralable la valeur 0 la case laisse inoccupe par le dcalage, un multiple
de la valeur extraite par le dcalage.

a1

a0
s0

aL3

a2
s1

s2

aL2
sL3

aL1
sL2

sL1

Figure 2.2 LFSR de type Galois

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

LFSR de type Fibonacci

10 0

t
S

S t+1

a1

0 1 0 0 a2
. . . . . . t

=
.. .. . . .. .. .. S

.
0 0 0 . . 0 aL1
00 0

1 aL1

LFSR de type Galois

32

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

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

Lien avec les suites rcurrentes linaires

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.

2.2. Registre dcalage rtroaction linaire

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

Pour conclure cette prsentation des LFSR, on dcrit lalgorithme de Berlekamp-Massey[93].


Cet algorithme permet de construire le polynme de rcurrence de plus petit degr dune suite
finie. Si la suite est produite par un LFSR, cet algorithme permet de retrouver son polynme de
rebouclage ds que la longueur de la suite est suprieure deux fois le degr de ce polynme.
Le degr du polynme retourn est appel complexit linaire de la suite (s0 , . . . , sN 1 ).
La correction de cet algorithme se montre en considrant les invariants de boucle suivants,
considrs aprs le calcul de ef :
df est le degr de f , dg est le degr de g ;
vf est le nombre vrifi de 0 initiaux de la suite (f )(a), ef = (f )(a)vf ;
vg est le nombre de 0 initiaux de la suite (g)(s), eg est la premire valeur non nulle de
cette suite, i.e. (g)(s)vg = eg ;
vf + df = n ;
df + vf > dg + vg ;
vf + vg = n 1.
La proprit suivante est galement utile : pour v deg(h), (X v h)(a) est la suite obtenue en
supprimant les v premiers lments de la suite (h)(a).
La complexit de lalgorithme de Berlekamp-Massey est de lordre de O (LN ) pour une suite
de longueur N et de complexit linaire L. Lorsquil est appliqu une suite gnre par un
LFSR de taille L, on lapplique sur une suite de longueur 2L et la complexit est O L2 .
Le problme de la reconstruction du polynme de rebouclage dun LFSR peut encore sexP
i

primer au moyen de lalgorithme dEuclide tendu. On crit S(x) = 2L1


i=0 si X et A(X) =
P
L
X L P ( X1 ) = i=0 aLi X i . Les termes de degr suprieur L et strictement infrieur 2L du
sont nuls :
produit C = AS
i L, ci =

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

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

Algorithme 2 Algorithme de Berlekamp-Massey


Entre : s0 , s1 , . . . sN 1 une suite de N lments de Fq
Sortie : L un entier et A un polynme de rcurrence satisfait par la suite, de degr minimum.
si pour tout 0 i < N , si = 0 alors
retourner 0, 1
fin si
k = min (i tel que ai 6= 0)
f (X) = X k+1 + 1, df = k + 1, vf = 0
g(X) = 1, dg = 0, vg = k, eg = sk
pour n = k + 1 N 1 faire
Pdf
ef = i=0
fi sndf +i
si ef = 0 alors
vf = vf + 1
sinon
si vf < vg alors
f (X) = f (X) ef (eg )1 xvg vf g(X)
vf = vf + 1
sinon
T (X) = f (X)
f (X) = X vf vg f (X) ef (eg )1 g(X)
g(X) = T (X)
dg = df
df = df + vf vg
vf = vg + 1
vg = vf
eg = ef
fin si
fin si
fin pour
retourner df , f

2.3. Fonction boolennes

35

En appliquant lalgorithme dEuclide tendu S et X 2L , interrompu ds quun reste est de


degr < L on peut reconstituer A et donc A. La complexit de cet algorithme est l encore
quadratique.
Dans la suite de la section on se restreindra aux corps de caractristique 2.

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

Dfinition 12 On appelle fonction boolenne n 1 variables une fonction


f : {0, 1}n {0, 1}.
On note Bn lensemble des fonctions boolennes n variables.
On utilisera le terme de bit pour dsigner un lment de {0, 1}. Dans la suite on identifiera
souvent les lments de {0, 1}n aux entiers compris entre 0 et 2n 1 travers leur criture en
base 2. On notera galement x = (x0 , . . . , xn1 ) les composantes dun lment de {0, 1}n .
Une fonction boolenne est compltement dfinie par les valeurs quelle prend sur les 2n
lments de son ensemble de dpart.
Dfinition 13 On appelle table de vrit de f et on note T (f ) le vecteur (f (0), . . . , f (2n 1))T
de {0, 1}n .
Dfinition 14 Soit f une fonction boolenne. On appelle support de f , et on note supp(f )
lensemble des valeurs o f prend la valeur 1. Son complmentaire, o f prend la valeur 0, est
appel noyau de f , not ker(f ). Le poids de f , not wt(f ) est le cardinal de son support. Il
sagit du poids de Hamming de T (f ).
Les fonctions boolennes ont dautres reprsentations les dfinissant de manire complte.
Des transformations permettent de passer de T (f ) ces autres reprsentations. On prsente la
forme algbrique normale, qui nous intressera plus particulirement.

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

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

les valeurs de lexposant sont gales 0 ou 1. Il y a 2n tels exposants, dfinissant 2n fonctions


monomiales distinctes. On note Tn cet ensemble de monmes. De mme que pour les vecteurs
de n bits, on peut reprsenter les fonctions monomiales de n variables par un entier compris
entre 0 et 2n 1 en dfinissant un ordre total sur les monmes de Tn . On considrera les deux
ordres suivants :
Dfinition 16 (Ordre lexicographique inverse) Soit e, e0 Nn . Lordre lexicographique inverse, not rl, est dfini par
(
e = e0 ou
rl
0


xe xe
ei < e0i o i = max 0 j < n|ej 6= e0j
Restreint aux monmes de Tn , cet ordre correspond associer chaque monme lentier
dont lcriture en base 2 est donne par les exposants du monme.
On rappelle que le degr dun monme Xe , not deg(Xe ) est gal la somme de ses exposants.
Dfinition 17 (Ordre du degr lexicographique inverse) Soit e, e0 Nn . Lordre du degr lexicographique inverse, not drl, est dfini par
(
P
P 0
e = e0 ou ei <
ei ou
drl
0


e
e
P
P 0
x x
ej < ej et ei < e0i o i = max 0 j < n|ej 6= e0j
La matrice des valuations des fonctions monomiales joue un rle particulier dans ltude
des proprits des fonctions boolennes.
Dfinition 18 On considre les valeurs de {0, 1}n ordonnes z = (z0 , . . . z2n 1 ),et les monmes
de Tn ordonns selon lordre lexicographique inverse, = (0 , . . . , 2n 1 ). On appelle matrice
monomiale n variables la matrice de M2n ,2n (F2 ) dfinie par :
z00
z10
..
.

Vn =

z01
z11
..
.

z2n01 z2n11

z0 2 1
n
z1 2 1
..
..
.
.
2n 1
z2n 1

Le terme gnral de cette matrice est


Vn,i,j = {(i(2n 1))j=0}
o et sappliquent bit bit aux entiers i et j, et {Ev} vaut 1 ssi Ev est vrai, 0 sinon.
Cette matrice est une matrice de Vandermonde multivarie valuant les fonctions dfinies
par en les points z [113].
Proposition 16 Les matrices Vn , n N, possdent une structure rcursive par bloc On a

Vn+1

V0 = [1] ,


Vn 0
=
.
Vn Vn

De plus pour tout n N, Vn est inversible et gale son inverse.

2.4. Cryptanalyse algbrique du LFSR filtr

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

Cryptanalyse algbrique du LFSR filtr

On sintresse prsent au LFSR filtr et plus particulirement sa cryptanalyse algbrique.


Dfinition 20 Un LFSR filtr sur F2 est un gnrateur pseudo-alatoire dfini par :
un LFSR de taille L sur F2 et de polynme de rebouclage irrductible A(X) de degr L. On
adopte la reprsentation de Fibonacci. On note st = (st0 , . . . , stL1 ) les valeurs des cases du
LFSR linstant t et la fonction davance, linaire, du LFSR. Si s(t) dsigne la sortie
du LFSR linstant t, on a sti = s(t + i) ;
une fonction boolenne f L variables. 1 On note d son degr ;
1. En gnral, on utilise des fonctions boolennes utilisant moins de variables que la taille du LFSR et on
prcise les positions du LFSR alimentant les entres de f . Ces fonctions sexpriment galement dans le formalisme
adopt.

38

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

Linitialisation consiste crire la cl dans ltat du LFSR. La fonction dvolution de ce GPA


est la fonction dvolution de son LFSR. La fonction dextraction linstant t est donne par
z(t) = f (st0 , st1 , . . . , stL1 ).
On notera de manire abrge z(t) = f (st ).
Remarque : On se restreint par la suite au cas o le polynme de rebouclage A(X) est primitif.
Nous verrons plus bas que le cas dun LFSR filtr utilisant un polynme de rebouclage simplement irrductible correspond une version dgnre du LFSR filtr avec polynme primitif.
La cryptanalyse du LFSR a fait lobjet de nombreux travaux. On trouve principalement deux
classes dattaques : les attaques statistiques exploitant des biais de la fonction boolenne pour
essayer de reconstruire ltat interne, cf section 1.3.2, et les attaques algbriques qui vont tre
dtailles ci-dessous.

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 :

2.4. Cryptanalyse algbrique du LFSR filtr

39

La linarisation : on considre chaque monme intervenant dans le systme polynomial


comme une variable indpendante, ce qui permet dobtenir un systme linaire, rsoluble
laide de techniques classiques dalgbre linaire. Pour un LFSR de taille L et une fonction
boolenne de degr d, tous les monmes de degr infrieur ou gal d en les L variables
sont susceptibles dapparatre. Le systme linaris comporte donc NLd variables avec :
NLd


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

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

Algorithme 4 Attaque algbrique


Entre : un LFSR de taille L dtat st et de fonction davance , une fonction boolenne f de
degr d, z = (z(0), z(1), . . . , z(N 1)), N bits de suite chiffrante produite par le LFSR filtr
initialis avec une valeur s0 inconnue
Sortie : s0
Sp = ConstruireSyst`emePrecalcul(f, , L)
S, b = ConstruireSyst`eme(Sp , z)
s = ResoudreSyst`eme(S, b)
retourner s
Algorithme 5 ConstruireSyst`emePrecalcul (Attaque nave)
Entre : Cdrl (f ) les coefficients de f ordonns selon lordre drl,
PL1
A(X) = i=0
ai X i + X L le polynme de rebouclage du LFSR,
L la taille du LFSR
Sortie : Sp une matrice carre de taille NLd
Sp = 0N d
L
tmp = IdN d

pour i = 0 NLd 1 faire


Sp [i] Cdrl (f )T tmp
tmp RdA tmp
fin pour
retourner Sp
Annulateurs et amliorations On voit que le degr de la fonction boolenne influence de
manire exponentielle la complexit de lattaque algbrique. [47] constate quil est possible pour
un LFSR filtr de construire des systmes faisant intervenir des fonctions boolennes de degr
plus faible, ce qui amliore considrablement la complexit des attaques algbriques. Ceci passe
par ltude des annulateurs de la fonction f .
Remarque : Un rsultat essentiellement quivalent a t tabli indpendamment dans [62].
Dfinition 21 Soit f Bn une fonction boolenne n variables. On dit quune fonction
boolenne g Bn est un annulateur de f si
x {0, 1}n , f (x)g(x) = 0.
Lensemble des annulateurs de f est not Ann (f ). Cet ensemble est un idal de lensemble des
fonctions boolennes muni de laddition et de la multiplication. Lensemble des annulateurs de
degr infrieur ou gal e est not Anne (f ).
Soit g soit un annulateur de f de degr e. On a
t (f g)(t (s0 ))) = 0,
t
zt g(t (s0 )) = 0.
chaque instant o zt = 1, on obtient une quation g(t (s0 )) = 0. Si e < d, on peut donc
raliser une attaque algbrique de complexit moindre, aussi bien en temps quen donnes. En
fait dautres scnarios sont envisageables et peuvent tre rsums par le scnario suivant :
Supposons quon dispose de g et h tels que f g = h. On remarque qualors

2.4. Cryptanalyse algbrique du LFSR filtr

41

Algorithme 6 ConstruireSyst`eme (Attaque nave)


Entre : Sp la matrice rsultat du prcalcul, z la suite des sorties du gnrateur
Sortie : S, b un systme linaire dont la solution fournit ltat du LFSR filtr
retourner S, b

Prcalcul
Construction
Application
Rsolution

T
LF 3
F2
F

M
F2
F2
F2

D
F

Table 2.1 Rsum de la complexit de lattaque algbrique nave


h Ann (f + 1) car (f + 1).h = f h + h = f 2 .g + h = f g + h = 0.
g + h Ann (f ) car f (g + h) = f g + f h = h + h = 0.
Si g + h ou h est de degr infrieur d, on peut raliser une attaque algbrique plus rapide
que lattaque nave. Pour estimer la rsistance du LFSR filtr contre les attaques algbriques, il
faut donc tudier le problme de lexistence dannulateurs de f et de f + 1 de bas degr.
Dfinition 22 On appelle immunit algbrique dune fonction boolenne f lentier


[
IA(f ) = min e N|Anne (f ) Anne (f + 1) 6= {0{ .
Proposition 17 ([47][Thorme 6.0.1]) Soit f une fonction boolenne n variables. On a
n
IA(f ) d e.
2
Dmonstration : On considre la famille de fonctions boolennes n variables constitues des
monmes de degr infrieur ou gal b n2 c et des multiples de f par les monmes de degrs
infrieur ou gal d n2 e. Le nombre dlments de cette famille est






Pd n2 e n
Pb n2 c n
n
n
+ i=0
=2 +
.
i=0
i
i
b n2 c
tant donn que la dimension de lespace vectoriel des fonctions boolennes est 2n , cette famille
est lie et une relation de dpendance fournit un annulateur de f ou de f + 1.


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

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

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

Structure linaire du LFSR filtr.

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

2.4. Cryptanalyse algbrique du LFSR filtr

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

ui 2ji mod 2L 1 et j + l = (j0 + l, . . . je1 + l)

uj )(t )k

k=0 j:kj =k

Par ailleurs on a

kj+l = 2l kj
uj+l = 2l uj

On en dduit en regroupant les k conjugus


X
X
zt =
T rnk ((
uj )(t )k )
kR

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

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

Figure 2.3 Structure linaire quivalente du LFSR filtr


Thorme 5 Soit A un polynme irrductible de Fq [X], d un entier et RdA la matrice davance
monomiale de degr d du polynme A. RdA est une matrice triangulaire infrieure par bloc

A0 0 0
A1 0

RdA = .
.. . .
.. ,
..
. .
.

Ad

avec Ai MN i ,N i (Fq ) de polynme minimal et de polynme caractristique Pi =


L
L
Pd est le polynme minimal et caractristique de RdA .
Q
De plus, en notant Ped = di=e Pi , on a 0 e d,

B0 0
0
0 0
B1
0
0 0

..
.
.
.. .. .. ,
d
.
..
..
..
Ped (RA ) = .
. . .


Be1 0 0

0 0

kRi

X k .

avec Bi = Ped (Ai ).


Dmonstration : La structure triangulaire par blocs et la taille des matrices carres diagonales
dcoulent de la dfinition de la matrice davance monomiale. De plus R0A = [1] est une matrice
de polynme minimal et caractristique gaux P0 = X + 1.
Supposons que les proprits sur les matrices carres de la diagonale soient vraies pour tout
entier infrieur ou gal d 1. On va montrer quelles sont galement vraies pour d.
On commence par remarquer que A tant primitif, est primitif et les polynmes Pi sont
premiers entre eux.
Pour k Re , on a
d1
X
Y
j
0,...,d1
Ck
=
i2 i .
jJ0,L1Kd :

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

2.4. Cryptanalyse algbrique du LFSR filtr

45

de k. En notant k0 < . . . < kd1 ces positions, on peut crire :


Ck0,...,d1

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

divise Rd et donc le polynme caractristique de RdA . Du fait de la structure triangulaire


A

infrieure de RdA , son polynme caractristique est le produit du polynme caractristique de


et du polynme caractristique de Ad . Pd tant premier avec Pd1 , Pd divise le polynme
Rd1
A
caractristique de Ad . De plus son degr est gal la taille de la matrice Ad . Il est donc gal
au polynme caractristique de Ad . Comme il est produit de polynmes irrductibles distincts,
cest galement le polynme minimal de Ad . Le polynme caractristique de RdA est gal
Pd . Comme ce polynme est produit de polynmes irrductibles distincts, cest galement
le polynme minimal de RdA . Ceci conclut la preuve par rcurrence de la premire partie du
thorme.
On montre prsent que Ped (RdA ) a la forme annonce dans le thorme. On spare les lignes
et colonnes de Ped (RdA ) en deux blocs de longueurs respectives NLe et NLd NLe . La matrice RdA
scrit alors


M1 0
d
RA =
.
M2
M1 est une matrice triangulaire infrieure par bloc dont les blocs diagonaux sont les Ai , 0 i < e.
Par ailleurs le polynme caractristique de M2 est Ped , do Ped (M2 ) = 0. On en dduit la
forme annonce dans le thorme.


46

2.4.3

Chapitre 2. Structure Algbrique du Registre Linaire Filtr

Attaques algbriques rapides.

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)

Le thorme 5 nonce que les colonnes de droite de Pe deg(h) (RA


) correspondant aux
monmes de degr > e sont nulles. Ces monmes napparaissent donc pas dans lexpression
formelle de h(st ) et on peut les ignorer dans la construction de cette expression formelle. Cette
construction consiste donc calculer
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.

2.4. Cryptanalyse algbrique du LFSR filtr

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)

Table 2.5 Rsum de la complexit de lattaque algbrique rapide

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

Le compteur est un ensemble de 16 registres ci , (0 i < 16). Il constitue la partie autonome


de lalgorithme de chiffrement par flot dans le mode de gnration de suite chiffrante. Chaque
registre est un registre dcalage rtroaction non linaire, en anglais non linear feedback shift
register, abrg en NLFSR, de taille w = 10 ou 11 bits. Nous adoptons les notations de [115]
et dsignons par crij la valeur du bit j du registre i linstant r. La fonction de mise jour des
registres est donne en Figure 3.1.
Chaque registre est mis jour de manire indpendante. Les registres ont deux mode dopration. En mode compteur, les registres sont mis jour de manire autonome. En mode initialisa-

3.2. Description de VEST

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

Figure 3.1 Mise jour dun registre du compteur


tion, la fonction de mise jour dun registre est perturbe par un bit chaque coup dhorloge.
Les fonctions gi sont non linaires et choisies de telle sorte que les graphes des fonctions de mise
jour des registres en mode compteur soient composs de deux cycles de longueur de mme ordre
de grandeur, les longueurs de ces cycles tant premires deux deux. Ainsi, un minimum sur la
priode de la fonction de mise jour de lensemble des registres fonctionnant en mode compteur
peut-tre obtenue. 32 fonctions non linaires satisfaisant les proprits nonces ci-dessus sont
spcifies dans [115], 16 pour des registres de longueur 11 et 16 pour des registres de longueur
10. La slection dun membre de la famille VEST attribue chaque registre une fonction de
rebouclage de longueur adquate. chaque coup dhorloge le bit en position 1 est extrait de
chaque registre.
On remarque que la fonction de mise jour dun registre est inversible en mode compteur.
Elle est galement inversible en mode initialisation si le bit de perturbation est connu.

3.2.2

Diffuseur linaire du compteur

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

La mise la cl prend en entre une cl K de F bits, o F est un multiple de 8 et lintroduit


dans ltat du gnrateur pseudo-alatoire. Au dbut de la mise la cl, tous les bits de ltat
sont initialiss 1. la fin de la mise la cl, la valeur de ltat interne est appele tat mis
la cl. Pendant la mise la cl, aucun bit de sortie nest produit par lalgorithme. Le diffuseur
linaire de compteur et laccumulateur voluent comme dcrit prcdemment. Les registres du
compteur passent par deux phases :
Pendant la premire phase, K est introduite dans les registres. On commence par concatner 15 bits 0 devant la cl et 1 bit 1 suivi de 15 bits 0 aprs la cl, obtenant
ainsi une cl K 0 . Pendant F + 16 tapes, les registres fonctionnent en mode initialisation.
0
ltape r, les bits Kr0 , . . . , Kr+15
perturbent lvolution des registres 0, . . . , 15 respectivement. Chaque bit de cl influence donc chaque registre, le bit de cl 0 i < F tant
introduit dans le registre j ltape 15 + i j.
Pendant la deuxime phase, une constante de 8 bits est introduite dans les 8 premiers
registres, puis ltat est mlang. Pendant lintoduction de la constante, les 8 premiers
registres sont en mode initialisation, le registre i tant perturb par le i-me bit de la
constante, et les 8 derniers registres sont en mode compteur. Puis ltat de lalgorithme
passe par 31 tapes o lvolution des registres se fait en mode compteur.
Ltat mis la cl peut tre stock et recharg plus tard dans lalgorithme, pour acclrer
linitialisation de lalgorithme quand une mme cl est employe avec diffrents IV. Ltat mis
la cl dcrit compltement linfluence de la cl sur la suite du fonctionnement de lalgorithme.

3.2.6

Mode de mise lIV

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

3.3. Proprits des composants de VEST

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

Proprits des composants de VEST

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

Caractristiques diffrentielles des registres

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

Figure 3.2 Motif diffrentiel et tats en collision

Comportement diffrentiel sur un cycle. Afin de comprendre la source du comportement


non idal, considrons leffet dun bit de diffrence dans ltat dun registre pendant la mise
lIV. Nous distinguons trois cas :
la diffrence est en position w 1 : la fonction de mise jour dplace cette diffrence en
position 0,
la diffrence est en position j
/ {0, 1, 2, 6, 7} : la mise jour dcale la diffrence en position
j + 1,

54

Chapitre 3. VEST

la diffrence est en position j {0, 1, 2, 6, 7} : la mise jour dcale la diffrence en position


j + 1 et est susceptible de crer une diffrence en position 0, en fonction de la fonction
non linaire de rebouclage utilise et des valeurs des bits utiliss pour calculer le bit de
rebouclage.
Nous devons encore prendre en compte le bit dIV introduit cette tape. Aprs le calcul du
bit de rebouclage et le dcalage du registre, mais avant de produire le bit de sortie cette tape,
un bit dIV est ajout par ou-exclusif en position 1. Dans notre contexte danalyse diffrentielle,
ce bit peut tre utilis aussi bien pour introduire une nouvelle diffrence en position 1 que pour
corriger une diffrence prsente en position 0 la fin de ltape prcdente.
la fin de chaque tape, le bit de sortie est le bit en position 1 de ltat du registre.
Collisions locales. Nous adoptons une stratgie semblable celle des collisions locales utilises
dans [37] pour attaquer SHA-0. Lide cl est dintroduire un unique bit de diffrence dans ltat
du registre et de contrler sa propagation jusqu sa disparition. Nous commenons par considrer
la partie linaire de la fonction dvolution avant dintgrer la partie non linaire.
ltape 0, on introduit une diffrence travers des bits dIV diffrents. Ainsi, aprs ltape
0, il y a une diffrence en position 1 du registre. La partie linaire de la fonction dvolution du
registre consiste simplement faire subir une rotation aux bits du registre. Aprs ltape 1, la
diffrence est en position 2, aprs ltape 2 en position 3 ... et aprs ltape w 1 la diffrence
est en position 0. ltape w, elle revient en position 1, o elle peut tre supprime en utilisant
une diffrence dans la paire dIV. Ainsi, lorsque le rebouclage non linaire nintervient pas, w + 1
tapes sont ncessaires pour introduire et supprimer une diffrence. La sortie du registre tant
extraite de la position 1, on constate que la diffrence de sortie est constitue dun bit 1
suivi de w bits 0. Dans la suite, nous montrons comment construire des collisions suivant un
motif similaire sur w + 1 tapes avec diffrence sur la sortie.
On tient maintenant compte de la fonction non linaire (NLF). La collision dcrite ci-dessus
ne se produit plus systmatiquement. En effet, lorsque la fonction non linaire est active, i.e.
quand il y a un bit de diffrence sur au moins une de ses entres, sa sortie peut porter une
diffrence. Heuristiquement, cela se produit avec probabilit 12 . Ainsi, aprs une tape o la
NLF est active, il peut y avoir une diffrence additionnelle en position 0. Afin de prvenir la
propagation dune diffrence, on utilise linsertion de lIV en position 1 lors de ltape suivante.
En combinant tous les bits de diffrence sur lIV utiliss au cours des w + 1 tapes, on obtient
un motif de correction. Remarquons quavec des masques de diffrence sur w + 1 tapes, il nest
pas possible de corriger une diffrence produite ltape w.
En raison de la propagation de la diffrence initiale travers toutes les positions du registre,
le nombre dtapes actives est dau moins 5, les tapes 1, 2, 6, 7 et w. Heuristiquement, aprs
chaque tape active, la probabilit dapparition dune diffrence additionnelle en position 0 est
1
2 . Lorsque cest le cas ltape suivante est galement active. On peut donc sattendre ce que
des motifs de correction conduisent des collisions avec probabilit 25 . Ainsi, pour certaines
paires dIV ayant une diffrence correspondant un motif de correction, on peut sattendre
2w5 tats qui collisionnent.
De manire pratique w = 10 ou w = 11. On peut donc calculer toutes les caractristiques
diffrentielles de longueur w + 1 pour un compteur. En fait, pour un IV donn et un tat de
dpart, il y a au plus une diffrence dIV qui cre une collision aprs w + 1 tapes et prsente
la diffrence de sortie correcte . Nous avons calcul ces valeurs et stock pour chaque paire
dIV, les tats initiaux pour lesquels une collision se produit. Nous avons ralis cette recherche
exhaustive pour chacune des fonctions non linaires. Ce calcul prend quelques minutes sur un

3.4. Reconstitution partielle de ltat mis la cl

55

Intel Celeron 1.4 Ghz.


Les rsultats de ce calcul confirment notre analyse heuristique : pour quelques bonnes paires
dIV ayant une diffrence approprie, le nombre dtats qui collisionnent est de lordre de 2w5 ,
parfois suprieur cette valeur dun facteur plus grand que 2. Nous donnons en Table 3.1, pour
chaque fonction non linaire 0 i < 32 propose dans [115, Appendice F], le nombre maximum
dtats en collision Ni pour la meilleure paire dIV. Pour les 16 premires (resp. dernires)
fonctions, w = 11 (resp. 10) et le nombre dtats en collision attendu est de 64 (resp. 32).
Table 3.1 Taille Ni du plus grand ensemble dtats en collision pour la fonction i de mise
jour de registre
i
0
1
2
3

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

Collision dans le diffuseur de compteur

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

Reconstitution partielle de ltat mis la cl

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

Attaque avec des IV longs

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

3.4. Reconstitution partielle de ltat mis la cl

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

didentifier une classe de cls faibles.


La partie de lattaque de plus grande complexit est la dcouverte dune paire dIV ralisant une collision de ltat interne. Sa complexit est dapproximativement 2/p 222.24 mises
lIV. Nous avons implment cette attaque. Sur un Pentium Xeon 2.8 GHz, en utilisant limplmentation de VEST des auteurs, trouver une paire dIV en collision ne ncessite que quelques
minutes.

3.4.2

Attaque avec des IV courts

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

3.4. Reconstitution partielle de ltat mis la cl

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

Inversion de la deuxime phase de la mise la cl

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

Attaque par le milieu

On peut remarquer que les bits 0 ` 1 (resp. ` F 1) de la cl sont introduits dans


le registre r entre les tapes 15 r et ` 1 + 15 r (resp. ` + 15 r et F 1 + 15 r). En
faisant une hypothse sur les ` premiers bits ou les F ` derniers bits de la cl, on est en mesure
de calculer la valeur du registre r avant ltape ` + 15 r. On peut ainsi raliser une attaque
de type compromis temps-mmoire contre les algorithmes VEST. On construit la table A des
valeurs, sur 53 bits, des 5 registres intressants ltape ` + 15 r. Ceci requiert une mmoire
de taille 53 2` .
Puis, pour chacune des 2F ` valeurs j possibles pour la fin de la cl on ralise les oprations
suivantes :
remonter aux valeurs des registres partir des 53 bits de ltat mis la cl et de lhypothse
j : on note x la valeur de 53 bits ainsi obtenue ;
rechercher i tel que A[i] = x. La probabilit de trouver une telle valeur est de 253 .
pour chaque valeur trouve, vrifier la cl ikj, o k dsigne la concatnation.

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.6. Forge existentielle pour le mode VEST Hash MAC

3.5.3

61

Recouvrement de cl par attaque cls corrles

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

Forge existentielle pour le mode VEST Hash MAC

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

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 . . . . . . . . . . . . . . . . . . . . . .
4.4.4 Scurit dune extension de domaine . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

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

Preuves de scurit en cryptographie


Principe

Une primitive, un protocole, un systme cryptographique remplit un objectif de scurit.


Lvaluation de la scurit dun systme cryptographique consiste liminer lexistence dattaquants (efficaces) susceptibles de remettre en cause ces objectifs de scurit. Pour les primitives
cryptographiques (algorithme de chiffrement par bloc, gnrateur pseudo-alatoire, fonction de
hachage...) il est difficile dobtenir une garantie gnrale car il est difficile didentifier de manire

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

4.1. Preuves de scurit en cryptographie

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

Adversaire, Objectifs, Moyens et Avantage

La scurit des primitives et protocoles cryptographiques est formalise au travers de la


notion de jeux de scurit. Dans le cadre de ces jeux, un attaquant, encore dsign sous le terme
dadversaire, modlis par une machine de Turing probabiliste, cherche raliser un objectif,
comme distinguer une primitive cryptographique dune fonction idale ou retrouver la cl dune
primitive cryptographique. Pour ce faire, lattaquant dispose de moyens. Pour reprsenter ces
moyens :
on prcise les oracles auxquels il a accs. Ces oracles, auxquels lattaquant a un accs de type bote noire, possdent une interface lui permettant dobtenir des rponses
ses requtes. Ils peuvent tre utiliss pour reprsenter par exemple des primitives cryptographiques mises la cl avec une cl laquelle lattaquant na pas accs, ou encore, dans
des modles idaliss une primitive publique accessible par lensemble des participants du
systme. Ils sont galement formaliss comme des machines de Turing probabilistes.
la quantification des ressources de lattaquant, en termes de temps, de mmoire, de nombre
de requtes ses oracles, etc.
Enfin, on estime la probabilit de succs de lattaquant, calcule par rapport aux jetons
alatoires des oracles de lattaquant et ses propres jetons alatoires. La scurit dun objet
cryptographique est estime par la valeur maximale de cette probabilit sur la classe des attaquants disposant de ressources bornes.
Un type dadversaire, trs rpandu dans les preuves de scurit, est trait de manire lgrement diffrente. Lorsquun adversaire produit une valeur binaire, on le dsigne par le terme de
distingueur. Un tel adversaire D cherche identifier un objet cryptographique inconnu O auquel
il a un accs en bote noire parmi deux objets cryptographiques dinterface identique O0 et O1 ,
par exemple une primitive cryptographique et sa version idalise. Il retourne lindice de lobjet
auquel il pense tre confront. Le jeu de scurit consiste alors choisir de manire uniforme
lun de ces objets O = Ob , excuter le distingueur en lui donnant accs cet objet, et constater
si le distingueur reconnat bien lobjet avec lequel il a interagit. Dans ce scnario, un attaquant
naf rpondant de manire alatoire a une probabilit 12 de rpondre correctement. La probilit
de succs de lattaquant est donc moins intressante que le biais de cette probabilit. En rgle
gnrale, la quantit estime est
 O






Pr D 0 = 1 Pr DO1 = 1 = 2Pr DOb = b 1 .
On la dsigne usuellement sous le terme davantage de lattaquant D et pour une classe dattaquants disposant de ressources bornes, la difficult de distingueur les deux objets est estime
par la valeur maximale de lavantage sur cette classe.
Cette formalisation, qui prcise les moyens des attaquants, permet de suivre leur volution
au cours dune preuve de scurit. On parle de scurit concrte.
On motive dans les deux sections suivantes deux cadres danalyse utiliss usuellement dans
les preuves de scurit. On prsente au pralable les deux oracles publics les plus frquemment
rencontrs.
Oracle alatoire. Un oracle alatoire est un oracle public, i.e. accessible tous les participants
au jeu de scurit. Il modlise une fonction alatoire. chaque nouvelle requte, une nouvelle

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

Dans le cadre de lindistinguabilit, on cherche prouver que lavantage de tout distingueur


cherchant distinguer un objet cryptographique dune version idalise est faible. Par exemple,
un gnrateur pseudo-alatoire est compar avec une source idale dala. On dit quun systme
C est au moins aussi sr quun systme C 0 , si pour tout attaquant A contre le systme C il existe
un attaquant A0 contre le systme C 0 dont la probabilit de succs est proche de celle de A.
Les preuves en indistinguabilit ont une porte importante du fait du thorme de composition
suivant.
Thorme 6 ([94]) Soit S et T deux objets cryptographiques. S et T sont indistinguables si
et seulement si pour tout cryptosystme C utilisant T comme primitive, le cryptosystme C(S)
obtenu en remplaant T par S est au moins aussi sr que C(T ).
Ainsi, pour prouver la scurit dun schma cryptographique C reposant sur un objet cryptographique S indistinguable dune version idalise T , il suffit de montrer la scurit du schma
cryptographique lorsquil fait appel lobjet cryptographique T .
Afin de pouvoir appliquer ce thorme de composition, il faut cependant que lattaquant ne
dispose pas dinformation supplmentaire sur les alas utiliss par le schma cryptographique. Le
cadre de lindistinguabilit nest donc pas adapt lanalyse de constructions cryptographiques
faisant usage dune primitive publique, comme un oracle alatoire.

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

4.1. Preuves de scurit en cryptographie

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

Techniques de preuve : Preuve par squence de jeux

On termine cette prsentation rapide des preuves de scurit en cryptographie en abordant


quelques techniques usuelles permettant de systmatiser et de simplifier ltablissement et la
validation de preuves cryptographiques. Loutil gnral est connu sous le nom de preuve par jeu
et a t formalis par Shoup [129], lequel sest appuy sur des travaux antrieurs pour formuler
ce cadre.
4.1.5.1

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

Lemme 2 Lemme de diffrence Soit Evi , 1


|Pr [Ev1 Ev2 ] Pr [Ev3 Ev4 ]| . Alors on a

4, quatre vnements tels que

|Pr [Ev1 ] Pr [Ev3 ]| + max(Pr [Ev2 ] , Pr [Ev4 ]).


Dmonstration : On a
Pr [Ev1 ] Pr [Ev3 ] = Pr [Ev1 Ev2 ] + Pr [Ev1 Ev2 ] Pr [Ev3 Ev4 ] Pr [Ev3 Ev4 ] ,
= (Pr [Ev1 Ev2 ] Pr [Ev3 Ev4 ]) + (Pr [Ev1 Ev2 ] Pr [Ev3 Ev4 ]).
Ainsi
Pr [Ev4 ] Pr [Ev1 ] Pr [Ev3 ] Pr [Ev2 ] + ,


ce qui conclut la preuve.

Transition par reformulation. Ce type de transition est purement formel. Il consiste


modifier le code dun jeu en celui dun autre jeu sans modifier les probabilits des variables
alatoires intervenant au cours de lexcution du jeu. Dans ce cas de figure, la diffrence de
probabilit entre les deux jeux est nulle.

4.2

Fonctions de hachage cryptographiques

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

Dfinition - Attaques gnriques


Dfinitions - Scurit

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 :

4.2. Fonctions de hachage cryptographiques

71

Dfinition 24 Une fonction de hachage est dite


Rsistante en primage si tant donn un hach H, il est calculatoirement impossible
de trouver un message M tel que h(M ) = H,
Rsistante en seconde primage si tant donn un message M , il est calculatoirement
impossible de trouver un message M 0 6= M tel que h(M ) = h(M 0 ),
Rsistante en collision sil est calculatoirement impossible de trouver deux messages
M 6= M 0 tels que h(M ) = h(M 0 ).
Notons que lexistence de collisions est invitable, du fait des tailles des ensembles de dpart
et darrive dune fonction de hachage. Il nest pas pour autant facile de trouver des collisions. Le
terme calculatoirement impossible sera explicit dans les paragraphes suivants. En premire
approximation, on peut dire que calculatoirement impossible signifie quil nexiste aucun
algorithme connu permettant de trouver dans un temps raliste une solution au problme tudi.
Ces proprits permettent de rpondre diffrents besoins des protocoles cryptographiques.
titre dexemple, une fonction de hachage rsistante en collision peut tre utilise dans un
schma de signature pour obtenir une empreinte du message signer. Une fonction de hachage
rsistante en primage, en deuxime primage et en collision permet de raliser un engagement
sur une valeur.
Proposition 18 Si h est une fonction de hachage rsistante en collision, elle est rsistante en
seconde primage.
La rsistance en collision nimplique cependant pas la rsistance en primage (cf [99], note
9.20). En pratique, la proprit la plus facilement mise en dfaut est la rsistance en collision
et la mise en dfaut de la rsistance en collision ne remet pas forcment en cause la rsistance
en (seconde) primage. La scurit apporte par une fonction de hachage peut dpendre de son
contexte dutilisation : certains contextes requirent la rsistance en collision, alors que pour
dautres la rsistance en primage est suffisante.
4.2.1.2

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

Algorithme 7 Recherche gnrique de primage


Entre : y {0, 1}n
Sortie : x tel que f (x) = y
tant que true faire
choisir alatoirement x X
si f (x) = y alors
return x
fin si
fin tant que

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

valuation de la scurit dune fonction de hachage

On considre quune fonction de hachage est sre si :


ll nexiste pas dattaque connue remettant en cause sa rsistance en collision ou en primage
qui soit plus rapide que les attaques gnriques correspondantes. Il ne doit donc pas tre
possible de trouver une primage en un nombre dappels la fonction de hachage
 `h  infrieur

`
h
O 2 , ni de trouver une collision en un nombre dappels infrieur O 2 2 ;
La taille de la sortie est suffisamment grande pour que les complexits de ces attaques
dpassent largement le nombre doprations ralisables.
Lexistence de proprits non-idales des composants internes dune fonction de hachage peut
remettre en question la scurit de cette fonction. On dtaille ce point dans la section 6.1.

4.2. Fonctions de hachage cryptographiques

4.2.3

73

Formalisation de la scurit dune fonction de hachage

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].

Mthode 2 : Preuve constructive. Une deuxime mthode permettant de formaliser la


rsistance en collision des fonctions de hachage a t propose par Rogaway [121] et consiste
imposer une contrainte supplmentaire des preuves de scurit faisant reposer la scurit dun
schma sur la rsistance en collision dune fonction de hachage : la preuve doit construire explicitement la rduction. Ainsi un attaquant contre le schma cryptographique pourra tre utilis
pour construire un algorithme permettant de calculer une collision pour la fonction de hachage
sous-jacente. Backes et Unruh montrent dans [9] lexistence de schmas cryptographiques reposant sur une fonction de hachage pouvant tre prouve sre de manire existentielle, mais non
de manire constructive.
La formalisation des proprits de rsistance en primage et en seconde primage est plus
naturelle. Le jeu de scurit consiste fournir lattaquant une valeur de limage de la fonction
de hachage ou un message de son domaine. Lattaquant doit alors produire un message (nouveau
dans le cas de lattaque en seconde primage) ayant mme image par la fonction de hachage. Ces
notions de scurit peuvent galement tre tendues dans le cas o on considre une fonction de
hachage cl. On peut donner plus de moyens lattaquant en lui laissant le choix du message
ou de limage inverser, ou celui de la cl. [122] dfinit ces diffrentes notions de scurit.

74

4.2.4

Chapitre 4. Prliminaires

Autres proprits de scurit

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

Avnement des fonctions de hachage

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

Suite la publication de ces rsultats, la majorit des fonctions de hachage normalises a


t mise en dfaut. Seule la famille de fonctions de hachage SHA-2 semble rsister aux attaques.
Cependant, cette famille partage les principes de conception de la famille MD4 et sa scurit
est entache de suspicion. Le NIST dcide de lancer une comptition permettant de dfinir un
nouveau standard de fonction de hachage susceptible de remplacer SHA-2 en cas de dfaut.
Le lancement de cette comptition fait lobjet de travaux prparatoires afin de dterminer un
cahier des charges correspondant aux attentes de lindustrie et au point de vue de la communaut
acadmique sur ce qui constitue une bonne fonction de hachage. Une liste dexigences est publie
fin 2007 [112]. Les principaux points notables sont les suivants :
fonctionnellement, les candidats doivent prsenter la mme interface que la famille SHA-2
et pouvoir tre utiliss dans les mmes contextes demploi ;
dun point de vue scurit, pourla variante ayant des sorties sur `h bits, on attend une
`h

rsistance en collision en O 2 2 et une rsistance en (seconde) primage en O 2`h . La
rsistance aux attaques en extension de messages (cf section 4.4.2), est galement requise.
dun point de vue performance, mme si aucune exigence nest formule, une attente de
voir des gains notables de performance est mentionne.
linstar de la comption AES et du projet eSTREAM, le droulement de la comptition se
dcoupe en phases successives au cours desquelles les candidats encore en course sont analyss.
Le passage dune phase la phase suivante opre une slection des candidats les plus prometteurs
afin de concentrer les efforts des cryptanalystes et des implmenteurs sur ces candidats, dans

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 :

4.4. Extension de domaine

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

Extension de domaine de Merkle-Damgrd


Dfinition et proprits de scurit

Lextension de domaine de Merkle-Damgrd a t adopte par les fonctions de hachage de


la famille de MD4 pour transformer une donne de longueur finie arbitraire 1 en une empreinte
de taille finie fixe. Le principe de Merkle-Damgrd est similaire au principe du chiffrement par
bloc : lide est de dcouper le message hacher en blocs de taille fixe, et de hacher itrativement
ces blocs au moyen dune fonction de compression. On peut voir cette fonction de compression
comme une fonction de hachage dont lentre est de taille fixe.
Une fonction de hachage h construite sur le principe de Merkle-Damgrd se dcrit au moyen
dun tat de taille `h bits, une valeur initiale pour cet tat note IV et dune fonction de
compression F : {0, 1}`h {0, 1}m {0, 1}`h . Le principe de calcul de la fonction de hachage
est alors le suivant :
on commence par dcouper le message hacher M en blocs de m bits : M0 , . . . , Mk1 ,
on initialise ltat de la fonction de hachage avec la valeur initiale : H0 = IV ,
pour 0 i k 1, on calcule itrativement les hachs intermdiaires Hi+1 = F (Hi , Mi ),
la sortie de la fonction de hachage est la valeur finale de ltat : Hk .
Pour pouvoir utiliser ce schma, il faut dfinir un padding, cest--dire un moyen de transformer le message en un message dont la taille est multiple de la taille dun bloc. Le choix de ce
1. en pratique la longueur de la donne peut tre limite par une grande constante, 264 dans le cas de MD4
par exemple. Cette limitation est introduite par le padding.

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

Figure 4.1 Construction dune fonction de hachage itre

Hk = H

4.4. Extension de domaine

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

Proprits non idales de lextension de domaine de Merkle-Damgrd

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

Attaque par extension de message

Une premire proprit non idale de lextension de domaine de Merkle-Damgrd est la


possibilit de calculer partir du hach dun message M et de la longueur de ce message
le hach de tout message pad(M )kS, o S est un suffixe quelconque, et ce sans connatre le
message initial M . En effet, au cours du calcul du hach de pad(M )kS, M influence uniquement
les premires itrations du calcul, et la valeur de h(M ) suffit poursuivre le calcul et traiter
les blocs de messages provenant de S. La longueur du message M intervient pour le calcul du
padding appliquer. Cette proprit empche dutiliser simplement une fonction de hachage
mettant en uvre le principe de Merkle-Damgrd pour calculer des MACs en introduisant la cl
comme valeur dIV, car le MAC dun message M permet dans ce cas de calculer les MACs de
messages dont M est prfixe.

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

Dfinition 27 Soit h une fonction de hachage, k N, k > 1. Une k-multicollision de h est un


k-uplet de messages distincts (M1 , . . . , Mk ) ({0, 1} )k , tel que
(i, j), h(Mi ) = h(Mj ).
Pour une fonction alatoire, une variante
du paradoxe des anniversaires permet de trouver

k1
`
h
une k-multicollision de h en O 2 k
requtes h. Pour une fonction de hachage utilisant le
mode de Merkle-Damgrd, le nombre de requtes ncessaires est beaucoup moins grand :
`h
Proposition 20 Soit h : {0, 1} {0,
 1} une fonction de hachage itre. On peut trouver
`h
une 2k -multicollision de h en O k2 2 requtes h.

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

Figure 4.2 Construction dune 2k -multicollision


La figure 4.2 donne une ide de la dmonstration de la proposition 20. Pour construire
une 2k -multicollision sur la fonction de hachage, on construit k collisions pour la fonction de
compression, en
 prenant
 pour IV la valeur prcdente obtenue par la fonction de compression
`h
(complexit O k2 2 ). Les 2k messages obtenus en choisissant pour chaque bloc de message i
i

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

Scurit dune extension de domaine

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.

4.4. Extension de domaine

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

Figure 4.3 Extension de domaine wide-pipe/Chop-MD

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

Figure 4.4 Extension de domaine Haifa

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

Figure 4.5 Extension de domaine EMD


Fonctions ponges. On termine cette prsentation en voquant les fonctions ponges [19]. Si
lextension de domaine dfinie est toujours itrative, i.e. une fonction de tour traite bloc aprs
bloc le message hacher, cette construction diffre des autres en sappuyant sur une primitive
sous-jacente de taille gale la taille de la variable de chanage. Afin dobtenir une fonction de
tour ralisant une compression , chaque bloc de message est insr de manire lmentaire, par
addition une partie de ltat interne. La production dun hach diffre galement : lextraction
se fait bloc de message par bloc de message avec application de la primitive sous-jacente entre
deux extractions. Les blocs de message extraits sont concatns et le nombre de blocs extraits
est tel quune valeur de `h bits est ainsi produite.
M0

M1

Mk1

Figure 4.6 Extension de domaine fonction ponge

Chapitre 5

Preuve dindiffrentiabilit dans le cas


idal

Sommaire
5.1
5.2

5.3

Un mode opratoire gnrique . . . . . . . . . . . . . . . . . . . . . . . .

83

Preuve dindiffrentiabilit dans le cas idal . . . . . . . . . . . . . . . .

86

5.2.1

Concept dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

5.2.2

Principe de conception du simulateur et notations . . . . . . . . . . . . . .

87

5.2.3

Indiffrentiabilit dans le cas dune fonction idale . . . . . . . . . . . . . .

88

5.2.4

Indiffrentiabilit dans le cas dune permutation paramtre idale . . . . .

99

Bornes dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . 105


5.3.1

Bornes gnrales dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . . . 106

5.3.2

Bornes pour un encodage de message arbitraire . . . . . . . . . . . . . . . . 107

5.3.3

Bornes pour un encodage de message sans prfixe . . . . . . . . . . . . . . . 108

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

Un mode opratoire gnrique

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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

Figure 5.1 Une extension de domaine gnrique.


Cette construction de fonction de hachage gnralise les modes sous-jacents de plusieurs
fonctions de hachage lorsque la fonction dinsertion varie, dont les modes suivants :
Chop-MD. Chop-MD est obtenu en choisissant pour fonction dinsertion la fonction identit
Insert[M ](A, B, C) = (A, B, C),

5.1. Un mode opratoire gnrique

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

Figure 5.2 Extension de domaine de Shabal.


On peut cependant ramener formellement le mode de Shabal une instantiation du mode
gnrique, cest dire tel quun bloc de message ne modifie pas ltat aprs lappel la primitive
sous-jacente. Pour cela, il suffit de soustraire le bloc de message C avant dappliquer la primitive. Afin de conserver un mode opratoire quivalent, on remplace la permutation paramtre
originale P par la permutation paramtre Q obtenue en composant laddition de C et de M
P :
Q : {0, 1}`m {0, 1}s {0, 1}n
(M, A, B, C) P(M, A, B, C  M ).
Cette reprsentation est donne en Figure 5.3.
Pour les autres versions de Shabal, le mode opratoire correspond encore une instanciation
du mode gnrique. Cependant, dans la mesure o la partie B de ltat correspond pour le
mode gnrique la partie de ltat interne de laquelle est extraite la valeur de hach finale, la
dcomposition de ltat interne en parties A, B et C de ltat interne ne correspond pas aux
registres A, B et C dcrits dans la documentation de Shabal. Afin de faire correspondre les deux
descriptions, les registre B, C et M de Shabal sont dcomposs en deux parties de taille `m `h
et `h bits, respectivement (B1 , B2 ), (C1 , C2 ) et (M1 , M2 ). La partie A de ltat interne de Shabal
est obtenue en considrant le registre A (de taille sa bits) et B1 . La fonction dinsertion scrit
alors :
{0, 1}sa +`m `h {0, 1}`h {0, 1}`m {0, 1}sa +`m `h {0, 1}`h {0, 1}`m
(A, B1 ; B2 ; C1 , C2 ) (A, C1  M1 ; C2  M2 ; B1 M1 , B2 M2 ).

86

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal


M1

M2

A
Q
B
C

Q
+

Figure 5.3 Reprsentation quivalente de lextension de domaine de Shabal.

5.2

Preuve dindiffrentiabilit dans le cas idal

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

Le concept dindiffrentiabilit a t dvelopp en section 4.1.4. Il spcifie un jeu de scurit


qui se droule entre un systme doracles S et un distingueur D. S peut contenir plusieurs
composants susceptibles dinteragir entre eux. Ainsi notre mode gnrique peut tre modlis
par une primitive interne F et une construction C F faisant appel cette primitive interne. La
construction C est dite indiffrentiable dun oracle alatoire si le systme Q = (C F , F) peut tre
remplac par un second systme doracle Q0 = (H, S H ) ayant une interface identique avec le
distingueur et tel que le distingueur ne puisse dterminer correctement le systme avec lequel
il interagit quavec une probabilit faible lorsque le nombre de ces interactions est born (voir
Figure 5.4). Ici H est un oracle alatoire et S est un simulateur qui doit se comporter comme
F. Dans le cas o la primitive interne est une permutation paramtre, S correspond la fois
un simulateur de F et de F 1 .
Au cours de ses interactions avec le systme Q ou Q0 , le distingueur ralise des requtes
gauche L, reprsentant soit C F soit H, et des requtes droite R, reprsentant soit F soit
S H . Nous notons N le nombre total de requtes droite, i.e. le nombre de requtes reues par
F lorsque D interagit avec S indpendamment de leur origine, soit le distingueur D, soit la
construction C F . On dfinit lavantage du distingueur D par

h 0
i



Q
Q
Adv(D) = Pr D = 1 Pr D = 1 ,
o les probabilits sont prises sur les jetons alatoires des parties. Dans la preuve Adv(D) est
born en fonction de N . Chaque requte fournit en effet de linformation au distingueur, information susceptible de lui permettre didentifier le systme doracles auquel il est confront. La
preuve dindiffrentiabilit consiste par consquent construire un simulateur appropri pour
F (ou (F, F 1 ) dans le cas dune permutation paramtre) et donner une borne suprieure
lavantage dun distingueur entre Q et Q0 .

5.2. Preuve dindiffrentiabilit dans le cas idal

CF

87

SH

Q0

Figure 5.4 La construction C F a accs un oracle F. Le simulateur S H a accs loracle


alatoire H. Le distingueur interagit soit avec Q = (C F , F), soit avec Q0 = (H, S H ) et doit les
distinguer.
La vue du distingueur est donne par la liste de ses requtes au systme doracles, associes
leur rponse. Dans la preuve qui suit,
les requtes L sont des lments de {0, 1} et les rponses de L sont des lments de
{0, 1}`h ;
les requtes R sont des lments de {0, 1}`m {0, 1}s et les rponses de R sont des
lments de {0, 1}n .

5.2.2

Principe de conception du simulateur et notations

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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

Indiffrentiabilit dans le cas dune fonction idale

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)
$

(a) B 0 = H(M) et A0 {0, 1}`a


4. Sinon
$

(a) B 0 {0, 1}`h et A0 {0, 1}`a


5. y = (A0 , B 0 , C)
M

6. V = V {x, y} et E = E {x y}
7. Retourner (A0 , B 0 )

Figure 5.5 Simulateur S de F

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 :

5.2. Preuve dindiffrentiabilit dans le cas idal

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

Finalement, on ajoute deux informations supplmentaires aux requtes effectues auprs du


simulateur :
la provenance de la requte. Pour les requtes adresses directement par le distingueur
linterface R, on note pour origine D ; pour les requtes lies lexcution de la construction
suite un appel L, on note pour origine C.
lindice de la requte du point de vue du distingueur. On numrote les requtes du distingueur de manire croissante, indpendamment de linterface, L ou R auxquelles elles
sont adresses. Lorsquune construction reoit une requte dindice i adresse L, elle
numrote par i toutes les requtes quelle adresse au simulateur.
Ces informations permettent destimer les diffrences de probabilit entre des jeux successifs.
Lorsque le simulateur nen fait pas usage, on omet parfois de les mentionner dans sa description.
Jeu de dpart (Jeu 0). Il sagit du jeu original o D interagit avec Q = (C F , F). Par
dfinition du jeu 0, on a


Pr [W0 ] = Pr DQ = 1 .
Jeu 1. F est remplac par un simulateur S avec la mme interface que F qui transmet les
requtes F et retourne les rponses de F lappelant, soit C soit D. Au cours du jeu, S
construit les deux graphes
GC = (VC , EC ), GD = (VD , ED ),
en collectant les entres et sorties de F correspondant aux requtes provenant de C et de D. S
est explicit en Figure 5.7. Laction de S ne modifie pas la vue de D, par consquent Pr [W1 ] =
Pr [W0 ].
Initialisation de S
F

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

Figure 5.7 Simulateur S de F dans le jeu 1

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 ].

5.2. Preuve dindiffrentiabilit dans le cas idal

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)
$

3. B 0 {0, 1}`h et A0 {0, 1}`a


4. y = (A0 , B 0 , C)
M

5. VO = VO {x, y} et EO = EO {x y}
6. Retourner (A0 , B 0 ) O

Figure 5.8 Simulateur S de F dans le jeu 2


Jeu 3. Ltape suivante dans la squence de jeux consiste remplacer la simulation de la partie
B des rponses par la rponse un appel loracle alatoire lorsque cette partie correspond
une valeur pouvant tre retourne comme valeur de sortie de la construction. Afin de pouvoir
raliser cette opration sans changer la distribution de la vue du distingueur, on doit sassurer
de proprits de cohrence du graphe G :
Aucun sommet avec un chemin au moment de sa dfinition ne peut tre atteint par deux
chemins diffrents au cours du jeu. Dans le cas contraire loracle alatoire ne sera pas en
mesure de produire la collision attendue par la construction ;
Aucun sommet nayant pas de chemin au moment de sa dfinition nobtient de chemin au
cours du jeu. Dans le cas contraire, loracle alatoire ne sera pas en mesure de reproduire
la valeur prcdemment dfinie par le simulateur.
Nous modifions le simulateur S pour lever un Drapeau1 lorsque ltat y X nouvellement gnr
est dj prsent dans le graphe, i.e. correspond x
V . Si le Drapeau1 est lev la fin du jeu,

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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)
$

3. B 0 {0, 1}`h et A0 {0, 1}`a


4. y = (A0 , B 0 , C)
5. Si y VC VD Lever Drapeau1
M

6. VO = VO {x, y} et EO = EO {x y}
7. Retourner (A0 , B 0 ) O

Figure 5.9 Simulateur S de F dans le jeu 3


Dmonstration : On dmontre la proposition par contrapose. Soit x un sommet avec deux
chemins distincts dans G, 1 = M1 k . . . kMk et 2 = P1 k . . . kP` . Alors il existe deux suites
dtats, u1 , . . . , uk et v1 , . . . , v` telles que
M

k
1
2
uk = x
x0
u1
u2 . . . uk1

et
P

1
2
`
x0
v1
v2 . . . v`1
v` = x.

Sans perte de gnralit, on suppose k `. Considrons lensemble I = {1 j k|ukj 6= v`j }.


Si I est vide, x0 = v`k et ` 6= k car les deux chemins sont distincts. Alors x0 a un chemin
P1 k . . . kP`k complt aprs linsertion de x0 linitialisation du simulateur. G nest pas
stable.
Si I nest pas vide, soit i = min(I). Soit x0 = uki+1 si i > 1 ou x0 = x si i = 1. Alors, les
Mki+1

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

5.2. Preuve dindiffrentiabilit dans le cas idal

93

suite dtats x1 , . . . , xk tels que


M

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

que pour i k 1, xi xi+1 E(q), impliquant xi V (q) si i < k. De plus, on sait


que xk = x V (qx + 1) V (q). Par consquent, Drapeau1 est lev pendant la requte q car

xi V (q). Donc Echec



1 se produit.

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

modification est bien dfinie si Echec


1 ne se produit pas puisque, en raison de la stabilit du
graphe, tout noeud x qui a un chemin, a alors un unique chemin dans G qui peut tre extrait
du graphe au moment o x est dfini. Lorsque x na pas de chemin dans le graphe, ou lorsque le
chemin de x complt avec M ne produit pas un message padd, S dfinit la rponse la requte
par simulation comme dans le jeu prcdent. Le nouveau simulateur est explicit en Figure 5.10.

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

Pr W4 |Echec1 = Pr W3 |Echec1 . De plus la distribution des nouvelles valeurs de y, gnres


ltape 6 du simulateur, nest pas modifie entre ce jeu
h et le jeu prcdent.
i
hLa probabilit ide

lvnement Echec1 reste donc identique. On a donc Pr W4 Echec1 = Pr W3 Echec


1 .
Afin de terminer la preuve, il est ncessaire de remplacer compltement C par loracle alatoire. Afin de pouvoir procder ce remplacement sans que le distingueur ne puisse le dtecter
nous devons nous assurer que :
quand la construction ignore les rponses quelle obtient aux requtes quelle soumet au
simulateur, la vue du distingueur nest pas significativement modifie ;
quand le simulateur ignore les requtes provenant de la construction, la vue du distingueur
nest pas significativement modifie.
Le premier point est pris en compte dans le jeu 5. Le deuxime point est pris en compte dans
le jeu 6.
Dans le simulateur du jeu 4, on note la dfinition de deux nouveaux drapeaux, Drapeau3
et Drapeau03 , qui seront utiles pour analyser la diffrence entre les deux jeux suivants. On note
0
0

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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}

(b) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)


[GD GC ]

4. Si , M tel que x0 , x et kM = pad(M)


$

(a) B 0 = H(M) et A0 {0, 1}`a


5. Sinon
$

(a) B 0 {0, 1}`h et A0 {0, 1}`a


6. y = (A0 , B 0 , C)
7. Si 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

Figure 5.10 Simulateur S de F dans le jeu 4


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.
Dans le cas gnral, les appels de C dfinissent tape par tape un chemin complet dans G
et la requte finale du simulateur C loracle alatoire H retourne une valeur prcdemment
dfinie par le traitement de la dernire requte de la construction auprs du simulateur S. Dans
ce cas, la vue du distingueur nest pas modifie.
Cependant, le comportement de C diffre du comportement de C dans le cas particulier
suivant. Si larc correspondant la dernire requte de la construction a t dfini prcdemment
par le simulateur et que cette dfinition na pas fait intervenir loracle alatoire H, le dernier
appel de C H dfinit une nouvelle valeur qui nest pas lie la valeur dfinie par le simulateur
M
S. Plaons-nous dans ce cas et considrons x y larc correspondant la dernire requte,
note requte q, de la construction au simulateur S. Puisquil sagit de la dernire requte
M
de la construction, x a un chemin dans G. x y E a t dfini par une requte q 0
prcdente au simulateur, q 0 < q. Soit x avait un chemin 0 dans G avant la requte q 0 et
0 kM nest pas un chemin complet, ou x navait pas de chemin avant la requte q 0 . Dans les
deux cas, le nombre de chemin de x a chang entre la requte q 0 et la requte q (0 6=

5.2. Preuve dindiffrentiabilit dans le cas idal

95

H
I

S
D0
D

Figure 5.11 Interactions entre les composants du jeux 6.

puisque kM est un chemin complet).


Si Echec
1 ne se produit pas, G est stable et ce cas de
h
i

figure est impossible. De plus Pr Echec


1 nest pas modifi entre les deux jeux. On a donc
h
i
h
i

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal


1. Si la rponse provient de la rption dun arc prcdent, on distingue les cas suivants.
(a) Si cet arc a t dfini en rponse au distingueur, il est dfini de mme dans le jeu 6.
(b) Si cet arc a t dfini uniquement en rponse la construction, un changement de
distribution peut apparatre entre le jeu 5 et le jeu 6. En effet, lorigine de larc rejou
dans le jeu 5 possde ncessairement un chemin au moment de sa dfinition. Sous

lhypothse que Echec


1 ne se produise pas, en notant M le bloc de message de la
requte, la manire de simuler larc est fonction du fait que kM soit un message
padd. Dans le jeu 6, cet arc na pas encore t dfini au moment de lexcution de
la requte et est donc dfini en rponse au distingueur.
i. Si lorigine du nouvel arc a un chemin constitu uniquement darcs dfinis en
rponse au distingueur, la distribution nest pas modifie.
ii. Dans le cas contraire, lorigine du nouvel arc na pas de chemin dans le jeu
6, et par consquent larc est ncessairement dfini suivant la mthode (2). La
distribution est modifie si larc rejou dans le jeu 5 tait prcdemment dfini

suivant la mthode (3). En rsum, en supposant Echec


1 , la distribution est
modifie si dans le jeu 5 le distingueur soumet une requte (M, A, B, C) telle que
x = Insert1 [M ](A, B, C) a un chemin dans GC GD mais pas dans GD et kM
est un chemin complet. Si une telle requte est soumise au cours du jeu, on dit
que lvnement PredictionArc se produit. On montre plus bas dans le lemme 3

que cet vnement ne se produit pas si Echec


1 Echec3 la fin du jeu 5.
2. Si la rponse est gnre selon la mthode (2) dans le jeu 5, elle est gnre de mme
dans le jeu 6. En effet, les arcs de GC non dfinis ne changent pas le fait que larc na pas
encore t dfini auparavant, ni quil nexiste pas de chemin complet que le nouvel arc
complterait.
3. Si la rponse est gnre selon la mthode (3) dans le jeu 5, la distribution peut tre
modifie dans le jeu 6. En effet, le chemin conduisant utiliser loracle alatoire pour
gnrer la partie B peut ne pas exister dans le jeu 6 au moment de la dfinition de cet arc,
conduisant dfinir larc suivant la mthode (2).

(a) Par consquent, en supposant Echec


1 , la distribution est modifie si PredictionArc
se produit. On remarque ici que kM est ncessairement un chemin complet du fait
de la mthode de gnration de larc dans le jeu 5.

(b) Si Echec
1 Echec3 , larc est gnr de la mme manire.

Considrons prsent une requte provenant de la construction. Pour rappel, lexcution


dune telle requte dans le jeu 6 nest plus ralise immdiatement au moment de la requte correspondante de D L mais est retarde la fin du jeu. La chronologie des requtes de C entre elles
nest cependant pas modifie. On note (M, A, B, C) cette requte et x = Insert1 [M ](A, B, C).
Du fait de la dfinition de la construction, x a un chemin au moment de sa dfinition. En sup
posant que Echec
1 ne se produise pas, le graphe est stable. On note le chemin dfini dans le
jeu 5.
1. Si la rponse cette requte est obtenue selon la mthode (1) dans le jeu 5, elle est obtenue
de la mme manire dans le jeu 6. En effet, larc rpt dans le jeu 5 existe galement dans le
jeu 6 au moment de la requte de la construction car dans le jeu 6 les requtes provenant du
distingueur prcdent les requtes provenant de la construction et car lordre des requtes
provenant de la construction nest pas modifi.

5.2. Preuve dindiffrentiabilit dans le cas idal

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.

i. Si x a un chemin dans GD et que Echec


1 , le chemin de x est par stabilit du
graphe et larc est donc dfini comme dans le jeu 5.
ii. Si au contraire x na pas de chemin dans GD larc est dfini selon la mthode (2)
et la distribution est donc modifie. nouveau on a montr que la distribution

nest pas modifie si Echec


1 PredictionArc se produit dans le jeu 5 (lors de
la requte j du distingueur).

Si pour des jetons alatoires des oracles et du distingueur Echec


1 Echec3 est vrai la fin
du jeu 5, lexcution du jeu 6 avec ces mmes jetons alatoires conduit le simulateur produire

le mme graphe en fin de jeu 6. Par consquent, Echec


1 ne se produit pas non plus dans le jeu
0

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

a donc montr que (Echec1 ) (Echec3 ) (Echec1 ) (Echec3 ) . On peut montrer de


mme linclusion inverse en partant dune excution du jeu 6. On obtient donc
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 [W6 ] Pr [W5 ]| max Pr (Echec


,
1 ) (Echec3 ) , Pr (Echec1 ) (Echec3 )
h
i
5
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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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

|Pr [W5 ] Pr [W3 ]| max Pr (Echec


.
1 ) , Pr (Echec1 )
On finit lanalyse de ce jeu en prouvant le lemme suivant.
Lemme 3 Si PredictionArc se produit pour la premire fois dans le jeu 5 pendant la requte q,
M
il existe un arc x x0 EC \ ED tel que :
x a un chemin dans GC ,
x0 est la source dun arc dfini pour rpondre une requte provenant du distingueur,
requte faisant intervenir un bloc de message M 0 , et kM kM 0 est le prfixe dun message
padd.
0

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

I < k, car par dfinition de I xI xI+1 ED , auquel cas on pose M 0 = MI+1 , ou la


requte q auquel cas on pose M 0 = Mf . Finalement, M1 k . . . kMk kMf est un message padd,
do kMI kM 0 est le prfixe dun message padd, ce qui prouve la premire partie du lemme.
Pour finir la preuve du lemme supposons que larc dont lorigine est x0 est dfinie avant larc
M
x x0 . Alors, ltape 7 de la requte qaI , la condition est vrifie puisque x0 a t insr
dans V lors dune requte prcdente. Donc Drapeau1 est lev ltape qaI .


Jeu 7. On modifie prsent le jeu de scurit en supprimant la fin du jeu la soumission au


simulateur des arcs dfinis par la construction. Le changement de comportement entre les jeux
6 et 7 se produit aprs que la dernire rponse ait t fournie au distingueur. Sa vue nest donc
pas modifie entre les deux jeux et on a
Pr [W6 ] = Pr [W7 ] .
Dans le jeu 7, le graphe des appels provenant de C reste vide et on peut donc le supprimer.
Toutes les requtes provenant directement du distingueur, on peut supprimer dans le simulateur
la mention de lorigine des requtes et le code spcifique au graphe C. Lindice des requtes nest
plus utilis, on peut galement omettre de le prciser. On obtient
h ainsi
i le simulateur prsent en
0
Q
Figure 5.5. Ce jeu correspond au jeu final, donc Pr [W7 ] = Pr D . En mettant bout bout
les rsultats obtenus on a montr

5.2. Preuve dindiffrentiabilit dans le cas idal

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

+Pr (Echec1 ) + Pr (Echec3 ) .


On borne ces probabilits dans la section 5.3.

5.2.4

Indiffrentiabilit dans le cas dune permutation paramtre idale

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

Figure 5.12 Simulateur S de F 1 dans le jeu 1

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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)
$

3. B 0 {0, 1}`h et A0 {0, 1}`a


4. y = (A0 , B 0 , C)
5. Si y VD VC
(a) Lever Drapeau1
M

(b) Si x0 y ED EC
i. Lever Drapeau2

ii. (Jeu 2 uniquement) Aller ltape 3


M

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)
$

3. B {0, 1}`h et A {0, 1}`a


4. x = Insert1 [M ](A, B, C)
5. y = (A0 , B 0 , C)
6. Si x VD VC
(a) Lever Drapeau1
M

(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

Figure 5.13 Simulateur S de F et F 1 dans les jeux 2 et 3


La rponse (A, B) assigne la requte (M, A0 , B 0 , C) faite la permutation admet une
dfinition antrieure par le simulateur pour la mme paire (M, C). Comme pour tout M ,
M

Insert[M ] est une bijection, ceci est quivalent lexistence dans le graphe dun arc x y

5.2. Preuve dindiffrentiabilit dans le cas idal

101

avec x = Insert1 [M ](A, B, C), yC = C et yA,B 6= (A0 , B 0 ).


La rponse (A0 , B 0 ) assigne la requte (M, A, B, C) faite la permutation inverse
admet une dfinition antrieure par le simulateur pour la mme paire (M, C). Ceci
M

est quivalent lexistence dans le graphe dun arc x y, avec y = (A0 , B 0 , C) et


x 6= Insert1 [M ](A, B, C).
On remarque que ces incohrences se produisent si Drapeau2 est lev pendant la simulation
et que les jeux 2 et 3 se comportent de la mme manire si ce drapeau nest pas lev au cours du
jeu. Afin de prparer la suite de la preuve, on considre le drapeau Drapeau1 . On remarque que

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

mme manire quand le drapeau 2 nest pas lev, on a Pr W3 Echec


=
Pr
W

Echec
1
2
1 .
Dans les jeux suivants on cesse de considrer Drapeau2 . Ceci ne change pas le comportement

du distingueur quand Echec


1 ne se produit pas.
On souhaite galement prparer le remplacement de la simulation de la partie B des rponses
au requte faite la permutation par un appel loracle alatoire quand le noeud correspond

un noeud final dune excution de la construction. On affirme que Echec


1 permet de dtecter
les configurations qui entranent une incohrence de loracle alatoire. On a besoin de sassurer
que les deux conditions nonces dans le cas fonction idale sont satisfaites. On doit galement
considrer la condition additionnelle suivante :
Aucun noeud avec un chemin complet nest insr dans le graphe par un appel la permutation inverse car dans le cas contraire, loracle alatoire produira avec faible probabilit
la partie B de la requte en question.
On veut sassurer, dans le cas permutation, de la stabilit du graphe et de la satisfaction de
cette proprit supplmentaire.
Proposition 23 Soit G = (V, E) le graphe construit par le simulateur au terme dun jeu de la

squence de jeux susceptible de lever le drapeau Drapeau1 . Si Echec


1 ne se produit pas, le graphe
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 suite dtats x1 , . . . , xk tels que
M

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

De mme, pour i k 1, xi xi+1 E(q), impliquant xi V (q) si i < k. De plus,


on sait que x0 V (q) car ce sommet est ajout V lors de linitialisation du simulateur, et
xk = x V (qx + 1) V (q).

102

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal


M

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

simulation de F 1 et Drapeau1 est lev car xi1 V (q 0 ). Donc Echec


1 se produit.


De plus, il est immdiat que si Echec


1 ne se produit pas, la condition additionnelle, cest dire
quaucun chemin complet nest insr dans le graphe par un appel la permutation inverse, est
satisfaite.
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

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

(a) Si O = C et x y ED a t dfini par un


appel R1 , Lever Drapeau04
M

(b) VO = VO {x, y} et EO = EO {x y}

S
D

(c) Retourner (A0 , B 0 ), o y = (A0 , B 0 , C)


[GD GC ]

4. Si , M tel que x0 , x et kM = pad(M)


$

(a) B 0 = H(M) et A0 {0, 1}`a


5. Sinon
$

(a) B 0 {0, 1}`h et A0 {0, 1}`a


6. y = (A0 , B 0 , C)
[G]

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

Figure 5.14 Simulateur S de F dans le jeu 4

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

do Pr W4 Echec1 = Pr W3 Echec1 . On introduit un nouveau drapeau Drapeau4 et

5.2. Preuve dindiffrentiabilit dans le cas idal

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

(a) Si x y EC \ ED Lever Drapeau4


M

(b) VO = VO {x, y} et EO = EO {x y}
(c) Retourner (A, B), o x = (A, B, C)
$

3. B {0, 1}`h et A {0, 1}`a


4. x = Insert1 [M ](A, B, C)
5. Si x VD VC Lever Drapeau1
M

6. VO = VO {x, y} et EO = EO {x y}
7. Retourner (A, B) O

Figure 5.14 Simulateur S de F 1 dans le jeu 4

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.

Dans le cas o Echec


1 Echec3 le cas des requtes ralises par le distingueur R nest
pas modifie.

Considrons prsent une requte destine R1 , dans le cas o Echec


1 Echec3 .
M

1. Si la requte correspond un arc x y dfini prcdemment on distingue deux cas :


(a) Si larc a t dfini par le distingueur, il est galement dfini par le distingueur dans
le jeu 6.
(b) Si larc a t dfini par la construction dans le jeu 5, x a un chemin au moment de
sa dfinition. Si cet arc est rpt au cours du jeu 5 par le distingueur avec la requte
considre, il sera rpt galement dans le jeu 6 lors de la requte considre, et
lanalyse de la premire requte du distingueur qui rpte cet arc. Si cette requte est
une requte R on se ramne lanalyse ci-dessus. Si cette requte est une requte
M
R1 , alors on a x y EC \ ED ltape 2a lors de cette requte. De plus, dans
ce cas la distribution est ncessairement modifie puisque y gnr prcdemment

104

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal


alatoirement est prsent donn par lattaquant. La distribution est donc modifie

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

le jeu 5 dclenche Echec


4.

En rsum, on a montr que sous lhypothse Echec1


Echec
3 Echec4 dans le jeu 5,
pour un mme choix de jetons alatoires le graphe obtenu est identique dans les jeux 5 et 6. Ceci
permet de manire similaire au cas o F est une fonction de montrer que
0

5
5
5
6
6
6

(Echec
1 ) (Echec3 ) (Echec4 ) (Echec1 ) (Echec3 ) (Echec4 ) .

Linclusion inverse est obtenue en partant du jeu 6. On a donc


0 6
0 6
5
5
5
6

(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

|Pr [W6 ] Pr [W5 ]| Pr (Echec


)
+
Pr
(
Echec
)

(
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

|Pr [W5 ] Pr [W3 ]| max Pr (Echec


)
,
Pr
(
Echec
)
.
1
1

5.3. Bornes dindiffrentiabilit

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)
$

(a) B 0 = H(M) et A0 {0, 1}`a

4. Sinon
$

(a) B 0 {0, 1}`h et A0 {0, 1}`a


5. y = (A0 , B 0 , C)

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

2. Si x y E Retourner (A, B) o x = (A, B, C)


$

3. B {0, 1}`h et A {0, 1}`a


4. x = Insert1 [M ](A, B, C)
M

5. V = V {x, y} et E = E {x y}
6. Retourner (A, B)

Figure 5.15 Simulateur S de F et F 1 dans le jeu final


En mettant bout bout les rsultats obtenus, on a montr

h 0 i
 h
i
h
i



3
5

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

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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

Bornes gnrales dindiffrentiabilit

Dans les bornes prsentes, on note n = `a + `h la taille de sortie de F et N le nombre


maximum de requtes faites au simulateur dans le jeu o le distingueur est confront la
construction et la fonction idalise.

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

Pr [tColl(N, k)] 2k + (1 + e)N 2k ,

t=1

o e = exp(1) 2.71828. De plus si N 2 pour un entier , on a


N
l k + log (2) m
X
2
Pr [tColl(N, k)]
.
k log2 e
t=1

Le lemme suivant relie Echec


4 aux multicollisions.

Lemme 6 Pour F permutation paramtre, la probabilit de lvnement Echec


4 aprs au plus
1
N appels (R, R ) satisfait
N
h
i
X
`a

Pr Echec
N
Pr [tColl] ,
4 2
t=1

5.3. Bornes dindiffrentiabilit

107

o tColl est lvnement il existe au moins t occurrences identiques dans un ensemble de


N lements tirs de manire indpendante et uniformment distribus dans {0, 1}`h .

5.3.2

Bornes pour un encodage de message arbitraire

Lorsquon borne la probabilit de lvnement Echec


3 , les proprits de lencodage de message

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.

Le lemme suivant relie Echec


3 aux multicollisions 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

o tColl est dfini comme au lemme 6.


De plus dans le cas permutation paramtre, comme Drapeau3 ne peut tre lev que lors
dune requte R et Drapeau4 ne peut tre dfini pendant une requte R1 , on a
N
h
i
X
`a

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)

De plus, pour `h > `a , on a


(`h +`a 1)

Adv(D) 2

N +2

`a

l ` + ` log (2) m
a
h
2
N
`h `a log2 e

(5.2)

et Adv(D) est la borne la plus petite entre (5.1) et (5.2).


Il est intressant de remarquer que pour notre mode dopration, les bornes exposes cidessus ne font pas intervenir `c . Cette partie de ltat interne namliore donc pas la scurit de
la construction dans le contexte de lindiffrentiabilit. Dautres contextes, comme la rsistance
en seconde-primage, ont t tudis dans un modle idalis dans le document de soumission
de Shabal [34] et voient leur borne de scurit amliore par `c .
Le corollaire qui suit se concentre sur le cas de la construction Chop-MD, construction
importante de par sa diffusion et son usage dans les fonctions de hachage les plus rcentes :

108

Chapitre 5. Preuve dindiffrentiabilit dans le cas idal

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)

De plus, lorsque `h > n/2,


Adv(D) 2 2

N +2

(n`h )

l n log (2) m
2
N
.
2`h n log2 e

(5.4)

et la borne suprieure sur lavantage de D est donne par min((5.3), (5.4)).


Notre rsultat peut tre compar la borne dindiffrentiabilit obtenue pour Chop-MD par
Chang et Nandi [38]
Adv(D) 2 2n N 2 + (3`h + 1)2(n`h ) N + 2(`h 1) N .
Cette borne nest pertinente que dans le cas `h n/2, i.e. cest dire quau plus la moiti des
bits de la variable de chanage sont tronqus. Notre rsultat donne une borne pour toute valeur
de `h et amliore la borne de Chang-Nandi dans le cas `h n/2.

5.3.3

Bornes pour un encodage de message sans prfixe

Le lemme suivant donne une borne sur la probabilit de Echec


3 pour un encodage de message
sans prfixe.

Lemme 8 Pour F fonction et un encodage de message sans prfixe, la probabilit de Echec


3
aprs N appels R est
h
i
n 2

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)

De plus, dans ce cas, lorsque `h > `a , on a


(`h +`a )

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

Preuve dindiffrentiabilit dans le cas


biais

Sommaire
6.1

Fonctions non idales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


6.1.1 Attaques en distingueur sur fonction de tour . . . . . . . . . . . . . . . . .
6.1.2 Modlisation de fonctions biaises . . . . . . . . . . . . . . . . . . . . . . .
6.2 Modle de la fonction biaise idale . . . . . . . . . . . . . . . . . . . . .
6.2.1 Problmatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.2 Fonction biaise idale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2.3 Borne directe dindiffrentiabilit dun oracle alatoire . . . . . . . . . . . .
6.2.4 Reprsentation algorithmique dune fonction biaise idalise . . . . . . . .
6.2.5 Quantification du biais dune fonction idalise biaise . . . . . . . . . . . .
6.2.6 Requtes biaises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Preuve dindiffrentiabilit dans le modle de la fonction biaise idale
6.3.1 Modifications de la preuve du cas idal . . . . . . . . . . . . . . . . . . . . .
6.3.2 Simulateur et borne dindiffrentiabilit . . . . . . . . . . . . . . . . . . . .
6.3.3 Rsum de la preuve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.4 Squence de jeux de la preuve . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.5 Borne dindiffrentiabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

Fonctions non idales

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

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

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

Attaques en distingueur sur fonction de tour

On prsente ici quelques distingueurs contre des composants de fonctions de hachage


candidates la comptition SHA-3. Ces distingueurs permettent didentifier une diffrence
de comportement entre une fonction de compression ou une permutation paramtre note
F : (M, X) F(M, X) = FM (X). On identifie deux parties distinctes dans lentre de ces
fonctions, une partie note M correspondant un bloc de message, contrle directement par
lattaquant, et une partie X correspondant un tat interne 1 , sur lequel lattaquant na quun
contrle indirect, au travers de le fonction F.
Points fixes. Knudsen, Matusiewicz et Thomsen [86] ont montr que, pour certaines valeurs
X de lentre de la permutation paramtre interne utilise par Shabal, il est possible de trouver
un paramtre MX (fonction de X) tel que FMX (X) et X sont partiellement gaux.
Distingueurs diffrentiels. La fonction de compression de Hamsi-256 a des proprits diffrentielles vrifies avec probabilit 1. Par exemple, il est montr dans [35] que, pour tout M ,
les sorties Y0 , Y1 correspondant deux entres X0 , X1 diffrant uniquement aux positions 71 et
199 prennent les mmes valeurs aux positions 228 et 230.
Distingueurs somme nulle. Lorsquune fonction est de bas degr ou dfinie par itration de
fonctions lmentaires de bas degr, il est possible didentifier des distingueurs somme nulle [5].
L
Une somme nulle de taille 2k est un ensemble de 2k entres {X1 , . . . , X2k } tel que i Xi = 0
L
et
i F(M, Xi ) = 0. Les distingueurs somme nulle sont donc des distingueurs diffrentiels
dordre suprieur. La valeur de 2k 1 sorties de la fonction F dtermine compltement une
sortie additionnelle. De telles sommes nulles existent pour la fonction de compression de Hamsi256 [4] et pour la permutation interne de Keccak [30, 32].
tats symtriques. Pour des raisons de performance, afin notamment de pouvoir parallliser
facilement les calculs, les primitives sous-jacentes de certains candidats SHA-3 sont trs fortement structures. Ceci peut permettre didentifier des sous-ensembles dtats, possdant une
proprit de symtrie qui sont stables par la primitive considre. On peut citer comme exemples CubeHash [63] et SIMD [29].
Distingueurs rotationnels. Les distingueurs rotationnels sont apparents aux distingueurs
diffrentiels. Au lieu dtre relis par une diffrence donne, les entres tudies se dduisent
lune de lautre par une rotation donne. Ce type de distingueur est particulrement adapt aux
fonctions qui sappuient sur la composition doprations de type rotation, addition modulaire et
xor, comme Skein et Shabal.
1. ou une partie dun tat interne, selon le mode dextension de domaine utilis

6.1. Fonctions non idales

6.1.2

111

Modlisation de fonctions biaises

On souhaite tendre le modle de lindiffrentiabilit pour prendre en compte, dans la mesure


du possible, les distingueurs voqus dans la section prcdente. Pour ce faire, on commence
par formaliser les distingueurs dune primitive sous-jacente F comme relations implicites de
probabilit significative. On qualifie dordre du distingueur le nombre de couples (entre, sortie)
ncessaire pour le dcrire.
Dfinition 29 Soit F une primitive sous-jacente dune fonction de hachage et k un entier
1. On appelle distingueur de F dordre k et de probabilit p toute relation implicite
R faisant intervenir k entres de F {(Mi , Xi )}iJ0,k1K et les sorties correspondantes {Yi =
F(Mi , Xi )}iJ0,k1K vrifie avec probabilit p suprieure la probabilit obtenue lorsque F est
remplace par une fonction alatoire.
La notion de relation implicite nest pas dfinie formellement. Intuitivement, pour que de
tels distingueurs puissent tre pris en compte dans une preuve en indiffrentiabilit, la fonction
F doit pouvoir tre idalise dans un certain sens. Des relations dont les dfinitions reposent
sur la dfinition de la fonction F, par exemple la relation Y = F(M, X) dordre 1 vrifie avec
probabilit 1, sont incompatibles avec les preuves dindiffrentiabilit.
Afin de pouvoir adapter nos techniques de preuves, nous verrons dans les sections suivantes
que nous ne prendrons pas en compte tous les distingueurs suivant la dfinition ci-dessus. On
se restreindra pour des raisons techniques aux distingueurs dordre infrieur ou gal deux.
Ceci prend en compte une bonne partie des distingueurs publis dans le cadre de la comptition
SHA-3 :
Distingueur dordre 1. Les distingueurs de type point fixe et tats symtriques
entrent dans cette catgorie. Dans les deux cas on peut identifier des ensembles distingus
dentres pour lesquelles la fonction a un comportement non-alatoire. Pour les points
fixes ce comportement non alatoire est une galit entre la sortie et une partie de lentre
lorsque lentre est prise dans lensemble distingu.
R((X, M ), Y ) : X X X = Y [p].
Pour les tats symtriques, le comportement non alatoire est la stabilit de lensemble
distingu par la fonction F.
R((X, M ), Y ) : X X Y X [p].
Distingueur dordre 2. Les distingueurs de type diffrentiel et rotationnel entrent
dans cette catgorie.
R((X0 , M0 ), Y0 , (X1 , M1 ), Y1 ) : X0 X1 = X M0 M1 = M Y0 Y1 = Y [p].
R((X0 , M0 ), Y0 , (X1 , M1 ), Y1 ) : X1 = X0 M1 = M0 Y1 = Y0 [p].
Lorsquil existe plusieurs distingueurs contre une fonction F, il est galement possible de les
composer pour en dduire de nouveaux distingueurs. Ceci peut rendre fastidieux lnumeration
de tous les distingueurs possibles. On prsente dans la section suivante une abstraction de la
notion de distingueur qui
est adapte au cadre des preuves dindiffrentiabilit ;
identifie les grandeurs caractristiques des ensembles de distingueurs considrs.

112

6.2

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

Modle de la fonction biaise idale

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

Considrons une fonction de hachage C F , obtenue par la combinaison dune construction C


ralisant des appels une primitive sous-jacente F. On suppose de plus que la construction C
peut tre prouve indiffrentiable dun oracle alatoire dans un modle idalis, cest--dire que
C F se comporte de manire idale quand F se comporte de manire idale. Lorsquon construit
une fonction de hachage base sur la construction C, on instancie la construction, cest dire
on dfinit explicitement la fonction F qui est utilise. Supposons prsent que cette fonction
ne se comporte pas de manire idale et que lon puisse mettre en vidence des distingueurs
tels que dfinis dans la section 6.1. premire vue, on ne peut plus tirer aucune garantie de
scurit de la preuve de la construction puisque lhypothse de base, le caractre idal, ou du
moins idalisable, de F nest plus respecte. La question de la scurit de la fonction de hachage
C F est donc pose.
Cette question sinscrit dans une proccupation plus gnrale, celle de construire des fonctions
sres partir de briques de base ayant des dfauts, ou encore daffaiblir autant que possible les
proprits attendues de primitives sous-jacentes des constructions cryptographiques. Il est effet
dsirable dun point de vue conception de mettre en uvre des modes assurant que la fonction
obtenue est proche de lidal mme quand la primitive sous-jacente sen carte. Cette robustesse
de la construction permet
soit daccrotre la marge de scurit de la fonction, en la rendant rsistante la dcouverte
de dfauts sur ses composants internes ;
soit dobtenir de meilleures performances en mettant en uvre une primitive interne moins
coteuse mais plus loigne dune primitive idale.
Que ce soit des fins de scurit ou de performance, la question de limpact sur la scurit
dune construction cryptographique de distingueurs sur la primitive sous-jacente est une question
primordiale pour le concepteur de fonctions cryptographiques.

6.2.2

Fonction biaise idale

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. Modle de la fonction biaise idale

6.2.3

113

Borne directe dindiffrentiabilit dun oracle alatoire

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

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

Reprsentation algorithmique dune fonction biaise idalise

On rappelle la forme de la fonction de compression utilise par le mode gnrique dfini en


section 5.1 :
F : {0, 1}`m {0, 1}s {0, 1}n
(M, A, B, C) 7 FM,C (A, B) = (A0 , B 0 ) .
On rappelle que M est le bloc de message, B la partie de ltat interne mise jour par
la fonction F susceptible dtre extraite comme valeur de hach, A le reste de la partie de
ltat interne mise jour par F et C la partie de ltat interne non mise jour par F. Si
a
b
FM,C (A, B) = (A0 , B 0 ), on note FM,C
(A, B) = A0 , FM,C
(A, B) = B 0 les projections de FM,C sur
les parties A et B de ltat interne.
Lorsquon considre une fonction idalise parfaite, il y a deux manires quivalentes de voir
la fonction :
la fonction est tire alatoirement, uniformment dans lensemble FUNC de toutes les
fonctions de mme paramtre ;
pour chaque entre de la fonction, la sortie est tire alatoirement, uniformment parmi
toutes les sorties possibles.
La deuxime manire denvisager la fonction idalise permet de lvaluer de manire paresseuse : on ne dfinit que les sorties correspondant aux entres dduites des requtes du distingueur D. Elle est utilise de manire implicite dans les simulateurs dfinis dans le chapitre 5.
En fait on utilise de manire implicite les deux proprits suivantes :
on peut simuler les rponses de la fonction idalise indpendamment des requtes prcdentes ;
on peut simuler sparment les parties A et B de la fonction idalise.
Dans le cas de fonctions biaises idalises, la premire manire de voir la fonction se transpose facilement, en remplaant FUNC par un sous-ensemble FUNC0 . Cependant, il nexiste plus
de manire triviale dvaluer de manire paresseuse la fonction. De plus les deux proprits
utilises de manire implicite ne sont plus vrifies :
de par lexistence de distingueurs sur la primitive F, la dfinition de sorties de F peut
impacter la dfinition de paires (entre, sortie) additionnelles ;
fixer la partie B dune sortie est susceptible dintroduire un biais sur la partie A correspondante.
Afin de pouvoir crire des simulateurs similaires aux simulateurs dfinis dans le cas de fonctions non biaises, on a besoin de pouvoir simuler les rponses de la fonction F. On suppose que
lon dispose dun algorithme efficace SimulerAB, qui tant donn une entre (M, A, B, C) et un
historique L gnre alatoirement la valeur FM,C (A, B) sachant lhistorique. La distribution des
valeurs produites par SimulerAB est telle que, pour tout historique compatible avec la distibution
de F, on ait


Pr SimulerAB(M, A, B, C, L) = (A0 , B 0 ) = Pr

F FUNC0


FM,C (A, B) = (A0 , B 0 )|L .

En dautres termes, SimulerAB value paresseusement la fonction F.


Dans le cadre des preuves dans le cas idal, on a galement besoin de pouvoir simuler la
partie A de la sortie, la partie B tant fixe par loracle alatoire. On postule donc galement
lexistence dun algorithme efficace SimulerA, qui tant donn une entre (M, A, B, C), une partie
B de sortie B 0 et un historique, gnre alatoirement la partie A de la sortie FM,C (A, B) sachant

6.2. Modle de la fonction biaise idale

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

Quantification du biais dune fonction idalise biaise

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

Lexistence de distingueurs sur la fonction de compression ayant une probabilit de succs


importante, parfois gale 1, est courante pour des primitives sous-jacentes rencontres dans des
fonctions de hachage soumises la comptition SHA-3. Cependant, elle ne menace habituellement pas la scurit des fonctions de hachage bases sur ces primitives. Ces distingueurs permettent de driver de linformation sur des paires (entre, sortie) de la primitive sous-jacente partir
de paires (entre, sortie) obtenues par ailleurs. Par exemple, pour un distingueur diffrentiel de
probabilit 1, i.e. il existe (, ) tel que F(x + ) = F (x) + pour tout x, la connaissance dune
paire x, y = F(x) permet de dduire F(x + ) = y + . Les requtes pour lesquelles la sortie
est fortement biaise par la connaissance de lhistorique des requtes antrieures doivent tre
traites de manire spcifique. Ces requtes, dsignes sous le terme de relatives aux entres de
L, sont dfinies par les relations ci-dessous, paramtres par les biais acceptables et .
Dfinition 30 ((, )-relatif un historique) Soit un rel dans [0, 1], un rel dans [0, n]
et L un ensemble de couples entre-sortie de F. Lensemble des (, )-relatifs de L est dfini
comme
Rel(L, , ) = {u = (M, A, B, C)
/ L|X tels que kDB (u, L) U k >
0
0
ou (A , B ) {0, 1}n tels que Pr [FM,C (A, B) = (A0 , B 0 )] > 2n+ , }
o U est la distribution uniforme sur {0, 1}n et DB (u, L) est la distribution de la partie B des
sorties de F sachant que F est tire uniformment dans FUNC0 et tant donn lhistorique L.

116

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

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.

6.3. Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

117

(, )-SontRelatifs2 (y, y 0 , M 0 ) renvoie vrai si et seulement si il existe M tels que


(M, Insert[M ](y)) R((M 0 , Insert[M 0 ](y 0 )), , ). Si cet algorithme renvoie vrai, on dit
que y est relatif la requte M 0 , Insert[M 0 ](y 0 ).
Finalement on dfinit quelques paramtres caractristiques du biais qui seront utile pour
borner lavantage dun distingueur dans la section suivante. On suppose et fixs.
On note NR le nombre maximum de noeuds relatifs dun noeud.
NR = max |{y tels que SontRelatifs1 x, y = Vrai}| .
x

On note Natypique le nombre de noeuds atypiques


Natypique = |{x tels que EstAtypiquex = Vrai}| .
On note Nautorel le nombre de noeuds auto-relatifs
Nautorel = |{x tels que EstAutoRelatifx = Vrai}| .

6.3

Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

On tend dans cette section la preuve dindiffrentiabilit du chapite 5 pour prendre en


compte les distingueurs dune fonction de compression F. On commence par expliquer la
stratgie de construction du simulateur et la manire dont la preuve du cas idal est complte. On donne ensuite un simulateur de la primitive F et la borne dindiffrentiabilit associe.
Enfin, on dtaille la preuve dindiffrentiabilit en prsentant la squence de jeux permettant le
calcul de la borne dindiffrentiabilit.

6.3.1

Modifications de la preuve du cas idal

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

Simulateur et borne dindiffrentiabilit

On considre le simulateur S de la fonction F dfini en figure 6.1.


Pour ce distingueur, on peut obtenir une variante du thorme 9.
Proposition 25 Soit F une fonction alatoire de FUNC0 et H un oracle alatoire. Soit = 0 et
`a les valeurs des deux paramtres dterminant les biais excessifs, x0 un noeud non atypique
et non auto-relatif pour la fonction F et ces paramtres. On suppose enfin que pour des requtes
non-excessivement biaises, la simulation de la partie A de F est indpendante de lhistorique.
Alors le simulateur S dfini en figure 6.1 est tel que pour tout distingueur D ralisant au plus N
requtes F
h
i
h
i
3
5

Adv(D) 2(Pr Echec


+ 2N NR ) + Pr (Echec
,
3)

118

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

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

Figure 6.1 Cas biais Simulateur S de F.

6.3. Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

119

avec pour tout encodage de message


i 
h

3
2
2 2

)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

o tColl est dfini comme au lemme 6, et un encodage de message sans prfixe


h
i
5
2 (n ) 2

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

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

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

Squence de jeux de la preuve

On adapte prsent la squence de jeux prsente au chapitre 5. Pour toute la squence de


jeux, on fixe deux paramtres et , dfinis en section 6.2.5, permettant de sparer les requtes
dont les rponses sont excessivement biaises et les requtes pouvant tre traites de manire
usuelle. Les ensembles R et AT dfinis en section 6.2.6 sont considrs pour ces paramtres et
. Pour simplifier les notations, on omettra de les mentionner dans les simulateurs.
Jeu 0. Il sagit du jeu de dpart o D interagit avec C F et la fonction F, qui est tire alatoirement, uniformment dans FUNC0 . Par dfinition du jeu 0, on a


Pr [W0 ] = Pr DQ = 1 .
Jeu 1. F est remplace par un simulateur S prsentant la mme interface que F, redirigeant
les requtes reues vers F et retournant les rponses de F lappelant, soit C soit D. Au
cours du jeu, S construit progressivement les graphes GC et GD dduits des requtes effectues
respectivement par C et D. S est dcrit en figure Fig. 6.3. Il est clair que Pr [W1 ] = Pr [W0 ].
Jeu 2. On remplace lappel F par une simulation parfaite. Lorsque S a besoin de dfinir
la valeur F(M, A, B, C) pour (A, B, C) X , S appelle lalgorithme SimulerAB. Par dfinition,
cet algorithme prend pour entre la requte courante (M, A, B, C) et la liste L de toutes les
paires (requte, rponse) gnres par le simulateur. Comme ces paires sont toutes reprsentes
par un arc dans le graphe GD GC , on utilise lensemble darcs ED EC comme paramtre de
SimulerAB. 3 Lhistorique correspondant est dfini par
M

L = {(M, A, B, C; A0 , B 0 ), Insert1 [M ](A, B, C) (A0 , B 0 , C) ED EC } .


On dcrit le nouveau simulateur en figure 6.4. Par dfinition de SimulerAB, ceci ne modifie
pas la distribution de la vue de lattaquant. On a donc Pr [W2 ] = Pr [W1 ].
3. et plus tard de SimulerA.

6.3. Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

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)
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

Figure 6.3 Cas biais Simulateur S de F dans le jeu 1.

Initialization of 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 )

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

Figure 6.4 Cas biais Simulateur S de F dans le jeu 2.

121

122

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

Jeu 3. On prpare prsent le simulateur linsertion de loracle alatoire. Pour ce faire on


dtecte deux types dvnements problmatiques.
Comme pour le cas idal, on doit sassurer que le nombre de chemins de chaque noeud ne
change pas au cours du jeu pour garantir la consistance des dfinitions faites par loracle
alatoire. Dans le cas idal, on vrifiait labsence de collision interne entre noeud nouvellement dfini et noeud dj prsent dans le graphe. Dans le cas biais, il faut ajouter un
test additionnel. En effet, on ninsre pas systmatiquement tous les relatifs dune requte
lors de sa dfinition. Cependant, cette dfinition engendre un biais sur la distribution des
sorties des requtes relatives. Elle dfinit indirectement les requtes relatives. Une telle
requte ne doit donc pas intervenir dans le calcul dun hach. On sassure que lorigine
dune telle requte nacquiert pas de chemin au cours du jeu.
Il faut de plus sassurer que la distribution de sortie des arcs susceptibles de dfinir des
valeurs de hach nest pas excessivement biaise. Pour ce faire, lors de lintroduction de
chaque noeud susceptible de figurer comme avant dernier noeud dun chemin complet, on
sassure que la distribution utilise pour rpondre une requte postrieure ne prsentera
pas de biais excessif. On lve un drapeau derreur DrapeauBiaisi en cas de problme.
Pour pouvoir remplir ce deuxime objectif, on modifie galement le simulateur pour donner la
priorit la simulation de requte prolongeant des chemins. En effet, une stratgie envisageable
pour mettre en dfaut le distingueur est de construire un chemin dans le graphe en sarrtant
avant la dernire requte permettant dobtenir un hach, puis de raliser une requte relative de
la requte compltant le chemin. On termine en ralisant un appel compltant le chemin. Si on
simule directement la rponse de lavant dernire requte, la rponse imposera une contrainte sur
la rponse de la dernire requte, contrainte qui ne pourra pas tre prise en compte par loracle
alatoire. Il faut donc commencer lors de lavant dernire requte par complter le chemin avant
de dfinir, en accord avec la rponse cette simulation la rponse la requte adresse au
simulateur.
Le simulateur de ce jeu est dcrit en figure 6.5.
Les modifications entre le jeu 2 et le jeu 3 ne modifient pas la distribution de la vue de
lattaquant par dfinition de SimulerAB. Elles ne changent ventuellement que le nombre de
points et lordre des points o F est valu. Ainsi Pr [W3 ] = Pr [W2 ].
La notion de stabilit de graphe, dfinie dans le chapitre prcdente, doit tre adapte au
cas idal pour prendre en compte lexistence de relatifs.
Proposition 26 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 toute requte (M, A, B, C) au simulateur, x = Insert1 [M ](A, B, C), le nombre de
chemins de x et de tout noeud relatif (x, M ) naugmente pas aprs la requte en question ;
pour tout noeud y insr avec un chemin dans le graphe du simulateur, le nombre de
chemins de y naugmente pas aprs la requte.
Si on compare cette dfinition la proprit de stabilit du cas idal, on constate quon
distingue prsent les noeuds insrs comme origine et comme but darc, en imposant des
contraintes plus fortes pour les origines darcs permettant de traiter les relatifs.Si le graphe
est stable, aucun arc compltant un chemin na t dfini avant le chemin quil complte, ni
explicitement par simulation, ni implicitement comme relatif dun arc prsent dans le graphe.
On montre prsent que Drapeau1 permet de dterminer la non stabilit du graphe.
Proposition 27 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.

6.3. Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

123

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)

, 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

iv. Si z z 0 ED EC tel que SontRelatifs2 (y, z, M 0 ) est


vrai Lever Drapeau1
v. Si EstAtypique(y) Lever DrapeauBiais1
vi. Si EstAutoRelatif(y) Lever DrapeauBiais2

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

Figure 6.5 Cas biais Simulateur S de F dans le jeu 3.

124

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

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.

Jeu 4. On peut prsent insrer loracle alatoire H dans le jeu. Lorsque x0 ,


x et kM
est un message padd, on rpond la requte (M, Insert[M ](x)) en appelant loracle alatoire H
pour dfinir la partie B et en compltant la rponse par un appel lalgorithme SimulerA. Cette

modification est bien dfinie si Echec


1 ne se produit pas car la stabilit du graphe garantit que x
a au plus un chemin qui peut tre extrait au moment o la requte M, Insert[M ](x) est traite.
Le simulateur modifi est explicit en figure 6.6.

On note Echec
lvnement lun des drapeaux dfinis par ce simulateur, lexception du

drapeau Drapeau3 , est lev la fin du jeu et Echec


3 lvnement le drapeau Drapeau3 est lev
la fin du jeu.

6.3. Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

125

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)

, 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

v. Si z z 0 ED EC tel que SontRelatifs2 (y, z, M 0 ) est


vrai Lever Drapeau1
vi. Si EstAtypique(y) Lever DrapeauBiais1
vii. Si EstAutoRelatif(y) Lever DrapeauBiais2

viii. Si x0
,

DrapeauBiais3

y tel que SontRelatifs1 (y, y) Lever


M

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

Figure 6.6 Cas biais Simulateur S de F dans le jeu 4.

126

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

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

directement loracle alatoire. Si Echec


pas possible.
1 ne se produit pas,
h un tel cas deifigure nest
h
i

Lexcution du simulateur ntant pas modifie, on a Pr W5 Echec


= Pr W4 Echec
.
Jeu 6. Comme dans le cas idal, on modifie prsent le jeu de scurit de telle sorte que les
requtes ralises auprs du simulateur par la construction sont retardes et ne sont excutes
qu la fin du jeu. On renvoie au jeu 6 du cas idal pour une description formelle des modifications.
On analyse prsent la diffrence de comportement entre les jeux 5 et 6. On montre que si

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,

6.3. Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

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 .

On se contente de montrer ici que si Echec


et Echec
3 ne se produisent pas, alors le graphe
produit dans le jeu 5 contient le graphe produit dans le jeu 6, sous lhypothse que les mmes
jetons alatoires sont employs par le distingueur et la fonction F.
On procde par rcurrence sur le nombre darcs dans le graphe G6 obtenu en fin de jeu 6.
Les requtes de dfinition de F sont traites dans lordre o elles apparaissent dans le jeu 6.
On rappelle que les requtes de dfinition de F provenant de D restent ordonnes, ainsi que les
requtes provenant de C. Seul lordre relatif de requtes provenant de C et de D est susceptible
dtre modifi.
Si G6 est vide, aucune requte na t effectue auprs du simulateur ni par le distingueur ni
par la construction. On a donc G5 est vide et par consquent la proprit est vraie. Supposons
la proprit vrifie pour les i premiers arcs de G6 et considrons le i + 1-me arc dfini par G6 .
M
x y . On souligne quune sortie de F peut tre dfinie par le simulateur de trois faons
diffrentes :
par rptition dune valeur antrieure, dans ce cas la valeur a t dfinie prcdemment
dune des deux manires qui suivent ;
par simulation de A et B ;
par appel loracle alatoire pour obtenir B et simulation de A.
On distingue les cas suivants :
1. larc i + 1 provient dune requte de la construction. Par dfinition de la construction, x a
un chemin dans le graphe G6 au moment de la requte i + 1. Par rcurrence, ce chemin
a t gnr de la mme manire dans G5 . On distingue prsent les cas suivants :
(a) dans le jeu 6, larc est trait par redfinition dun arc dcoulant dune requte de la
construction. Dans ce cas, comme lordre des requtes provenant de la construction
est conserv entre le jeu 5 et le jeu 6, larc est galement obtenu par rptition dans
le jeu 5. Par rcurrence, il est dfini de la mme manire dans le jeu 5 et le jeu 6.
(b) dans le jeu 6, larc est trait par redfinition dun arc dcoulant dune requte du
distingueur. On distingue deux sous-cas :
i. si la requte du distingueur est antrieure la requte de la construction dans le
jeu 5, larc est galement obtenu par rptition dans le jeu 5 et par rcurrence,
larc est gnr de la mme manire dans les jeux 5 et 6.
ii. si la requte du distingueur est postrieure dans le jeu 5, larc nest pas dfini par
rejeu mais par simulation totale ou en utilisant loracle alatoire et une diffrence
de comportement peut survenir si kM est un message padd. Or on constate
que dans ce cas le traitement dans le jeu 5 de la requte provenant du distingueur
entranera la leve de Drapeau3 dans ce cas.
(c) dans le jeu 6, larc est trait par simulation. Comme il a chemin, ceci signifie que
kM nest pas un message padd. tant galement un chemin de x dans le jeu
5 au moment du traitement de cette requte, la manire de gnrer nest pas modifie
(d) dans le jeu 6, larc est trait en utilisant loracle alatoire. Pour les mmes raisons, la
manire de gnrer nest pas modifie.

128

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais

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

Drapeau3 nest pas lev et si Echec,


condition suffisante pour assurer que les chemins utiliss
lors de la dtermination de la mthode de gnration sont les mmes dans les jeux 5 et 6. Il
reste sassurer que la distribution de sortie nest pas modifie. On utilise ici les contraintes
supplmentaires sur la nature du biais de F. En effet, si la manire utilise pour gnrer la
rponse de F est identique, lhistorique courant au moment de cette gnration varie. Comme

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

6.3. Preuve dindiffrentiabilit dans le modle de la fonction biaise idale

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

Bornes gnrales dindiffrentiabilit

Dans les bornes prsentes, on note n = `a + `h la taille de sortie de F et N le nombre


maximum de requtes faites au simulateur dans le jeu o le distingueur est confront la
construction et la fonction idalise. On reprend galement les paramtres pertinents drivs
du biais de la fonction et les paramtres et choisi pour la preuve.

Borne de Echec.
On nonce des bornes sur la probabilit doccurrence de lvnement Echec
1.

Lemme 9 Pour F fonction de compression, pour tout jeu o lvnement Echec


1 est considr
h
i 
 (n )
2
2 2

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

Bornes pour un encodage de message arbitraire

Lorsquon borne la probabilit de lvnement Echec


3 , les proprits de lencodage de message

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.

Le lemme suivant relie Echec


3 aux multicollisions pour un encodage de message arbitraire.
Lemme 10 Lorsque F est une fonction de compression ou une permutation paramtre, la

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

o tColl est dfini comme au lemme 6.

130
6.3.5.3

Chapitre 6. Preuve dindiffrentiabilit dans le cas biais


Bornes pour un encodage de message sans prfixe

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

Les bornes prcdentes permettent didentifier deux grandes catgories de distingueurs, en


fonction de leur impact sur la perte au niveau de la borne dindiffrentiabilit :
Les distingueurs bass sur des entres particulires de F. La perte au niveau de la borne
dindiffrentiabilit intervient uniquement sur le terme linaire de la borne et est linaire
en la grandeur caractristique du distingueur. Elle correspond lapparition dun tat
particulier au cours dun calcul de hach. Tant que la taille de cet ensemble (Natypique +
Nautorel ) reste faible devant le nombre de sorties de la primitive sous-jacente, les bornes
obtenues restent intressantes. Dans le cas de SIMD, lexistence dtats symtriques est
prise en compte dans la preuve dveloppe dans [29], qui obtient des rsultats analogues.
Les ditingueurs bass sur des relations entre diffrentes entres de F. On rappelle que la
preuve dveloppe dans cette section se restreint aux distingueurs bass sur les entres. Les
bornes que nous obtenons ici montrent que le nombre de requtes relatives dune requte
donne impacte le terme quadratique, et que la perte nest pas linaire en la grandeur
caractristique du distingueur, comme ctait le cas dans le cas des distingueurs bass sur
des entres particulires. Si NR devient important, en raison de lexistence de distingueurs
pouvant tre combins de diverses manires, la borne de scurit obtenue peut ne plus
apporter de garantie pour un nombre de requtes raisonnable.
Dans les deux cas, pour que les garanties apportes par la preuve restent suffisantes, il est
ncessaire de disposer dune marge de scurit, i.e. que la primitive sous-jacente soit surdimensionne par rapport au niveau de scurit vis. Lemploi de preuves de scurit dans le modle
de la fonction idalise biaise permet dvaluer si cette marge de scurit est suffisante pour
prendre en compte lexistence de distigueurs.

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

[56] distributed.net. Project RC5. http://www.distributed.net/RC5. 13


[57] H. Dobbertin. Cryptanalysis of MD4. In D. Gollmann, editor, Fast Software Encryption,
Third International Workshop, Cambridge, UK, February 21-23, 1996, Proceedings, volume
1039 of Lecture Notes in Computer Science, pages 5369. Springer, 1996. 75
[58] H. Dobbertin. Cryptanalysis of MD5 compress, 1996. Eurocrypt 1996, Rump Session. 75
[59] ECRYPT. eBASH : ECRYPT Benchmarking of All Submitted Hashes. //http://bench.
cr.yp.to/ebash.html. 76
[60] ECRYPT. eSTREAM : ECRYPT Stream Cipher Project, IST-2002-507932. http://www.
ecrypt.eu.org/stream. 12, 38, 49
[61] ECRYPT. The Sha-3 Zoo. http://ehash.iaik.tugraz.at/wiki/The_SHA-3_Zoo. 76
[62] J.-C. Faugre and G. Ars. An Algebraic Cryptanalysis of Nonlinear Filter Generators
using Grbner Bases. Technical report, INRIA, Rapport de Recherche n4739, 2003. 39,
40
[63] N. Ferguson, S. Lucks, and K.A. McKay. Symmetric States and their Structure : Improved
Analysis of CubeHash. Cryptology ePrint Archive, Report 2010/273, 2010. 110
[64] S.R. Fluhrer, I. Mantin, and A. Shamir. Weaknesses in the Key Scheduling Algorithm of
RC4. In S. Vaudenay and A.M. Youssef, editors, Selected Areas in Cryptography, volume
2259 of Lecture Notes in Computer Science, pages 124. Springer, 2001. 11
[65] T. Fuhr. Finding Second Preimages of Short Messages for Hamsi-256. In M. Abe, editor,
Advances in Cryptology - ASIACRYPT 2010 - 16th International Conference on the Theory
and Application of Cryptology and Information Security, Singapore, December 5-9, 2010.
Proceedings, volume 6477 of Lecture Notes in Computer Science, pages 2037. Springer,
2010. 76
[66] B. Gammel, R. Gttfert, and O. Kniffler. The Achterbahn Stream Cipher. eSTREAM,
ECRYPT Stream Cipher Project, Report 2005/002, 2005. http://www.ecrypt.eu.org/
stream. 10
[67] F.D. Garcia, G. de Koning Gans, R. Muijrers, P. van Rossum, R. Verdult, R. Wichers
Schreur, and B. Jacobs. Dismantling MIFARE Classic. In S. Jajodia and J. Lpez, editors,
ESORICS, volume 5283 of Lecture Notes in Computer Science, pages 97114. Springer,
2008. 10
[68] S. Goldwasser and Y.T. Kalai. On the (In)security of the Fiat-Shamir Paradigm. In
44th Symposium on Foundations of Computer Science (FOCS 2003), 11-14 October 2003,
Cambridge, MA, USA, Proceedings, pages 102113. IEEE Computer Society, 2003. 66
[69] J.Dj. Goli. Cryptanalysis of Alleged A5 Stream Cipher. In W. Fumy, editor, EUROCRYPT, volume 1233 of Lecture Notes in Computer Science, pages 239255. Springer,
1997. 14
[70] G. Gong and Y. Nawaz. The WG Stream Cipher. eSTREAM, ECRYPT Stream Cipher
Project, Report 2005/033, 2005. http://www.ecrypt.eu.org/stream. 10
[71] M. Hasanzadeh, S. Khazaei, and A. Kholosha. On IV Setup of Pomaranch. eSTREAM,
ECRYPT Stream Cipher Project, Report 2005/082, 2005. http://www.ecrypt.eu.org/
stream. 23
[72] P. Hawkes and G.G. Rose. Rewriting Variables : The Complexity of Fast Algebraic Attacks
on Stream Ciphers. In M.K. Franklin, editor, CRYPTO, volume 3152 of Lecture Notes in
Computer Science, pages 390406. Springer, 2004. 22, 38, 46, 47

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

Tweakable Block Ciphers.

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

Calculs des bornes des preuves


dindiffrentiabilit

A.1
A.1.1

Preuves des bornes dindiffrentiabilit des preuves dans le


cas idal
Preuve du lemme 4

Pour 1 q N , On note V (q) et E(q) les ensembles V et E quand le simulateur reoit


la q-ime requte (de sonhpoint de vue)
F ou (F, F 1 ). Il est clair que |V (q)| 2q 1 et
i

|E(q)| q1. On note Pr Echec


1 (q) la probabilit que Drapeau1 soit lev pendant le traitement
de la q-ime requte. On commence par tudier le cas o F est une fonction de compression.
Soit u = (M, A, B, C) la requte considre. On considre lensemble
D(u) = {(A0 , B 0 , C) | (A0 , B 0 ) {0, 1}`a {0, 1}`h } .
Dans tout jeu de la squence de jeu, le noeud y 1 dfini pendant la simulation de la requte q
avec pour entre u est soit
h extrait idu graphe G, soit tir uniformment dans lensemble D(u).
B,
C)
un

Dans le premier cas, Pr Echec


= (A,
1 (q) = 0. Dans le second cas, on considre y
lment fix de X . En prenant la probabilit sur le tirage uniforme de y dans D(u) on a
h
i
B)
C = C
Pr [y = y] = Pr (A0 , B 0 ) = (A,
2(`a +`h ) = 2n ,
du fait de lindpendance de la partie C de y et des parties A et B. On en dduit que pour tout
y X ,
max Pr [y = y] 2n
u

do
h
i

Pr Echec
(q)
max Pr [ y V (q) : y = y]
1
2

u
n

(2q 1)

puisque |V (q)| 2q 1. Ainsi on a


N
h
i
h
i
X

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

Annexe A. Calculs des bornes des preuves dindiffrentiabilit

On sintresse prsent au cas permutation paramtre. Si la requte q est adresse R

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

Borne gnrale. Pour tout t > 1, on a


 
N
Pr [tColl(N, k)]
max
Pr
[xi = xi2 = . . . = xit ]
$
t {i1 ,...,it }{1,...,N } xi1 ,...,xit D 1
 
N k(t1)

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

et on prouve que pour tout t t0 et tout N ,


N t  e t k(t1)

2
2k .
t
2t

(A.1)

En effet, (A.1) est quivalent


t (log2 t + k log2 N log2 e) +

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

Par consquent, on obtient


N
X

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

Pr [tColl(N, k)] 2k + (1 + e)N 2k .

t=1

Borne amliore pour N 2 .


Lorsque N 2 , une autre borne peut-tre obtenue en posant

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

Annexe A. Calculs des bornes des preuves dindiffrentiabilit


Il suffit de prouver

t (log2 t + k log2 N log2 e) log2 N + k log2 ( 2).


Par dfinition de t1 , on a pour tout t t1 et tout N 2
t (log2 t + k log2 N log2 e) t (k log2 e)

k + log2 ( 2)

log2 N + k log2 ( 2).


On en dduit que pour tout N 2 ,
N
X

Pr [tColl(N, k)] (dt1 e 1) +

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

Pr [tColl] Pr [(t + 1)Coll] Pr Echec


|
tCollmax
4

t=1

h
i

On calcule prsent une borne suprieure la probabilit Pr Echec


|
tCollmax
. En sup4
h
i

posant que (t+1)Coll ne se produit pas aprs N requtes, on calcule Pr Echec


(q)
|
tCollmax
, la
4
probabilit que Drapeau4 soit lev pour la premire fois pendant la q-ime requte au simulateur.
m

Considrons lensemble Y C des buts des arcs x


y de EC \ED . On doit valuer la probabilit
avec laquelle une entre choisie par le distingueur y = (A0 , B 0 , C) est dans lensemble Y C (q). On
partitionne Y C (q) en 2`h parties, selon la valeur de la partie B de ses lments y. D peut avoir
une connaissance partielle de Y C (q). La partie B de y est connue par D quand y correspond
ltat final dans le calcul dun hach par la construction. La partie C est connue si la partie B
de ltat prcdent est connue. On note Y C (q, H) lensemble des tats y dans Y C (q) o la partie
B de y est gale H. On a alors
[
Y C (q) =
Y C (q, H).
H{0,1}`h

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

la slection uniforme de la partie A de y. On est prsent prt borner Pr Echec


(q)
|
tCollmax
:
4
h
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

|Y C (q, H)| [yB = H] 2`a ,

H{0,1}`h

t2`a .
h
i

On en dduit immdiatement Pr Echec


|
tCollmax
tN 2`a et donc
4
h

Pr Echec
4

N
X

(Pr [tColl] Pr [(t + 1)Coll])N t2`a ,

t=1

2`a N

N
X

t(Pr [tColl] Pr [(t + 1)Coll]),

t=1

2`a N

N
X
t=1

Pr [tColl] ,

146

Annexe A. Calculs des bornes des preuves dindiffrentiabilit

puisque la probabilit doccurence dune N + 1-collision est exactement 0.

A.1.4

Preuve du lemme 7

La preuve du lemme est identique la preuve du lemme 6 : on remplace simplement les


mentions de y = (A0 , B 0 , C) provenant de requtes u = (M, A0 , B 0 , C) par des mentions de
x = Insert1 [M ](A, B, C) provenant de requtes u = (M, A, B, C).

A.1.5

Preuve du lemme 8

Pour un encodage de message arbitraire, lorsquon borne la probabilit doccurrence de

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

dtermine loccurence de Echec


3 peut tre mise contribution pour amliorer la borne. ConsidC
rons lensemble Y des buts des arcs de EC \ ED . Par dfinition de la construction, y Y a un
chemin y . On note YpfC le sous-ensemble de Y tel quil existe un bloc de message My telle que
y ||My est prefixe dun message padd. Il nous reste valuer la probabilit avec laquelle une
entre donne x = Insert1 [M ](A, B, C) est dans YpfC (q). Considrons un lement y de YpfC (q).
y |My est prfixe dun message padd. Comme lencodage de message est sans prfixe, y nest
pas un message padd. Par consquent, le distingueur na pas dinformation sur la partie B de
y. Ainsi, la distribution des parties A et de B des noeuds sur lesquels portent les requtes de D
est indpendante de celle des parties A et B des noeuds de YpfC (q).
Pour un noeud x = (A, B, C) choisi par le distingueur travers la requte q avec pour entre
u = (M, Insert[M ](x)), la probabilit quun noeud y = (A0 , B 0 , C) de YpfC (q) partage les mmes
parties A et B est

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.

On est prt borner Pr Echec


3 :
h
i



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

Preuves des bornes dindiffrentiabilit des preuves dans le


cas biais
Preuve du lemme 9

Supposons que Echec


ne se soit pas produit lors des q premires dfinitions de valeurs de
sorties de F. Considrons une nouvelle dfinition de valeurs de sorties de F susceptible de lever

un des drapeaux dfinissant Echec.


Comme aucun des drapeaux na t lev, on a pour tout

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

Annexe A. Calculs des bornes des preuves dindiffrentiabilit

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

Comme la preuve de la section prcdente, la preuve de ce lemme consiste adapter la preuve


du cas idal en tenant compte :
de la borne modifie sur la probabilit de tirage dune sortie (A0 , B 0 ) donne, prise 2(n )

en supposant que Echec


ne se produise pas ;
du but modifi de lattaquant qui doit trouver non plus un lment de Y C mais un relatif
dun tel lment, ce qui conduit multiplier la borne de sa probabilit de succs par un
facteur NR ;
de la taille inchange de Y C .

S-ar putea să vă placă și