0% ont trouvé ce document utile (0 vote)
22 vues180 pages

Smanuel These

Transféré par

gemiellato
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues180 pages

Smanuel These

Transféré par

gemiellato
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Analyse et conception de fonctions de hachage

cryptographiques
Stéphane Manuel

To cite this version:


Stéphane Manuel. Analyse et conception de fonctions de hachage cryptographiques. Informatique.
Ecole Polytechnique X, 2010. Français. �NNT : �. �pastel-00573346�

HAL Id: pastel-00573346


[Link]
Submitted on 3 Mar 2011

HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est


archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents
entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non,
lished or not. The documents may come from émanant des établissements d’enseignement et de
teaching and research institutions in France or recherche français ou étrangers, des laboratoires
abroad, or from public or private research centers. publics ou privés.
Analyse et conception de fonctions de
hachage cryptographiques

THÈSE

présentée et soutenue publiquement le 23 novembre 2010

pour l’obtention du titre de

Docteur de l’École Polytechnique


(spécialité informatique)

par

Stéphane Manuel

Composition du jury

Rapporteurs : Pierre-Alain Fouque (École Normale Supérieure)


Antoine Joux (Université Versaille Saint-Quentin-en-Yvelines)

Directeurs : Daniel Augot (INRIA École Polytechnique)


Nicolas Sendrier (CRI Paris-Rocquencourt)
Examinateurs : Claude Carlet (Université Paris 8)
Christophe De Cannière (K.U. Leuven)
Henri Gilbert (Agence nationale de sécurité des systèmes d’information)

Centre de Recherche INRIA Paris-Rocquencourt — Équipe Secret


Mis en page ave la lasse thloria.
Remer iements
Je souhaite adresser mes premiers remer iements à Ni olas Sendrier, qui a a epté
de m'a ueillir tout d'abord omme stagiaire, puis omme do torant. Je veux dire i i
ombien j'ai appré ié ses qualités et son ouverture d'esprit en tant que personne et en
tant que her heur. Ni olas a fait preuve d'une grande disponibilité et de beau oup
de patien e pour répondre à mes questions et me guider dans le travail de re her he
que j'ai mené. Je tiens aussi à remer ier Daniel Augot qui a a epté de o-en adrer
ma thèse ave Ni olas.

Je onsidère omme un privilège le fait d'avoir eu l'opportunité de pratiquer la


ryptographie au sein du projet CODES où j'ai pu toyer nombre de personnalités
parmi les plus brillantes qu'il m'ait été donné de ren ontrer. Je tiens à exprimer ma
re onnaissan e à toute l'équipe du projet dans son ensemble, permanents, se rétaire
et thésards onfondus. Mer i don à Pas ale, Anne, Françoise, Christelle, Marine,
Marion, Andrea, Maria, Anne, Céline, Christina, Chrisanthy, Jean-Pierre, Pierre,
Ayoub, Ludovi , Emmanuel, Harold, Matthieu F., Mathieu C., Cédri F., Cédri L.,
Yan, Frédéri , Bhaskar, Maxime, Vin ent, Christophe, Stéphane, Benoît, Mamdouh,
Gregory, Sumanta et Grisha.

Je voudrais aussi remer ier parti ulièrement Claude Carlet que j'ai eu le plaisir
d'avoir omme enseignant à l'université Paris 8 et grâ e à qui j'ai pu dé ouvrir la
ryptographie.

Je souhaite de plus, exprimer ma gratitude à Antoine Joux et Thomas peyrin qui


ont ontribué au travers d'é hanges, de dis utions ou de ollaborations à l'aboutis-
sement d'une part importante des re her hes qui sont présentées dans e do ument.

Je remer ie également Claude Carlet, Christophe De Cannières, Pierre-Alain


Fouque, Henri Gilbert et Antoine Joux de me faire l'honneur de parti iper au jury
de ette thèse.

Finalement, mes derniers remer iements sont pour elle qui partage ma vie depuis
bientt 17 ans, mon épouse Nathalie, qui m'a toujours soutenu dans toutes les hoses
que j'ai entreprises et sans qui ette thèse n'aurait probablement jamais vu le jour.

i
ii
Je dédie ette thèse à
Dieu,
ma femme,
mon ls et mes frères,
ma famille et mes amis.

iii
iv
Table des matières

Partie I Les fon tions de ha hage ryptographiques

Chapitre 1
Introdu tion
1-1 Prin ipe des fon tions de ha hage . . . . . . . . . . . . . . . . . 3

1-2 Domaines d'utilisation des fon tions de ha hage ryptographiques 5

1-3 Fon tions de ha hage ryptographiques . . . . . . . . . . . . . . 6

1-3.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1-3.2 Propriétés lassiques . . . . . . . . . . . . . . . . . . . . . 7

1-4 Bref historique des fon tions de ha hage ryptographiques . . . . 11

Chapitre 2
Constru tions lassiques et leur sé urité
2-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2-2 Fon tion de ompression . . . . . . . . . . . . . . . . . . . . . . . 15

2-2.1 Fon tions de ompression fondées sur un algorithme de

hirement par blo . . . . . . . . . . . . . . . . . . . . . 15

2-2.2 Fon tions de ompression fondées sur un problème réputé

di ile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2-3 Extenseur de domaine . . . . . . . . . . . . . . . . . . . . . . . . 18

2-3.1 Algorithme de Merkle-Damgård . . . . . . . . . . . . . . 18

2-3.2 Autres extenseurs de domaine . . . . . . . . . . . . . . . 22

2-4 Autres onstru tions . . . . . . . . . . . . . . . . . . . . . . . . . 23

v
Table des matières

2-5 Sé urité des onstru tions . . . . . . . . . . . . . . . . . . . . . . 25

2-5.1 Attaques génériques . . . . . . . . . . . . . . . . . . . . . 25

2-5.2 Attaques spé iques . . . . . . . . . . . . . . . . . . . . . 26

2-5.3 Modèle de l'indiérentiabilité . . . . . . . . . . . . . . . . 28

Partie II Cryptanalyse des fon tions SHA-0 et SHA-1

Chapitre 3
Présentation des fon tions SHA-0 et SHA-1
3-1 Prin ipe de fon tionnement . . . . . . . . . . . . . . . . . . . . . 33

3-1.1 Extenseur de domaine . . . . . . . . . . . . . . . . . . . . 33

3-1.2 Fon tion de ompression . . . . . . . . . . . . . . . . . . 34

3-2 Sé urité de la fon tion SHA-0 . . . . . . . . . . . . . . . . . . . . 36

3-3 Sé urité de la fon tion SHA-1 . . . . . . . . . . . . . . . . . . . . 37

Chapitre 4
Prin ipe des ryptanalyses de SHA-0 et SHA-1
4-1 Cryptanalyses diérentielles des fon tions de ha hage ryptogra-

phiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4-2 Modèle des ollisions lo ales . . . . . . . . . . . . . . . . . . . . 40

4-2.1 Approximation linéaire de la fon tion de mise à jour des

registres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4-2.2 Fon tion de mise à jour des registres standard . . . . . . 45

4-3 Chemin diérentiel . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4-3.1 Ve teur de perturbations . . . . . . . . . . . . . . . . . . 46

4-3.2 Masque de perturbations . . . . . . . . . . . . . . . . . . 47

4-3.3 Cara téristique linéaire (Linear Chara teristi ). . . . . . 48

4-4 Mise en oeuvre du modèle . . . . . . . . . . . . . . . . . . . . . . 48

4-4.1 Appro he probabiliste . . . . . . . . . . . . . . . . . . . . 49

4-4.2 Appro he déterministe . . . . . . . . . . . . . . . . . . . 50

4-4.3 Hypothèse d'indépendan e . . . . . . . . . . . . . . . . . 50

4-4.4 Évaluation du omportement d'une ollision lo ale . . . . 51

vi
Chapitre 5
Cryptanalyses pratiques
5-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5-2 Opérateur de diéren e . . . . . . . . . . . . . . . . . . . . . . . 56

5-2.1 Diéren e binaire . . . . . . . . . . . . . . . . . . . . . . 56

5-2.2 Diéren e binaire signée . . . . . . . . . . . . . . . . . . . 57

5-2.3 Diéren e généralisée . . . . . . . . . . . . . . . . . . . . 58

5-3 Cara téristique linéaire . . . . . . . . . . . . . . . . . . . . . . . 58

5-3.1 Contraintes et as pathologiques . . . . . . . . . . . . . . 59

5-3.2 Re her he de ve teurs de perturbations pour SHA-0 . . . 60

5-3.3 Ve teurs de perturbations pour SHA-1 . . . . . . . . . . . 62

5-3.4 Instantiation du ve teur de perturbation . . . . . . . . . 64

5-4 Cara téristique non-linéaire . . . . . . . . . . . . . . . . . . . . . 65

5-4.1 Appro he de Wang et al. . . . . . . . . . . . . . . . . . . 66

5-4.2 Appro he de De Cannière et al. . . . . . . . . . . . . . . 69

5-5 Te hnique des blo s multiples . . . . . . . . . . . . . . . . . . . . 72

5-5.1 Prin ipe de la te hnique des blo s multiples. . . . . . . . 73

5-5.2 Attaque de Biham et al. . . . . . . . . . . . . . . . . . . . 74

5-5.3 Forme a tuelle . . . . . . . . . . . . . . . . . . . . . . . . 76

5-5.4 Attaque de Wang et al. . . . . . . . . . . . . . . . . . . . 76

5-6 Te hniques d'a élération de re her he de messages . . . . . . . . 77

5-6.1 Bits neutres . . . . . . . . . . . . . . . . . . . . . . . . . 78

5-6.2 Modi ations de message . . . . . . . . . . . . . . . . . . 81

5-6.3 Boomerangs . . . . . . . . . . . . . . . . . . . . . . . . . 83

Chapitre 6
A élération de la ryptanalyse de SHA-0
6-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6-2 Nouveau ve teur de perturbations . . . . . . . . . . . . . . . . . 90

6-3 Utilisation des boomerangs . . . . . . . . . . . . . . . . . . . . . 90

6-4 Cara téristique non-linéaire . . . . . . . . . . . . . . . . . . . . . 96

6-5 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Chapitre 7
Amélioration de la ara téristique linéaire
7-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

7-2 Algorithme de re her he de ve teur de perturbations . . . . . . . 104

vii
Table des matières

7-2.1 Des ription de l'algorithme . . . . . . . . . . . . . . . . . 104

7-2.2 Résultats expérimentaux . . . . . . . . . . . . . . . . . . 107

7-3 Classi ation des ve teurs de perturbations . . . . . . . . . . . . 108

7-3.1 Relation d'équivalen e . . . . . . . . . . . . . . . . . . . . 108

7-3.2 Nouvelle Notation . . . . . . . . . . . . . . . . . . . . . . 109

7-4 Fon tion d'évaluation . . . . . . . . . . . . . . . . . . . . . . . . 112

7-4.1 Fon tions de oût . . . . . . . . . . . . . . . . . . . . . . 113

7-4.2 De l'e a ité à la omplexité . . . . . . . . . . . . . . . . 115

Chapitre 8
Évaluation Statistique du omportement des ollisions lo ales
8-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

8-2 Pro édure expérimentale . . . . . . . . . . . . . . . . . . . . . . 118

8-3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8-3.1 Collision lo ale isolée . . . . . . . . . . . . . . . . . . . . 119

8-3.2 Collision lo ales adja entes . . . . . . . . . . . . . . . . . 121

8-3.3 Collision lo ales onsé utives . . . . . . . . . . . . . . . . 121

8-3.4 Collisions lo ales alternées . . . . . . . . . . . . . . . . . 122

8-4 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Partie III Con eption de nouvelles fon tions

Chapitre 9
Les fon tions XOR-Hash et FSB
9-1 La fon tion XOR-Hash . . . . . . . . . . . . . . . . . . . . . . . 129

9-1.1 Travaux onnexes . . . . . . . . . . . . . . . . . . . . . . 130

9-1.2 Des ription de XOR-Hash . . . . . . . . . . . . . . . . . . 132

9-1.3 Analyse de sé urité . . . . . . . . . . . . . . . . . . . . . 136

9-1.4 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . . 137

9-2 La fon tion FSB . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

9-2.1 Des ription . . . . . . . . . . . . . . . . . . . . . . . . . . 138

9-2.2 Sé urité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

9-2.3 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . . 139

viii
Partie IV Con lusions et perspe tives

Chapitre 10
Con lusions et perspe tives

Bibliographie 145
Table des gures 155
Liste des tableaux 159
Bibliographie 163

ix
Table des matières

x
Première partie

Les fon tions de ha hage


ryptographiques

1
1

Introdu tion

Sommaire
1-1 Prin ipe des fon tions de ha hage . . . . . . . . ... 3
1-2 Domaines d'utilisation des fon tions de ha hage ryp-
tographiques . . . . . . . . . . . . . . . . . . . . . ... 5
1-3 Fon tions de ha hage ryptographiques . . . . . ... 6
1-3.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . 6
1-3.2 Propriétés lassiques . . . . . . . . . . . . . . . . . . . 7
1-4 Bref historique des fon tions de ha hage ryptogra-
phiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1-1 Prin ipe des fon tions de ha hage


Une fon tion de ha hage est une fon tion prenant omme argument un élément
de taille arbitraire nie et renvoyant un élément de longueur xée. Une illustration
du prin ipe du ha hage se trouve gure 1-1.
Ces fon tions sont très employées notamment dans le domaine des bases de don-
nées, on parle alors parfois de tables de ha hage. Elles sont parti ulièrement utiles
dans les mé anismes d'indexations qui permettent d'améliorer onsidérablement les
performan es lors de la re her he d'éléments. Cependant, les tables de ha hage dif-
fèrent fondamentalement des fon tions de ha hage ryptographiques de part les pro-
priétés que l'on attend de es fon tions. Les fon tions de ha hage ryptographiques
doivent vérier des propriétés parti ulières liées à leur utilisation dans le domaine de
la sé urité de l'information.

Tables de ha hage. Une table de ha hage (Hash Table ) est une stru ture de
données permettant d'asso ier une valeur à une lé. Cette stru ture se présente le
plus souvent sous la forme d'un tableau et permet d'ee tuer des re her hes en temps
quasi onstant. L'a ès à une valeur se fait au moyen d'une adresse permettant de
déterminer la lo alisation d'un élément quel onque dans le tableau. Cette adresse est
obtenue en appliquant une fon tion de ha hage à une lé. La valeur asso iée à ette
lé est alors sto kée dans la ase orrespondante du tableau. La fon tion de ha hage
transforme don une lé de re her he en adresse permettant d'obtenir dire tement
la valeur re her hée.

3
Chapitre 1. Introdu tion

b b
b b b b

b b b b b b b b b b b b b b b b b b b b b b b bb b b
b bb b b b b b b bb bb
bb b b bb bbb
bb b b bb

b b b b b b b
bb b b b bb b

b b b b bb bb b b bbb b
bb b b bb
b

0101001010...

Fig. 1-1  Prin ipe du ha hage.

Dans le adre des tables de ha hage, la fon tion de ha hage utilisée peut être
inversible (il est possible de retrouver une lé à partir d'une adresse). De plus, l'exis-
ten e de ollisions (deux lés aboutissant à une même adresse), bien que demandant
un traitement parti ulier, n'invalide pas la stru ture. Le fait d'autoriser es deux
omportements, diéren ie fondamentalement les fon tions de ha hage qui sont uti-
lisées dans les tables de ha hage, des fon tions de ha hage ryptographiques.

Contrle de redondan e y lique (CRC). Le ontrle de redondan e y lique


ou CRC (Cy li Redundan y Che k ) est une te hnique permettant de déte ter les
erreurs pouvant advenir lors de la transmission de données. Le prin ipe de e ontrle
onsiste à ajouter aux données de la redondan e. Cette redondan e, ommunément
désignée sous le nom de somme de ontrle (Che ksum ), est onstruite sur le prin ipe
des fon tions de ha hage. Une opération rapide (par exemple un simple al ul de
parité) est appliquée sur les données an d'obtenir une empreinte. La redondan e
a ompagne les données lors de leur transmission ou de leur sto kage. Il est alors
possible de re al uler la somme de ontrle, et de vérier l'état des données. Si le
nombre d'altérations est inférieur à une ertaine borne, elles sont déte tées.
Les ontrles de redondan e y lique possèdent l'avantage d'être très rapide à
al uler. Cependant, ils ont aussi pour in onvénient de ne pas être apable, de par
leur simpli ité, de déte ter une manipulation mali ieuse des données.

Fon tions de ha hage ryptographiques. Les fon tions de ha hage rypto-


graphiques dièrent des autres types de fon tions de ha hage par les propriétés de
sé urité qui leur sont imposées. En eet, elles sont employées dans des domaines où la
sé urité des données traitées est ritique. Dans le adre des tables de ha hage ou des
ontrles de redondan e y lique, la priorité est donnée aux performan es. Une fon -
tion de ha hage ryptographique doit elle aussi être rapide à al uler. Cependant,
'est la résistan e aux tentatives de manipulations malveillantes des données qui

4
1-2. Domaines d'utilisation des fon tions de ha hage ryptographiques

onstitue l'élément prin ipal pris en onsidération lors de la on eption d'une telle
fon tion. Les propriétés ryptographiques que l'on exige des fon tions de ha hage
varient selon les domaines où elles sont employées.

1-2 Domaines d'utilisation des fon tions de ha hage ryp-


tographiques
Les fon tions de ha hage ryptographiques possèdent de nombreux domaines
d'utilisation, on les qualie parfois de  outeau suisse de la ryptographie. Cha-
un de es domaines requiert des propriétés parti ulières de sé urité, nous dressons
dans ette se tion une liste non exhaustive de es domaines.

Intégrité des données. Il s'agit de la fon tionnalité prin ipale demandée à une
fon tion de ha hage ryptographique. Elle permet de vérier que des données n'ont
pas été altérées depuis leur réation ou lors de leur transmission. Le moindre han-
gement dans les données doit, ave une très grande probabilité, aboutir à l'obtention
d'empreintes diérentes. Historiquement, les premières fon tions proposées pour as-
surer ette fon tionnalité étaient fondées sur la théorie des odes et étaient nommées
odes de déte tion de manipulations (MDC pour Manipulation Dete tion Codes ).

Authenti ation de messages. La propriété d'intégrité ne permet pas de se pré-


munir ontre un adversaire a tif qui essaierait d'altérer mali ieusement les données.
Un moyen de palier e problème onsiste à pro éder à l'authenti ation de la sour e
des données en utilisant des odes d'authenti ation de message (MAC pour Mes-
sage Authenti ation Codes ). L'obje tif d'un ode d'authenti ation de message est
double : il doit permettre d'authentier la sour e d'un message et de vérier l'in-
tégrité des données sans l'aide d'un mé anisme additionnel. L'authenti ation de
messages relève du domaine de la ryptographie symétrique, l'utilisation d'une lé
se rète étant né essaire.

Signature éle tronique. Les s hémas de signature éle tronique sont sans au un
doute l'appli ation la plus importante des fon tions de ha hage ryptographiques.
Une signature éle tronique est un équivalent éle tronique d'une signature é rite. Elle
permet de plus, de déte ter si l'information signée a été altérée après sa signature.
Les algorithmes utilisés pour signer des données né essitent des al uls importants et
sont don relativement lents omparativement aux vitesses d'exé ution des fon tions
de ha hage. Aussi, an d'a élérer les pro édures de signature et de véri ation de si-
gnature, on utilise une fon tion de ha hage ryptographique pour al uler l'empreinte
des données à signer et appliquer l'algorithme de signature à ette empreinte.

Prote tion de mots de passe. Une autre des appli ations ourantes des fon tions
de ha hage ryptographiques est la prote tion de mots de passe. Un mot de passe
est une haîne de ara tères utilisée pour authentier l'identité d'un utilisateur ou
autoriser l'a ès aux ressour es d'un système informatique. Il est né essaire de proté-
ger les mots de passe an de les sto ker. Une solution ourante onsiste à ne sto ker
que leur empreinte al ulée en appliquant une fon tion de ha hage ryptographique
à une ombinaison du mot de passe et d'un sel (Salt ).

5
Chapitre 1. Introdu tion

Dérivation de lé. Dans le adre de la ryptographie symétrique, les parties par-


tagent une lé se rète ommune. Il est alors fréquent que diérentes lés supplé-
mentaires soient né essaires pour diérentes appli ations. La dérivation de lé (ou
diversi ation de lé) onsiste à générer une ou plusieurs lés à partir d'une même
valeur se rète. Cette utilisation des fon tions de ha hage ryptographiques a pour
but d'empê her un adversaire ayant obtenu une lé dérivée d'obtenir des informations
sur la valeur se rète ou les autres lés dérivées.

Proto oles d'engagement. Les fon tions de ha hage ryptographiques sont aussi
employées dans les proto oles d'engagement. Un proto ole d'engagement onsiste à
permettre à une partie de s'engager sur une valeur sans divulguer au une informa-
tion sur elle- i ; la valeur engagée étant révélée ultérieurement. Ces proto oles sont
utilisés pour lier des parties à des valeurs d'engagement de façon à e qu'au une des
parties ne puisse tirer à posteriori un avantage inapproprié sur les autres.

Génération de nombres pseudo-aléatoires. Un générateur pseudo-aléatoires


est un algorithme déterministe qui génère une suite de bits possédant un ara -
tère pro he d'une séquen e purement aléatoire. Ces algorithmes onstituent, parmi
d'autres utilisations, le oeur des s hémas de hirement à ot. Les générateurs
pseudo-aléatoires fondés sur une fon tion de ha hage ryptographique utilisent es-
sentiellement deux modes opératoires. Le premier onsiste à al uler de façon itéra-
tive à partir d'une graine (Seed ), diérentes empreintes desquelles on extrait des bits
pseudo-aléatoires. Le se ond onsiste à al uler les empreintes à partir de la graine
et d'un ompteur.

1-3 Fon tions de ha hage ryptographiques


Nous introduisons dans ette se tion une dénition algorithmique des fon tions
de ha hage et présentons un objet théorique dénommé ora le aléatoire qui modélise
la notion de fon tion de ha hage ryptographique idéale. Nous présentons ensuite
les trois propriétés lassiques exigées des fon tions de ha hage ryptographiques qui
sont la résistan e aux ollisions, la résistan e au al ul d'anté édent et la résistan e
au al ul de se ond anté édent.

1-3.1 Dénition
Une fon tion de ha hage prend omme argument une haîne de bits de longueur
arbitraire nie (le message) et restitue en sortie une haîne de bits de longueur xée :
l'empreinte (ou ha hé), appelée aussi parfois ondensat ou simplement ha hé. Nous
pouvons dé rire une telle fon tion de la façon suivante :

Dénition 1.1 (Fon tion de ha hage)


Une fon tion de ha hage est une fon tion h possédant les deux propriétés suivantes :
1. Compression : h : {0, 1}∗ → {0, 1}n .
2. Fa ilité de al ul : h et x ∈ {0, 1}∗ donnés, on peut al uler e a ement h(x).

6
1-3. Fon tions de ha hage ryptographiques

La notation {0, 1}∗ désigne l'ensemble des haînes de bits de longueur arbitraire nie
et la
n
notation {0, 1} désigne l'ensemble des haînes de bits de longueur exa tement
n. Cette dénition prend en ompte les deux aspe ts fondamentaux exigés de toute
fon tion de ha hage ( ryptographique ou non) : elle doit permettre d'une part d'ob-
tenir une empreinte de taille réduite et d'autre part être rapide à al uler. Il s'agit
d'une dénition des fon tions de ha hage selon un point de vue algorithmique.
Bellare et Rogaway [BR93℄ ont introduit en 1993 un objet théorique dénommé
ora le aléatoire (Random Ora le ). Un ora le aléatoire est un objet de type boîte
noire, qui répond à haque requête issue de son ensemble de départ par une réponse
aléatoire hoisie uniformément dans son ensemble d'arrivée. Pour un ensemble Dom
et un ensemble ni Rng un ora le aléatoire est déni par une ma hine de Turing
a eptant des entrées X ∈ Dom :

Algorithm 1 Ora le aléatoire RO Dom,Rng (X)


if T [X] = ⊥ then
$
T [X] ← Rng
end if
return T [X]
où T est une table intégralement initialisée à ⊥.

Un ora le aléatoire est dit onsistant, s'il donne systématiquement une réponse
identique pour une même question posée. De plus, on distingue usuellement les ora les
aléatoires à entrée de longueur xe (Fixed Input Length ) qui orrespondent à une
fon tion de
1 idéale, et les ora les aléatoires à entrée de longueur variable
ompression
(Variable Input Length ) qui orrespondent à une fon tion de ha hage idéale.
Un ora le aléatoire onstitue une fon tion de ha hage ryptographique parfaite.
Il vérie toutes les propriétés exigées des fon tions de ha hage ryptographiques. Il
s'agit d'une fon tion aléatoire pour laquelle il n'existe pas d'attaques stri tement
meilleures que les attaques génériques.

1-3.2 Propriétés lassiques


La spé i ité d'une fon tion de ha hage ryptographique réside, omme nous
l'avons déjà souligné, dans ses propriétés de sé urité supplémentaires. Nous introdui-
sons i i les trois propriétés, dites lassiques, exigées pour e type de fon tion.
En pratique, les fon tions de ha hage bornent par onstru tion la taille maxi-
male des messages sus eptibles d'être traités. Pour les fon tions SHA-0 et SHA-1 par
exemple, la taille maximale d'un message est égale à 264 − 1 bits. Pour les dénitions
des propriétés ryptographiques que nous allons présenter, nous hoisissons de res-
treindre l'ensemble de dénition de la fon tion h e qui permet de dénir une distri-
bution de probabilité uniforme sur l'ensemble des messages. Soit r un entier naturel,
nous onsidérons don la fon tion de ha hage
r n
ryptographique h : {0, 1} −→ {0, 1} .

Résistan e aux ollisions (Collision Resistan e ). La première propriété que


l'on exige d'une fon tion de ha hage ryptographique est d'être résistante aux olli-

1
Nous développerons les fon tions de ompression dans le hapitre onsa ré à la onstru tion

des fon tions de ha hage.

7
Chapitre 1. Introdu tion

sions. On peut dénir ette propriété de la façon suivante :

Propriété 1.1 (Résistan e aux ollisions)


La fon tion h résiste de façon optimale aux ollisions si on ne possède pas d'algo-
rithme apable de produire un ouple de messages (x, x′ ) ∈ {0, 1}r × {0, 1}r , tel que
x′ 6= x et h(x′ ) = h(x) ave une omplexité meilleure que O(2n/2 ) opérations. Un tel
ouple forme une ollision pour la fon tion de ha hage h.
La résistan e aux ollisions orrespond à la propriété de sé urité spé ique à l'in-
tégrité des données. Cependant pour une fon tion de ha hage ryptographique, le
fait de ne pas résister de façon optimale aux ollisions onstitue une faiblesse. On
onsidère don , qu'une fon tion pour laquelle ette propriété est mise en défaut est
inapte à être utilisée dans l'ensemble des domaines ryptographiques.

Résistan e au al ul d'anté édent (Preimage Resistan e ). La résistan e au


al ul d'anté édent illustre le ara tère non-inversible d'une fon tion de ha hage :

Propriété 1.2 (Résistan e au al ul d'anté édent)


Soit un message m tiré aléatoirement dans {0, 1}r (ensemble de dénition de la
fon tion h) on pose y = h(m). La fon tion h résiste de façon optimale au al ul
d'anté édent si on ne possède pas d'algorithme apable de produire un anté édent
x ∈ {0, 1}r tel que h(x) = y , ave une omplexité meilleure que O(2n ) opérations.

La résistan e au al ul d'anté édent telle que nous la dénissons dière de la résis-


tan e à l'inversion. En eet, l'attaquant n'a pas l'obligation de produire le message
m utilisé pour générer y , mais un message quel onque possédant la même empreinte.
Cette propriété est parti ulièrement désirable dans le ontexte de la prote tion de
mot de passe et de la dérivation de lé.

Résistan e au al ul de se ond anté édent (Se ond Preimage Resistan e ).


La propriété de résistan e au al ul de se ond anté édent est parti ulièrement requise
dans les s hémas de signature éle tronique. On peut la dénir de la façon suivante :

Propriété 1.3 (Résistan e au al ul de se ond anté édent)


Soit un message x tiré aléatoirement dans {0, 1}r . La fon tion h résiste de façon
optimale au al ul de se ond anté édent si on ne possède pas d'algorithme apable de
produire un se ond anté édent x′ ∈ {0, 1}r tel que x′ 6= x et h(x′ ) = h(x), ave une
omplexité meilleure que O(2n ) opérations.
La dénition de la résistan e au al ul de se ond anté édent peut sembler similaire
à elle de la résistan e aux ollisions. Cependant, es deux propriétés dièrent sur
un point essentiel : le degré de liberté a ordé à l'adversaire. Pour la résistan e aux
ollisions, l'adversaire est libre du hoix des messages x et x′ . Dans le adre de la
résistan e au al ul de se ond anté édent, le message x et don le ha hé y sont
imposés.
Une illustration des modèles d'attaques orrespondant à es propriétés est pro-
posé gure 1-2.
Ces trois dénitions forment le orpus de propriétés minimales que doit posséder
toute fon tion de ha hage an de pouvoir être qualiée de ryptographique. Il existe
de nombreuses autres propriétés en plus de es trois propriétés lassiques. Certains

8
1-3. Fon tions de ha hage ryptographiques

? 6= ? ? 6= ?
h h h h h

Fig. 1-2  Cette gure illustre les diérents obje tifs d'un adversaire souhaitant
mettre en défaut les propriétés de résistan e aux ollisions, de résistan e au al ul
d'anté édent et de résistan e au al ul de se ond anté édent. Les parties grisées
orrespondent aux éléments qui sont imposés et les points d'interrogation gurent
les messages que doit produire l'adversaire.

domaines d'appli ation né essitent que la fon tion utilisée soit de plus indistinguable
d'une fon tion aléatoire. C'est le as par exemple pour la dérivation de lé et la
génération de nombre pseudo-aléatoires. On parlera alors de fon tion pseudo-aléatoire
(Pseudo Random Fun tion ) pour ara tériser le fait que la sortie de ette fon tion
ne peut être distinguée de elle d'une fon tion purement aléatoire. Le tableau1-1
établit une orrespondan e entre es propriétés et ertains domaines d'utilisation
des fon tions de ha hage ryptographiques introduits pré édemment.

Domaines Propriétés

Col P re Sec P RF

Intégrité des données ×


Signature éle tronique ×
Prote tion de mot de passe ×
Dérivation de lé × ×
Génération de nombres pseudo-aléatoires × ×

Tab. 1-1  Tableau de orrespondan e entre les propriétés des fon tions de ha hage
ryptographiques et les domaines d'utilisation. Les notations Col, P re, Sec et P RF
désignent respe tivement la résistan e aux ollisions, au al ul d'anté édent, au al ul
de se ond anté édent et le ara tère pseudo-aléatoire. La présen e d'une roix indique
le fait qu'un adversaire mettant en défaut la propriété orrespondante peut être
dire tement utilisé pour invalider l'utilisation de la fon tion dans le domaine. Les
domaines de l'authenti ation de message et des proto oles d'engagement ne sont
pas présent dans e tableau ar les propriétés qui leur orrespondent varient en
fon tion des onstru tions utilisées.

Terminologies alternatives. On peut trouver dans la littérature onsa rée des


terminologies alternatives pour es propriétés :
 sens unique (One Way ) pour résistan e au al ul d'anté édent,

9
Chapitre 1. Introdu tion

 faible résistan e aux ollisions (Weak Collision Resistan e ) pour résistan e au


al ul de se ond anté édent,
 forte résistan e aux ollisions (Strong Collision Resistan e ) pour résistan e aux
ollisions.

On nomme fon tion de ha hage à sens unique (One Way Hash Fun tion ) ou fon -
tion de ha hage à sens unique faible (Weak One Way Hash Fun tion ), une fon tion
de ha hage satisfaisant les propriétés 1.1 et 1.2. On nomme fon tion de ha hage ré-
sistante aux ollisions (CollisionResistant Hash Fun tion ) ou fon tion de ha hage à
sens unique forte (Strong One Way Hash Fun tion ), une fon tion de ha hage satis-
faisant les propriétés 1.1 et 1.3.

Dénitions formelles. Les propriétés que nous avons énon ées ne onstituent pas
des dénitions d'un point de vue rigoureusement formel. Dans es propriétés, nous
utilisons la notion de résistan e optimale. En eet, nous pouvons asso ier à ha une
de es trois propriétés une attaque générique. Notons n la taille, exprimée en nombre
de bits, de la sortie d'une fon tion de ha hage. Pour la résistan e aux ollisions, le
paradoxe des anniversaires montre que l'on peut trouver une ollision ave une om-
plexité de l'ordre de O(2
n/2 ) appels à la fon tion. En e qui on erne la résistan e
au al ul d'anté édent et la résistan e au al ul de se ond anté édent, une re her he
exhaustive de omplexité O(2n ) appels à la fon tion permet d'obtenir l'objet dé-
siré. Ces deux attaques, que nous détaillerons se tion 2-5, sont dites génériques ar
elles fon tionnent quelle que soit la fon tion de ha hage onsidérée. Une fon tion
résiste alors de façon optimale, et est don qualiée de résistante, si au une attaque
stri tement meilleure que l'attaque générique orrespondante n'est onnue.

Un traitement théorique rigoureux des propriétés ryptographiques des fon tions


de ha hage a été onsidéré pendant de nombreuses années omme étant vain. En
eet si l'on onsidère la résistan e aux ollisions, dénir de façon rigoureuse ette
propriété en utilisant le formalisme lassique ne fon tionne tout simplement pas. Il
est évident qu'une multitude de ollisions existent. En eet par dénition, le ardinal
de l'ensemble de départ d'une fon tion de ha hage est bien plus grand que le ardinal
de son ensemble d'arrivée. Il en résulte qu'un grand nombre d'éléments possèdent une
même image. Il existe don un algorithme trivial apable d'invalider ette propriété.
Cet algorithme possède une omplexité en temps onstant, ne né essite au une re-
quête et possède une probabilité de su ès égale à 1. Il s'agit de l'algorithme qui
possède l'une des ollisions existantes odée en dur, et se ontente de la restituer
en sortie.

An de palier à e problème on utilise la notion de famille de fon tions de ha-


hage ryptographiques qui permet de dénir formellement les propriétés de sé urité
lassiques et d'en introduire de nouvelles à même de ouvrir l'éventail des utilisations
de es fon tions. Des études détaillées de es propriétés, ainsi que des liens qui les
unissent, ont été menées dans un arti le de Rogaway et Shrimpton [RS04℄ et plus
ré emment dans un arti le de Reyhanitabar et al. [RSY10℄.

10
1-4. Bref historique des fon tions de ha hage ryptographiques

1-4 Bref historique des fon tions de ha hage ryptogra-


phiques
Le besoin de fon tions de ha hage ryptographiques est tout d'abord apparu
dans le ontexte de l'authenti ation relativement à la prote tion de mots de passe.
On désignait alors es fon tions sous le terme de fon tions à sens unique (One-Way
Fun tions ), an d'indiquer que es fon tions devait être résistantes à l'inversion.
Whiteld Die et Martin E. Hellman [DH76℄ ont été les premiers à dénir une telle
fon tion à sens unique. Les notions de résistan e au al ul de se ond anté édent et
de résistan e aux ollisions ont été développées onsé utivement. Die et Hellman
ont aussi montré dans le même arti le, omment un algorithme de hirement sûr
pouvait être utilisé pour réer une fon tion de ha hage. Au début des années 1980,
les premiers s hémas on rets ont été proposés : les onstru tions de Davies-Meyer et
Matyas-Meyer-Oseas employées ave l'algorithme de hirement par blo DES (Data
En ryption Standard ) [FIPS-DES℄. Cependant, du fait de la taille réduite des blo s
du DES (64 bits), la sé urité de es onstru tions était insusante. Les onstru -
tions MDC-2 [MS88℄ proposée en 1988 puis MDC-4 [CPM90℄ en 1990 onstituent les
premières fon tions fondées sur le DES munies d'un niveau de sé urité permettant
leur utilisation en pratique. Durant ette même période, une des première fon tion
de ha hage ad ho MD2 [RFC-MD2℄ était développée par Ronald L. Rivest. MD2
fût rempla é par MD4 [RFC-MD4℄ en 1990 puis par MD5 [RFC-MD5℄ en 1992. La
fon tion MD5 est la première fon tion de ha hage ryptographique à avoir fait l'ob-
jet d'une large utilisation. En 1993, l'institut national de standardisation améri ain
(Nationnal Institute of Standards and Te hnology NIST) normalisât la fon tion de
ha hage SHA (Standard Hash Algorithm ), onstruite selon les idées et prin ipes de
MD4. La fon tion SHA, rebaptisée SHA-0 [FIPS-SHA0℄, fût retirée en 1995 selon les
instru tions de la NSA (Nationnal Se urity Agen y ) au prot du nouveau standard
SHA-1 [FIPS-SHA1℄. En 2002, une nouvelle fon tion de ha hage ryptographiques
SHA-2 [FIPS-SHA2a℄, puis en 2004 ses diérentes variantes [FIPS-SHA2b℄ ont été
normalisées par le NIST.
Les fon tions les plus employées en pratique sont MD5 et SHA-1. Mais es fon -
tions ont fait l'objet es dernières années de nombreuses ryptanalyses e a es qui
dans le as de MD5 se sont révélées dévastatri es. Le standard a tuel SHA-2 est
en ore aujourd'hui onsidéré omme sûr. Cependant, le modèle de on eption em-
ployé pour les diérentes versions de SHA-2 est relativement pro he de elui utilisé
par les standards pré édents ; on parle des fon tions de la famille MD-SHA (MD-
SHA Familly ) pour désigner les diérentes fon tions MD4, MD5, SHA-0, SHA-1 et
SHA-2. Aussi, le NIST a ouvert une ompétition publique pour développer un nouvel
algorithme de ha hage ryptographique destiné à être employé dans les s hémas de
signature éle tronique, l'authenti ation de message et autres appli ations rypto-
graphiques. Cette ompétition, destinée à répondre aux ré ents développements des
ryptanalyses des fon tions de ha hage, 'est ouverte le 31 o tobre 2008. Le nouvel
algorithme, baptisé sans surprise SHA-3 [FIPS-SHA3℄, devrait être hoisi et validé à
la n de l'année 2012.

11
Chapitre 1. Introdu tion

12
2

Constru tions lassiques et leur


sé urité

Sommaire
2-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . 13
2-2 Fon tion de ompression . . . . . . . . . . . . . . . . . 15
2-2.1 Fon tions de ompression fondées sur un algorithme
de hirement par blo . . . . . . . . . . . . . . . . . . 15
2-2.2 Fon tions de ompression fondées sur un problème ré-
puté di ile . . . . . . . . . . . . . . . . . . . . . . . . 17
2-3 Extenseur de domaine . . . . . . . . . . . . . . . . . . 18
2-3.1 Algorithme de Merkle-Damgård . . . . . . . . . . . . . 18
2-3.2 Autres extenseurs de domaine . . . . . . . . . . . . . . 22
2-4 Autres onstru tions . . . . . . . . . . . . . . . . . . . 23
2-5 Sé urité des onstru tions . . . . . . . . . . . . . . . . 25
2-5.1 Attaques génériques . . . . . . . . . . . . . . . . . . . . 25
2-5.2 Attaques spé iques . . . . . . . . . . . . . . . . . . . . 26
2-5.3 Modèle de l'indiérentiabilité . . . . . . . . . . . . . . 28

2-1 Introdu tion


Nous avons introduit les fon tions de ha hage omme étant des fon tions prenant
omme argument un élément de taille arbitraire nie et renvoyant un élément de lon-
gueur xée. Construire une telle fon tion, vériant les propriétés de sé urité que nous
avons énon ées, n'est pas une hose aisée. Une solution naturelle pour résoudre e
problème onsiste à ombiner une primitive opérant sur un domaine de taille xe et
un algorithme apable d'étendre le domaine de ette primitive. Les premières propo-
sitions fondées sur e paradigme ont été présentées en 1978 par Rabin [Rab78℄ puis
en 1979 par Merkle [Mer79a, Mer79b℄. En 1992, Lai et Massey [LM92℄ proposèrent
un algorithme qu'ils baptisèrent fon tion de ha hage itérative. Une illustration du
prin ipe du ha hage itératif se trouve gure 2-1.
Les onstru tions itératives utilisent une fon tion de ompression ombinée à un
algorithme d'extension de domaine. La fon tion de ompression est souvent l'élé-
ment le plus vulnérable des fon tions de ha hage ryptographiques itératives et don

13
Chapitre 2. Constru tions lassiques et leur sé urité

Fig. 2-1  Ha hage itératif. Le message est dé oupé en éléments de taille xe qui
sont traités itérativement.

le plus di ile à on evoir. La prin ipale di ulté repose sur le ompromis né essaire
entre vitesse d'exé ution et sé urité. Une fois la fon tion de ompression onstruite,
on applique l'extenseur de domaine qui doit lui-même ne pas introduire de faiblesse
supplémentaire. L'algorithme d'extension de domaine le plus populaire est ertaine-
ment l'algorithme de Merkle-Damgård [Mer89, Dam89℄. Cependant, ave l'intensi-
 ation de la re her he sur les fon tions de ha hage ryptographiques, de nouvelles
propositions d'extenseurs de domaine ont vu le jour, parmi lesquelles on peut iter les
éponges ryptographiques [BDP06℄. Bien qu'elles soient les plus utilisées en pratique,
les fon tions itératives ne onstituent pas la seule option possible. D'autres prin ipes
de onstru tions ont été proposés dont les arbres de Merkle [Mer79b℄.

Une attaque ontre une fon tion de ha hage ryptographique est un algorithme
dont le but est de violer une des propriétés de sé urité revendiquée par ette fon tion.
Dans le monde de la ryptologie, il existe diérentes notions pour dénir les attaques.
Une façon de distinguer les types d'attaque onsiste à onsidérer la quantité d'infor-
mation disponible pour un adversaire. Selon e point de vue, nous pouvons diviser les
attaques en deux atégories. Les attaques génériques traitent la fon tion de ha hage
omme une boîte noire (Bla k Box ), et sont indépendantes du type de onstru tion
sur lequel repose la fon tion de ha hage. Par opposition, les attaques spé iques
onsidèrent la fon tion de ha hage omme une boîte blan he (White Box ). Les at-
taques spé iques tirent partie de stru tures parti ulières à l'algorithme utilisé pour
onstruire la fon tion de ha hage. Plusieurs attaques spé iques relatives à l'utilisa-
tion d'un extenseur de domaine et plus parti ulièrement à l'algorithme de Merkle-
Damgård ont été mises en éviden e. Ces attaques permettent de distinguer trivia-
lement une fon tion de ha hage itérative d'une fon tion de ha hage parfaite (ora le
aléatoire). La notion d'indiérentiabilité introduite par Maurer et al. [MRH04℄ en
2004 permet de prendre en ompte l'impa t de l'extenseur de domaine sur la sé urité
d'une fon tion de ha hage.

Dans e hapitre, nous ommen erons par présenter les diérents prin ipes utili-
sés pour la onstru tions de fon tions de ompression avant de détailler l'algorithme

14
2-2. Fon tion de ompression

de Merkle-Damgård et de présenter deux autres algorithmes d'extension de domaine.


Nous introduirons après ela les attaques génériques relatives aux propriétés de ré-
sistan e aux ollisions, au al ul d'anté édent et au al ul de se ond anté édent.
Ces attaques onstituent les référen es permettant d'établir les niveaux de sé urité
d'une fon tion de ha hage relativement à es propriétés. Nous détaillerons ensuite
les attaques spé iques parti ulières aux fon tions de ha hage itératives et lorons
e hapitre en présentant notion d'indiérentiabilité.

2-2 Fon tion de ompression


La onstru tion d'une fon tion de ompression est en elle-même un hallenge.
C'est sur ette fon tion que résident les performan es d'une fon tion de ha hage
itérative et une part importante de sa sé urité (ave l'algorithme d'extension de
domaine). Malheureusement, il s'avère parti ulièrement di ile de on ilier es deux
impératifs. On peut ataloguer les diérents types de on eption de fon tions de
ompression en deux familles. La première de es famille regroupe les onstru tions
fondées sur des algorithmes de hirement par blo s. Au sein de ette famille on peut
en ore distinguer diérentes atégories selon que l'algorithme de hirement utilisé
est normalisé ou s'il s'agit d'un algorithme ad ho . La se onde famille regroupe
les fon tions mettant en oeuvre des algorithmes dont la sé urité est rédu tible à la
di ulté de résoudre des problèmes algorithmiques réputés durs.

2-2.1 Fon tions de ompression fondées sur un algorithme de hif-


frement par blo
Le prin ipe des onstru tions fondées sur un algorithme de hirement par blo
onsiste à s'appuyer sur une primitive ryptographique existante pour laquelle on
possède de bons arguments de sé urité. C'est le as, par exemple, des s hémas de
hirement par blo . Ces fon tions de ompressions présentent l'avantage de per-
mettre de faire reposer la sé urité relative à une ou plusieurs des propriétés exigées
des fon tions de ha hage ryptographiques sur la sé urité de l'algorithme de hire-
ment mis en oeuvre.
On distingue les onstru tions fondées sur des algorithmes de hirement par
blo selon leur taux de ha hage. La notion de taux de ha hage a été introduite en
1993 par Preneel [Pre93℄. Puis en 1994, Knudsen et Lai [KL94℄, ont déni le taux
de ha hage omme le ratio du nombre de blo s de message traités par le nombre
d'appels à l'algorithme de hirement employé. Cette dénition onstitue la mesure
standard utilisée pour évaluer l'e a ité des fon tions de ha hage fondées sur un
s héma de hirement par blo .
Les onstru tions de ratio 1/1 on fait l'objet d'études intensives. Parmi es
onstru tions, les modes opératoires les plus populaires sont Davies-Meyer, Matyas-
Meyer-Oseas et Miyagu hi-Preneel. Ces trois onstru tions sont illustrées gure 2-2.
Preneel et al. [PGV93℄ puis Bla k et al. [BRS02℄ ont analysé les 64 onstru -
tions diérentes possibles. Parmi elles, 12 onstru tions se sont avérées êtres sûres :
des rédu tions de sé urité dans le modèle du s héma de hirement par blo idéal
(Ideal Blo k Cipher Model ) ont été démontrées. Cependant, l'in onvénient majeur
des onstru tions de ratio 1/1 réside dans la taille de sortie des algorithmes de hif-
frement par blo sus eptibles d'être utilisés. En eet, le andidat idéal pour une telle

15
Chapitre 2. Constru tions lassiques et leur sé urité

M Hi M
Hi M Hi

E E E

Hi+1 Hi+1 Hi+1

Fig. 2-2  Modes opératoires de Davies-Meyer, Matyas-Meyer-Oseas et Miyagu hi-


Preneel.

onstru tion est l'AES [FIPS-AES℄ (Advaned En ryption Standard ) qui a su édé
au DES [FIPS-DES℄ (Data En ryption Standard ) en 2001. La taille des blo s utilisés
par l'AES est de 128 bits (64 pour le DES). Cette taille se révèle insusante pour
résister à l'attaque générique par ollision au vu des ritères de sé urité a tuels. Ces
ritères imposent aux fon tions de ha hage ryptographiques des tailles d'empreinte
de 224/256 bits en ar hite ture 32 bits et 384/512 bits en ar hite ture 64 bits (selon
le ré ent appel d'ore du NIST).

An de palier à et in onvénient, diérentes stratégies ont été explorées.

Algorithmes de hirement ad ho . La première stratégie onsiste à onstruire


des algorithmes de hirement par blo ad ho utilisant des tailles de blo plus
grandes. Les fon tions de ompression dénommées ad ho par extension, sont em-
ployées dans la plupart des fon tions ryptographiques utilisées en pratique. Le hoix
de e type de onstru tion réside essentiellement dans le gain de performan e qu'il
apporte. Cependant, la sé urité de es fon tions repose uniquement sur l'in apa ité
de la ommunauté ryptographique à produire des ryptanalyses et repose en géné-
ral sur un onsensus plutt que sur une preuve. La plupart des standards adoptés
par l'industrie reposent sur e type de fon tion. On peut iter les fon tions de la fa-
mille MD-SHA, qui regroupe les fon tions MD [RFC-MD4, RFC-MD5, PB95℄ et les
fon tions SHA [FIPS-SHA0, FIPS-SHA1, FIPS-SHA2a, FIPS-SHA2b℄. Les fon tions
SHA-0 et SHA-1 seront dé rites en détail dans la deuxième partie de ette thèse.
Rijmen et Barreto ont proposé en 2000 une nouvelle fon tion de ha hage ryptogra-
phique, Whirlpool [BR00℄, dont la fon tion de ompression repose sur un algorithme
de hirement utilisant des blo s de taille 512 bits. Cependant et algorithme de
hirement, bien que fondé sur les mêmes prin ipes que l'AES, n'a pas fait l'objet
d'autant d'attention de la part des ryptanalystes. Par onséquent, il n'y a pas de
onsensus établi sur sa sé urité. De plus, les performan es de Whirlpool sont infé-
rieures à la plupart des fon tions pré édentes. Ce qui explique qu'elle n'ait pas été
plébis itée par l'industrie, bien qu'ayant été normalisée en 2004, sous la désignation

16
2-2. Fon tion de ompression

ISO/IEC 10118-3.
Comme nous l'avons souligné, il est di ile d'évaluer la sé urité des fon tions de
ompression ad ho . Jusqu'en 2005 et bien qu'en ore très employée dans l'industrie, la
fon tion MD5 avait déjà fait l'objet de diérentes attaques [Ber92, DBB91, DBB93,
Dob96a, Dob96b℄. Mais le standard SHA-1 était en ore onsidéré omme sûr. Les
ryptanalyses menées ontre sa version préliminaire SHA-0 [CJ98, BC04℄ ne semblant
pas être dire tement transposables à la version normalisée. Cependant, l'introdu tion
de nouvelles méthodes de ryptanalyses initiée par Wang et al. [WFL04, WLF05,
WYY05a, WYY05b, WYY05 , WYY05d, WY05℄ devaient sonner le glas de pans
entiers des fon tions de ha hage de la famille MD-SHA. Une part importante des
travaux de re her he présentés dans ette thèse on ernant les fon tions SHA-0 et
SHA-1 s'appuient sur es nouvelles méthodes de ryptanalyse. Ces méthodes se sont
montrées si e a es que le NIST a dé idé de lan er une ompétition pour dénir un
nouveau standard de ha hage ryptographique. On peut remarquer que malgré et
in ident, les fon tions ad ho sont toujours très populaires.

Constru tions de ratios inférieurs. Une autre appro he pour augmenter la


taille des blo s onsiste à dénir des onstru tions de ratios inférieurs, utilisant plu-
sieurs instan es du hirement par blo au sein de la fon tion de ompression. On
peut alors reformuler la question de la taille de l'empreinte sous une forme diérente :
omment produire des empreintes de taille multiple de la taille du hirement par
blo utilisé ? Les premières réponses à ette question ont été les onstru tions MDC-
2 et MDC-4 [CPM90, MS88℄ qui furent bientt suivies par de nombreuses autres
propositions. Cependant, peu de es propositions ont résisté aux ryptanalyses. Cer-
tains auteurs se sont appuyés sur des arguments de théorie des odes pour donner
des arguments de sé urité pour leurs onstru tions [KP96, KP97, KP02℄. Mais là
en ore un problème demeure, au une de es onstru tions n'est idéale : pour une
empreinte de taille 2n bits elles utilisent plus de 2 appels à un hirement par blo
de taille n bits. En 2006, Peyrin et al. [PGM06℄ ont onje turé que pour onstruire
une fon tion de ompression produisant des sorties de taille 256 bits, au moins inq
appels à la fon tion AES sont né essaires pour traiter un blo de message de taille
128 bits. Toutes les pistes relatives à ette question n'ont pas en ore été épuisées, e
sujet de re her he reste ouvert.

2-2.2 Fon tions de ompression fondées sur un problème réputé


di ile
L'idée des fon tions de ompression fondées sur des problèmes réputés di iles
est de faire reposer la sé urité de la fon tion sur une onje ture éprouvée. En eet,
nous onnaissons un ertains nombre de problèmes pour lesquels au un algorithme
de résolution e a e (en terme de omplexité algorithmique) n'est onnu. Parmi es
problèmes on peut iter, entre autres, le problème SAT, le problème de fa torisation
ou le dé odage de syndrome. Ces problèmes ont fait l'objet d'études intensives depuis
de nombreuses années et, bien que l'on ne puisse pas formellement prouver qu'ils
soient impossibles à résoudre à l'aide d'algorithmes de omplexité polynomiale, il est
ouramment onje turé et admis que 'est ee tivement le as. L'intérêt d'utiliser
es problèmes omme base pour des fon tions de ompression réside dans le fait
qu'il est peu vraisemblable que des algorithmes e a es apables de résoudre es

17
Chapitre 2. Constru tions lassiques et leur sé urité

problèmes puissent voir le jour dans un avenir pro he. Cela met théoriquement es
fon tions à l'abri d'attaques dévastatri es telles qu'ont pu les onnaître ertaines des
onstru tions ad ho les plus populaires.
Des fon tions de ha hage ryptographiques dont la sé urité repose sur de tels
problèmes ont été proposées [BM97, CJ98, BAC08, AFG08, ADL08℄. Paradoxale-
ment, ertaines d'entre elles ont subit des attaques peu après leur publi ation. En
eet, les fon tions fondées sur es problèmes sont en général peu performantes par
rapport aux fon tions ad ho , e qui a pu onduire ertains on epteurs à proposer
des paramètres sous-dimensionnés. De plus, la dénition des problèmes réputés di-
iles induit souvent qu'ils le sont pour une instan e du problème tirée aléatoirement.
On parle aussi parfois de di ulté en moyenne, e qui désigne le fait que la plupart
des instan es d'un problème sont di iles à résoudre. Cependant il peut aussi exis-
ter des instan es fa iles même pour un problème di ile. Il est malen ontreusement
arrivé que ertaines fon tions de ha hage proposées utilisaient des paramètres onsti-
tuant une instan e fa ile d'un problème. Enn, la onstru tion hoisie pour mettre
en oeuvre le problème algorithmique peut avoir des onséquen es sur la qualité de la
rédu tion de sé urité. Cependant, les quelques é he s de fon tions de ha hage fondées
sur des problèmes réputés di iles ne remettent pas en ause la validité du prin ipe.

2-3 Extenseur de domaine


Une fon tion de ompression permet d'obtenir une empreinte pour des messages
de taille xée. Une fon tion de ha hage doit de permettre d'obtenir une empreinte
pour des messages de taille arbitraire nie. Les onstru tions itératives utilisent un
algorithme d'extension du domaine de la fon tion de ompression pour atteindre et
obje tif. Cependant, l'algorithme utilisé ne doit pas introduire de nouvelle vulnéra-
bilité et devrait idéalement préserver les propriétés ryptographiques de la fon tion
de ompression.
L'algorithme d'extension de domaine le plus utilisé en pratique est l'algorithme
de Merkle-Damgård. Cependant, de nouvelles onstru tions ont vu le jour durant es
dernières années. Parmi elles- i, les éponges ryptographiques proposées par Bertoni
et al. [BDP06℄ on fait l'objet d'un ertain intérêt de la part de la ommunauté.

2-3.1 Algorithme de Merkle-Damgård


En 1989, Merkle [Mer89℄ et Damgård [Dam89℄ développèrent de façon indépen-
dante un algorithme d'extension de domaine préservant ertaines des propriétés ryp-
tographiques de la fon tion de ompression utilisée. Une illustration graphique de
l'algorithme de Merkle-Damgård se trouve gure 2-3.
Le prin ipe de e que l'on nomme la méta-méthode de Merkle-Damgård est dé rit
par l'Algorithme 2.
La première étape de l'algorithme se nomme rembourrage (Padding ). Ce rem-
bourrage remplit deux obje tifs :
 il permet de ramener la taille du message à ha her à un multiple de r,
 le odage de la longueur exa te du message dans un blo supplémentaire assure,
de plus, qu'au un message ne peut onstituer le préxe d'un autre message.
De façon générale, on parle de rembourrage sans préxe (Prex Free Padding) pour
désigner toute méthode de rembourrage remplissant es deux obje tifs.

18
2-3. Extenseur de domaine

Message à hacher

Message rembourré

x1 x2 xt xt+1

H0 h(x)
f f f f
H1 H2 Ht

Fig. 2-3  Algorithme de Merkle-Damgard.

Algorithm 2 Méta-méthode de Merkle-Damgård


ENTRÉE : une fon tion de ompression f : {0, 1}n × {0, 1}r −→ {0, 1}n résistante
aux ollisions.
SORTIE : une fon tion de ha hage h : {0, 1}∗ −→ {0, 1}n résistante aux ollisions.

Dé ouper un message x de taille b bits en blo s x1 , x2 , . . . , xt de taille r bits en


ajoutant des bits 0 au blo xt si né essaire, et dénir un blo supplémentaire xt+1 ,
destiné à ontenir le odage de la longueur du message.

H0 = 0n {n bits à 0}
i=1
while i ≤ t + 1 do
Hi = f (Hi−1 k xi )
end while
L'empreinte du message x est alors h(x) = Ht+1 = f (Ht k xt+1 ).

Les variables Hi sont appelées variables de haînage, et la variable H0 est qualiée


de valeur initiale (Initial Value ).

19
Chapitre 2. Constru tions lassiques et leur sé urité

En pratique, l'algorithme de Merkle-Damgård se présente sous une forme légè-


rement diérente. Le rembourrage est réalisé en ajoutant un bit à 1 suivi d'autant
de bits à 0 que né essaires an de permettre l'insertion du odage de la longueur
du message sur les dernier bits d'un blo omplet. Le nombre de bits b réservé au
b
odage de la longueur détermine la taille maximale des messages (2 bits). De plus,
la valeur initiale est xée lors de la spé i ation de la fon tion de ha hage.

Préservation de la résistan e aux ollisions. La popularité de l'algorithme


de Merkle-Damgård dé oule de sa apa ité à préserver la résistan e aux ollisions
de la fon tion de ompression. An de démontrer formellement ette propriété nous
introduisons une nouvelle dénition des fon tions de ha hage sous la forme d'une
famille paramétrée par une lé. Cette étape est né essaire an de pouvoir donner
une dénition formelle de la résistan e aux ollisions et démontrer rigoureusement le
théorème de Merkle-Damgård.
On dénit une famille de fon tions de ha hage par une famille de fon tions

H : K × D → R,

où K est l'ensemble des D est l'ensemble de dénition et R l'ensemble d'arrivée.


lés,
Pour une k ∈ K, la fon tion hK : D → R est dénie pour tout M ∈ D
lé parti ulière
par hk (M ) = h(k, M ). Il s'agit de l'instan e de h ara térisée par la lé k.

Dénition 2.1 (Famille de fon tions de ha hage)


Une famille de fon tions de ha hage H est onstituée d'une paire d'algorithmes po-
lynomiaux (Θ, h) satisfaisant les propriétés suivantes :
1. Θ est un algorithme probabiliste prenant en entrée un paramètre de sé urité n
et produisant en sortie une lé k.
2. Il existe un polynme ℓ tel que h prend en entrée une lé k et une haîne de
bits x ∈ {0, 1}∗ et produit en sortie une haîne de bits hk (x) ∈ {0, 1}ℓ(n) .
Si hk est dénie seulement pour des entrées x ∈ {0, 1}ℓ (n) et ℓ′ (n) > ℓ(n), alors nous

dirons que (Θ, h) est une famille de fon tions de ompression prenant en entrée des
haînes de bits de taille ℓ′ (n).

Pour une famille de fon tions de ha hage H = (Θ, h), un adversaire A et un para-
mètre de sé urité n, nous dénissons l'expérien e suivante :

Algorithm 3 Expérien e de re her he de CollA,H (n)


ollision

1. Une lé k est générée à partir de l'algorithme Θ(n).



2. Étant donnée k , l'adversaire A produit deux messages x et x (dans le as d'une

fon tion de ompression, on demande de plus que x, x ∈ {0, 1}
ℓ′ (n) )

3. La sortie de l'expérien e est dénie omme étant égale à 1 si et seulement si


x 6= x′ et hk (x) = hk (x′ ). Dans e as nous disons que A a produit une ollision
pour l'instan e hk .

Nous dénissons à présent la résistan e aux ollisions de la façon suivante :

Propriété 2.1 (Résistan e aux ollisions (famille))


Une famille de fon tions de ha hage H = (Θ, h) est résistante aux ollisions si pour

20
2-3. Extenseur de domaine

tout adversaire probabiliste A polynomial en temps, il existe une fon tion négligeable
g telle que
P r[CollA,H (n) = 1] ≤ g(n)
Nous pouvons dès lors énon er le théorème de Merkle-Damgård :

Théorème 2.1 (Théorème de Merkle-Damgård)


Soit une famille de fon tions de ha hage H = (Θ, h) fondée sur la onstru tion de
Merkle-Damgård, et soit F = (Θ, f ) la famille de fon tions de ompression utilisée.
Si la famille de fon tions de ompression F est résistante aux ollisions, alors la
famille H est résistante aux ollisions.
Preuve. Nous ommençons par prouver que pour tout k, une ollisions pour hk
onduit à une ollision pour fk . Soit x ′
et x deux haînes de bits de longueur b et b′
telles que hk (x) = hk (x′ ). Nous devons onsidérer deux as b 6= b′ et b = b′ .


Cas b 6= b :
Dans e as, la dernière étape du al ul de hk (x) est Ht+1 = fk (Ht k xt+1 ) et
la dernière étape du al ul de hk (x′ ) est

Ht+1 = fk (Ht′′ k x′t′ +1 ). Et omme
hk (x) = hk (x′ ) on a :

fk (Ht k xt+1 ) = fk (Ht′′ k x′t′ +1 ).

Cependant, b 6= b′ d'où xt+1 6= x′t′ +1 et don :


Ht k xt+1 et Ht′′ k x′t′ +1 sont deux haînes de bits diérentes qui forment une
ollision pour fk .
 Cas b = b :

′ ′ ′
Notons tout d'abord que si b = b alors xt+1 = xt+1 . Comme x 6= x et b = b ,

′ ∗
il existe au moins un indi e i pour lequel xi 6= xi . Soit i ≤ t + 1 l'indi e le
′ ′
plus élevé pour lequel Hi∗ −1 k xi∗ 6= Hi∗ −1 k xi∗ .
∗ ′ ′
Si i = t + 1 alors Ht k xt+1 6= Ht k xt+1 sont deux haînes de bits diérentes
qui forment une ollision pour fk ar :

fk (Ht k xt+1 ) = Ht+1 = hk (x) = hk (x′ ) = Ht+1



= fk (Ht′ k xt+1 ).

Si i∗ ≤ t i∗ soit l'indi e le plus élevé implique que Hi∗ = Hi′∗ .


alors le fait que
′ ′
En onséquen e, Hi∗ −1 k xi∗ 6= Hi∗ −1 k xi∗ sont deux haînes de bits diérentes
qui forment une ollision pour fk .
Don étant donné une ollision pour hk , nous pouvons extraire une ollision pour fk ,
lairement en temps polynomial. Nous étendons à présent e résultat pour donner
une rédu tion de sé urité.
A un adversaire pour l'expérien e de re her he de ollision CollA,H (n). Nous
Soit
onstruisons un adversaire A′ pour l'expérien e CollA,F (n) à partir de la dénition

suivante : Lorsque le paramètre k est donné à l'adversaire A , elui- i est transmis à
′ ′
l'adversaire A. Nous ré upérons le ouple (x, x ) fournit par A. Si x 6= x et hk (x) =
′ ′
hk (x ) alors nous extrayons le ouple (y, y ) qui forme une ollision pour fk de la
façon dé rite pré édemment. Dans le as ontraire, l'adversaire é houe à produire
une ollision. Il est évident ompte tenu de la dénition de l'expérien e de re her he
de ollision que l'adversaire A′ réussi à produire une ollision exa tement lorsque
l'adversaire A réussi. On a don :

P r[CollA′ ,F (n) = 1] = P r[CollA,H (n) = 1] ≤ g(n).

21
Chapitre 2. Constru tions lassiques et leur sé urité

Il en dé oule que si la famille F est résistante aux ollisions, alors la famille H est
résistante aux ollisions. 
Il est important de noter que la ré iproque de e théorème est fausse. Il est tout à
fait possible d'envisager l'existen e de fon tions de ha hage résistantes aux ollisions
onstruites à partir de fon tions de ompression qui ne soient pas résistantes aux
ollisions et dont le domaine est étendu ave l'algorithme de Merkle-Damgård.

Attaque par extension (Extension Atta k ). L'attaque par extension n'est


pas à proprement parler une attaque ; il s'agit en fait d'une faiblesse inhérente à
la stru ture itérative de l'algorithme de Merkle-Damgård. Soit une fon tion de ha-
hage h, utilisant l'algorithme de Merkle-Damgård omme extenseur de domaine. La
onnaissan e de l'empreinte h(M ) d'un message M qui après appli ation du rem-
bourrage donne X = X1 , . . . , Xt , peut être utilisée pour onstruire l'empreinte d'un

message parti ulier M = X||N , où N est quel onque. En eet, ette empreinte
h(M ) onstitue la sortie de la dernière itération de la fon tion de ompression f :
h(M ) = f (Ht−1 , Xt ). On peut don al uler la valeur de h(M ′ ) en prenant h(M )
omme nouvelle valeur initiale.
Cette propriété invalide l'utilisation de l'algorithme de Merkle-Damgård pour la
onstru tion d'un MAC-préxe [PVO96℄. De plus, ette propriété permet de distin-
guer trivialement la fon tion h d'un ora le aléatoire.
L'attaque par extension ne onstitue pas la seule vulnérabilité de l'algorithme de
Merkle-Damgård. La se tion 2-5.2 présente un ertains nombres de vulnérabilités qui
s'appliquent à et algorithme.

2-3.2 Autres extenseurs de domaine


Pour palier aux vulnérabilités de l'algorithme de Merkle-Damgård, de nouvelles
propositions d'extenseurs de domaine ont vu le jour es dernières années. Les al-
gorithmes Wide-Pipe et Double-Pipe [Lu 05℄ ont été introduits par Lu ks en 2005
pour résister aux attaques de multi- ollisions. Ces onstru tions onsistent essentiel-
lement à augmenter la taille de la variable de haînage. Le système HAIFA [BD06℄
de Biham et Dunkelman onsiste à ajouter un sel (Salt ) et un ompteur à haque
itération de la fon tion de ompression. Ces propositions ont pour obje tif de rendre
les onstru tions itératives résistantes aux nouvelles attaques génériques apparues
depuis la proposition de l'algorithme de Merkle-Damgård.
Une autre dire tion de re her he, plus théorique, onsiste à proposer des exten-
seurs de domaine sus eptibles de préserver le plus grand nombre possible de proprié-
tés de la fon tion de ompression. Les propositions EMD [BR06℄ et ROX [ANP07℄ en
sont des exemples, pour lesquels les auteurs ont démontré les qualités de leurs algo-
rithmes. Cependant an de rédiger des preuves formelles, es propositions se fondent
non pas sur une unique fon tion de ompression mais sur une famille de fon tions de
ompressions.

Éponges ryptographiques (Cryptographi Sponges ). Les onstru tions de


type éponges ryptographiques ont été introduites en 2006 par Bertoni et al. [BDP06℄.
L'obje tif a hé de es onstru tions est de fournir une fon tion de ha hage aussi
pro he que possible d'un ora le aléatoire. Il s'agit d'une onstru tion itérative, mais

22
2-4. Autres onstru tions

Message Haché

p p p p
c

Absorption Essorage

Fig. 2-4  Éponges ryptographiques.

fondée sur une transformation de longueur xe p (plus pré isément une permuta-
tion) à la pla e d'une fon tion de ompression. Une fon tion éponge prend omme
argument en entrée une haîne de bits de longueur variable et produit en sortie une
haîne de bits de longueur arbitraire.
Cette onstru tion opère sur un état onstitué de b=r+c bits, où le nombre r
est appelé taux de bits (Bitrate ) et le nombre la apa ité (Capa ity ). Le message
à traiter est tout d'abord rembourré et dé oupé en blo s de r bits. La onstru tion
éponge pro ède alors en deux étapes :

 une première étape d'absorption qui onsiste à remplir l'éponge en utilisant


les blo s de message,
 puis une se onde étape d'essorage (Squeezing ) qui onsiste à presser l'éponge
pour obtenir en sortie le nombre de bits désiré.

La apa ité c détermine le niveau de sé urité sus eptible d'être atteint par la fon tion
de ha hage. Une illustration graphique du prin ipe des éponges ryptographiques se
trouve gure 2-4.
Les arguments de sé urité de e type de onstru tion sont fondés sur le modèle
de l'indiérentiabilité (Indierentiability Framework ) qui a été introduit par Maurer
et al. [MRH04℄ et que nous dé rivons se tion 2-5.3. Les auteurs ont montré dans
[BDP08a℄ que si la fon tion p est modélisée en tant que permutation aléatoire ou
en tant qu'ora le aléatoire, la onstru tion éponge est indiérentiable d'un ora le
aléatoire monolithique.

2-4 Autres onstru tions


Les onstru tions itératives bien qu'employées dans une très large majorité des
fon tions de ha hage ryptographiques, ne sont pas les seules onstru tions à avoir
été proposées. On peut iter par exemple la onstru tion du ha hage par paquet (Bu-
ket Hashing ) introduite en 1995 par Rogaway [Rog95℄. Le paradigme de randomi-

23
Chapitre 2. Constru tions lassiques et leur sé urité

Root Hash

Message

Fig. 2-5  Arbres de Merkle.

sation puis ombinaison (Randomize-then-Combine Paradigm ) introduit par Bellare


et Mi ian io [BM97℄ onstitue un autre exemple. La fon tion XOR-Hash, dé rite au
hapitre 9, est fondée sur e paradigme.

Arbres de Merkle. Les arbres de Merkle ont été introduits par Ralph Merkle en
1979 [Mer79b℄, dans le but de onstruire un s héma de signature éle tronique fondé
sur les fon tions de ha hage. Mais des primitives ryptographiques plus e a es,
fondées sur la théorie des nombres (RSA, DSA, ECC), ont rendu obsolète les arbres
de Merkle pour e domaine d'utilisation. Le prin ipe des arbres de Merkle onsiste à
onstruire un arbre de ha hage à partir d'une fon tion de ha hage et de données. Les
feuilles de l'arbre sont les empreintes des diérents blo s de données ; les noeuds de
l'arbre sont onstitués par les empreintes de leur ls respe tifs. Au sommet de l'arbre,
on trouve l'empreinte ra ine (Root Hash ). Une illustration graphique du prin ipe des
arbres de Merkle se trouve gure 2-5. La plupart des implémentations d'arbre de
Merkle utilisent des arbres binaires, mais le prin ipe peut être étendu aux arbres
q -aires.
Les arbres de Merkle sont intensivement employés dans les réseaux pair à pair
(Peer-to-Peer Networks ). Avant de ommen er le télé hargement d'un  hier, l'em-
preinte ra ine est obtenue d'une sour e de onan e : par exemple, le site internet
fournisseur de l'appli ation pair à pair. Lorsque l'empreinte ra ine a été obtenue,
l'arbre de ha hage peut être reçu et vérié à partir de n'importe laquelle des sour es
du réseau. Cet arbre permet de vérier l'intégrité des données au fur et à mesure
de la transmission des diérentes parties d'un  hier. Il sut de onnaître le noeud
se situant à la hauteur orrespondante dans l'arbre, pour vérier une sous-bran he
de l'arbre ou un fragment de  hier. Un autre avantage des arbres de Merkle réside
dans leur nature parallélisable.

24
2-5. Sé urité des onstru tions

2-5 Sé urité des onstru tions


2-5.1 Attaques génériques
Nous détaillons i i les deux types d'attaques génériques sus eptibles d'être appli-
quées aux fon tions de ha hage. Ces attaques s'appliquent à toutes les fon tions de
ha hage indépendamment de la façon dont elles sont onstruites. Elles onstituent
les référen es à laquelle sont omparées les omplexités des attaques visant à mettre
en défaut une des trois propriétés lassiques.

Paradoxe des anniversaires. L'attaque du paradoxe des anniversaires est une


attaque générique qui permet d'obtenir une paire de messages formant une ollision.
Soit h une fon tion de ha hage de {0, 1}∗ vers {0, 1}n . L'adversaire onstruit deux
ensembles E1 et E2 , de taille respe tivement #E1 et #E2 , onstitués de ouples
de messages tous diérents et de leurs empreintes. La probabilité qu'un message
appartenant à E1 et un message appartenant à E2 possèdent la même empreinte est

#E1 × #E2
P ≈ 1 − exp .
2n

En parti ulier, si #E1 = #E2 = 2n/2 alors

1
P ≈1− = 0, 63.
e

La omplexité algorithmique d'une telle attaque est don de l'ordre de O(2n/2 ) éva-
luations de la fon tion de ha hage.

Une fon tion de ha hage ryptographique est onsidérée omme  assée dès lors
que l'on peut produire une attaque par ollision possédant une omplexité inférieure
à l'attaque du paradoxe des anniversaires.

Attaques par for e brute. Ce type d'attaque on erne les propriétés de résis-
tan e à la re her he d'anté édent et de se ond anté édent. Soit h une fon tion de

ha hage de {0, 1} vers {0, 1}n . L'adversaire tire aléatoirement un message, al ule
son empreinte et vérie si elle- i orrespond à l'empreinte désirée. Si la fon tion de
ha hage se omporte omme une fon tion pseudo-aléatoire, la probabilité de su ès
n
est égale à 1/2 . La probabilité de su ès d'une telle attaque peut être améliorée
en augmentant le nombre de messages tirés. Si l'adversaire al ule l'empreinte de 2n
messages diérents, la probabilité de su ès est approximativement égale à 0, 63.
En pratique, e type d'attaque est parallélisable. De plus, un adversaire peut
onstruire ette attaque simultanément pour un sous-ensemble d'empreintes pos-
sibles, ave pour obje tif de ne trouver qu'un seul anté édent. La omplexité de
l'attaque est alors réduite par la taille du sous-ensemble visé.

De la même façon que pour l'attaque par paradoxe des anniversaires, une fon tion
de ha hage est onsidérée omme assée dès lors qu'il existe une attaque par re her he
d'anté édent, ou de se ond anté édent, possédant une omplexité meilleure que O(2n )
évaluations de la fon tion de ha hage.

25
Chapitre 2. Constru tions lassiques et leur sé urité

2-5.2 Attaques spé iques


Les attaques génériques dé rites dans la se tion pré édente s'appliquent à toutes
les fon tions de ha hage. Lors de la des ription de l'algorithme de Merkle-Damgård
nous avons remarqué que et algorithme, bien que le plus populaire, possède ertaines
vulnérabilités. Nous dé rivons i i, les attaques développées spé iquement ontre
l'algorithme de Merkle-Damgård. Ces attaques sont sus eptibles d'être appliquées à
d'autres fon tions de ha hage itératives.

Attaque des Multi- ollisions. Dans une tentative d'augmenter la sé urité, il a


été proposé de réer une nouvelle fon tion de ha hage en on aténant les sorties de
deux fon tions de ha hage diérentes. Soient deux fon tions de ha hage résistantes
aux h produisant des empreintes de taille n bits et g produisant des em-
ollisions :
preintes de taille m bits. La fon tion de ha hage hg dénie par hg(M ) = h(M )||g(M )
produit des empreintes de taille n + m bits. La fon tion hg est résistante aux ol-
lisions, si on ne peut onstruire une attaque possédant une omplexité inférieure à
n+m
O(2 2 ) évaluations de la fon tion de ha hage hg.
Cependant, Antoine Joux a démontré en 2004 [Jou04℄ que si l'une au moins des
deux fon tions on aténées est une fon tion itérative, il existe une attaque stri -
tement meilleure que l'attaque générique. Cette attaque repose sur le prin ipe des
multi- ollisions. Une k-multi- ollision est un ensemble de k messages possédant la
même empreinte (le k = 2 orrespond à une ollision lassique). Sans perte de
as où
généralité on peut supposer que la fon tion h est la fon tion itérative fondée sur l'al-
gorithme de Merkle-Damgård. L'attaque des multi- ollisions onsiste à onstruire une
m/2-multi- ollision pour h. La première étape onsiste à obtenir une ollision pour
la fon tion de ompression de h ave omme variable de haînage l'IV , ette ollision
est obtenue après O(2n/2 ) évaluations de la fon tion de ompression de h. A partir
de la nouvelle variable de haînage on onstruit, de la même façon, une deuxième
ollision pour la fon tion de ompression ; on répète l'opération m/2 fois. Ces m/2
ollisions aboutissent à 2m/2 messages diérents possédant la même empreinte, soit
une m/2-multi- ollision pour h pour un oût égal à O( m
2 ×2
n/2 ) évaluations de la

fon tion de ompression de h. De plus, parmi es 2


m/2 messages diérents, le para-

doxe des anniversaires nous indique qu'il y a une forte probabilité que deux d'entre
eux onstituent une ollision pour g. Finalement, on obtient une ollision pour la
n+m
fon tion hg ave un oût inférieur à O(2 2 ) évaluations de ette fon tion. Une
illustration de l'attaque des multi- ollisions est proposée gure 2-6.

Amélioration de la re her he de se ond anté édent. Pour une fon tion de


ha hage idéale produisant des empreintes de taille n bits, une attaque par re her he
de se ond anté édent né essite O(2n ) évaluations de la fon tion de ha hage. Ce-
pendant, Dean [Dea99℄ a remarqué que ette propriété n'est pas satisfaite par les
fon tions de ha hage itératives dès lors que l'on peut fa ilement trouver des points
xes pour la fon tion de ompression. Kelsey et S hneier [KS05℄ ont montré que l'on
peut onstruire un se ond anté édent en moins de O(2n ) évaluations de la fon tion
de ompression sans utiliser de points xes. Pour des messages longs onstitués de 2k
blo s, il est possible de trouver un se ond anté édent ave une omplexité de l'ordre
de O(k × 2n/2 + 1 + 2n−k+1 ) évaluations de la fon tion de ompression.

26
2-5. Sé urité des onstru tions

M1 M2 Mm/2

n H0 H1 H2 Hm/2


M1′ M2′ Mm/2
g h
M1 M1′

M2 M2′ M2 M2′

′ ′
Mm/2 Mm/2 Mm/2

Fig. 2-6  Prin ipe de l'attaque des multi- ollisions.

Le prin ipe de ette attaque s'appuie sur des messages extensibles (Expandable
Messages ) qui sont des ensembles de messages de longueurs diérentes. Ils sont utili-
sés pour onstruire des messages de taille variable onduisant à une même variable de
haînage avant insertion du blo ontenant le odage de la longueur. On peut onsi-
dérer un message extensible omme une multi- ollision où les messages possèdent un
nombre de blo s diérent, mais onduisent tous à une même variable de haînage.

Un message extensible produisant des messages de taille variant entre k et 2k +


k + 1 blo s permet de trouver un se ond anté édent pour un message long omposé
de 2k + k + 1 blo s. L'attaque onsiste à sto ker l'ensemble des variables de haînage
intermédiaires puis à tenter de lier la variable de haînage nale du message extensible
à l'une des variables de haînage du message original. Lorsqu'un lien est trouvé, il est
toujours possible d'ajuster le message extensible an qu'il présente la même longueur
que la première partie du message original, de son début jusqu'à l'endroit où le lien
a été trouvé. On obtient don deux messages longs de même longueur et présentant
une ollision des variables de haînage à un ertain point. On on atène alors au
message extensible la n du message original e qui onduit à l'obtention de la même
empreinte. Ce pro essus est illustré gure 2-7.

La omplexité totale est égale à O(k × 2n/2 + 1 + 2n−k+1 ). Le premier terme est
dû à la génération du message extensible, le se ond dé rit la omplexité né essaire
pour trouver un lien entre le message extensible et une des variables de haînage du
message original.

Attaque de Nostradamus (Herding Atta k ). L'attaque de Nostradamus in-


troduite par Kelsey et Kohno[KK06℄ permet à un adversaire de s'engager, après avoir

27
Chapitre 2. Constru tions lassiques et leur sé urité

Message initial

Valeur commune de
variable de chaînage
Message extensible

Fig. 2-7  Attaque de Kelsey et Shneier.

a ompli une étape de pré- al ul, sur une ertaine valeur onstituée par l'empreinte
d'un message publié à posteriori. Plus tard, l'adversaire produit pour tout message,
un suxe on ordant ave et engagement. Le prin ipe de ette attaque repose sur
une stru ture de données pré- al ulée qui permet à 2k séquen es de blo s de mes-
sage de onverger de façon itérative vers la même empreinte. Pour une fon tion de
ha hage fondée sur l'algorithme de Merkle-Damgård, le oût de ette attaque est
n+k
+2 n−k ) (en ligne) évaluations de la fon tion de
de O(2 2 ) (en pré- al ul) et de O(2
ompression.
Lors de l'attaque, l'adversaire s'engage sur une empreinte publique e obtenue à
partir d'un fon tion de ha hage itérative h fondée sur une fon tion de ompression f.
Après la phase d'engagement, un hallenge est proposé sous la forme d'un préxe P
sur lequel l'adversaire ne possède au un ontrle. Il doit alors produire un suxe S
tel que h(P ||S) = e. La valeur e est hoisie spé iquement par l'adversaire après une
phase de pré- al ul. Ce pré- al ul onsiste à enregistrer des variables de haînage à
partir desquelles l'adversaire sait pouvoir atteindre la valeur e. La stru ture de don-
nées utilisée pour enregistrer les variables de haînage est un arbre binaire onstruit à
l'aide d'un algorithme de re her he de ollision. En utilisant par exemple le paradoxe
des anniversaires, on peut réer une stru ture en diamant ave 2k+1 − 2 variables
n+k
+2
de haînage intermédiaires, pour un oût de l'ordre de O(2 2 ) évaluations de la
fon tion de ompression f. Une illustration de la stru ture en diamant est donnée
gure 2-8.
Dans la phase en ligne de l'attaque, l'adversaire re her he de façon exhaustive
un suxe S′ tel que h(P ||S ′ ) forme une ollision ave une des variables de haînage
intermédiaires. Cette étape requiert de tester de l'ordre de O(2
n−k ) valeurs pour S′.
Une fois ette ollision trouvée, l'adversaire peut obtenir à partir de la stru ture en
diamant un message Q, et onstruire le suxe S = S ′ ||Q, de taille k+1 blo s, tel
que h(P ||S) = e.
Andreeva et al.[ABD09, ABF08℄ ont proposé plusieurs extensions et généralisa-
tions pour ette attaque.

2-5.3 Modèle de l'indiérentiabilité


Le modèle de l'ora le aléatoire [BR93℄ est traditionnellement employé an de
onstruire des preuves de sé urité pour les proto oles ryptographiques. Dans e

28
2-5. Sé urité des onstru tions

e
IV HP 2k

S′ Q
P S

Fig. 2-8  Attaque de Kelsey et Kohno.

modèle, on donne à toutes les parties impliquées dans le proto ole, y ompris l'ad-
versaire, un a ès à une vraie fon tion aléatoire. Mais une telle fon tion n'existe pas
en pratique. Aussi, lors de la mise en oeuvre du proto ole, ette fon tion aléatoire est
instan iée sous la forme d'une fon tion de ha hage idéale. Les preuves formelles obte-
nues dans le modèle de l'ora le aléatoire indiquent qu'il n'existe pas de défaut stru -
turel dans le design du proto ole. Cependant, de ré ents résultats [CGH98, Nil02℄
montrent qu'il est théoriquement possible de onstruire des as pathologiques qui
sont sûrs dans e modèle mais omplètement non-sûrs dans le modèle standard. Mal-
gré ela, le modèle de l'ora le aléatoire reste un outil essentiel pour le design de
proto oles.

Des her heurs se sont intéressés à l'appli ation du modèle de l'ora le aléatoire
au design de fon tions de ha hage, et plus parti ulièrement aux fon tions de ha hage
itératives. C'est le as de Coron et al. [CDM05℄ qui se sont pen hés sur l'algorithme
de Merkle-Damgård. Pour e faire, ils ont utilisé le modèle de l'indiérentiabilité
(Indierentiability Framework ) introduit par Maurer et al. [MRH04℄ en 2004.

De par sa nature, une fon tion de ha hage itérative est trivialement distinguable
d'un ora le aléatoire, en utilisant par exemple une attaque par extension (dé rite
dans la hapitre suivant). Ce i est dû au fait qu'un ora le aléatoire est une stru ture
monolithique, onstituée d'un seul blo , ontrairement à une fon tion de ha hage
itérative. L'obje tif du modèle de l'indiérentiabilité onsiste don à ontourner e
problème à l'aide d'un simulateur. De façon informelle, pour prouver l'indiéren-
tiabilité d'une onstru tion C fondée sur une primitive idéale F par rapport à un
ora le aléatoire R, S . La fon tion du simulateur S onsiste
on utilise un simulateur
à simuler le omportement de la C , tout en maintenant une onsistan e
onstru tion
ave l'ora le aléatoire R. Dès lors qu'il n'existe pas de distingueur D apable de
distinguer
F R
les sorties des ouples (C , F ) et (R, S ), la onstru tion C est dites in-
diérentiable d'un ora le aléatoire. Une illustration graphique du prin ipe du modèle
de l'indiérentiabilité se trouve gure 2-9.

Ce modèle permet de montrer qu'un extenseur de domaine parti ulier n'introduit

29
Chapitre 2. Constru tions lassiques et leur sé urité

Monde Algorithmique Monde Aléatoire

Simulateur
CF F
R
SR

Distingueur
D

Fig. 2-9  Modèle de l'indiérentiabilité. Les boîtes grisées représentent des primi-
tives idéales, les boîtes vides des algorithmes.

pas de faiblesse stru turelle supplémentaire, lorsqu'il est appliqué à une fon tion de
ompression idéale. Bien qu'introduite ré emment, l'indiérentiabilité est aujourd'hui
une des propriétés formelles que se doivent de posséder les fon tions de ha hage
ryptographiques itératives.

30
Deuxième partie

Cryptanalyse des fon tions SHA-0


et SHA-1

31
3

Présentation des fon tions SHA-0


et SHA-1

Sommaire
3-1 Prin ipe de fon tionnement . . . . . . . . . . . . . . . 33
3-1.1 Extenseur de domaine . . . . . . . . . . . . . . . . . . 33
3-1.2 Fon tion de ompression . . . . . . . . . . . . . . . . . 34
3-2 Sé urité de la fon tion SHA-0 . . . . . . . . . . . . . 36
3-3 Sé urité de la fon tion SHA-1 . . . . . . . . . . . . . 37
Les fon tions de ha hage ryptographiques SHA-0 et SHA-1 ont toutes deux été
rées par l'agen e nationale de sé urité améri aine (National Se urity Agen y ) et
publiées par le NIST en tant que standard fédéral de traitement de l'information
(FederalInformation Pro essing Standard ). Le premier standard baptisé SHA (Se-
ure Hash Standard ) fut adopté en 1993. Cependant en 1995, la NSA demanda une
modi ation de la pro édure d'expansion de message. Cette nouvelle version hérita
de l'appellation SHA-1, et l'an ien standard fût rebaptisé SHA-0.
Dans e hapitre, nous allons dé rire le prin ipe de fon tionnement ommun
aux deux fon tions de ha hage SHA-0 et SHA-1, nous donnerons ensuite un bref
historique de l'évolution de la sé urité de es fon tions relativement aux attaques
par ollisions.

3-1 Prin ipe de fon tionnement


3-1.1 Extenseur de domaine
Les fon tions SHA-0 et SHA-1 sont des fon tions de ha hage itératives utilisant
l'algorithme de Merkle-Damgård omme extenseur de domaine appliquée à une fon -
tion de ompression ad ho .
Le message destiné à être ha hé est soumis à un rembourrage (Padding ) et dé-
oupé en k blo s (M0 , . . . , Mk−1 ) de taille 512 bits. À haque itération de la fon tion
de ompression h, une variable de haînage Ht de taille 160 bits est mise à jour à
partir d'un blo de message Mt+1 , i.e Ht+1 = h(Ht , Mt+1 ). La variable de haînage
initiale H0 (Initial Value ) est xe et prédénie ; la sortie de la fon tion de ha hage
est la dernière variable de haînage Hk .

33
Chapitre 3. Présentation des fon tions SHA-0 et SHA-1

A B C D E

0x67452301 0xef dab89 0x98bad fe 0x10325476 0x 3d2e1f0

Tab. 3-1  Valeurs d'initialisation utilisées dans SHA-0 et SHA-1.

Rembourrage (Padding ).
Le rembourrage utilisé pour les fon tions SHA-0 et SHA-1 onsiste à ajouter un
1 après le dernier bit du message puis à ajouter autant de 0 que né essaire an
d'obtenir un nombre entier de blo s de 512 bits, ave la ondition supplémentaire
que les 64 derniers bits du dernier blo ontiennent la représentation binaire de la
taille du message exprimée en nombre de bits. Cette taille est don limitée à un
maximum de 264 − 1 bits. En plus de fournir un nombre entier de blo s de 512 bits
à la fon tion de ompression, e rembourrage permet de garantir qu'au un message
ne puisse onstituer le préxe d'un autre message.

Valeurs d'initialisation (Initial Values ).


Les valeurs prédénies pour la variable de haînage initiale sont identiques pour
SHA-0 et SHA-1. Elles sont dénies Table 3-1.

3-1.2 Fon tion de ompression


La fon tion de ompression utilisée est onstruite sur le prin ipe de Davis-Meyer.
Elle utilise une fon tion ad-ho E omme s héma de hirement par blo , où les
variables de haînage su essives onstituent les paires lair/ hiré et où les diérents
blo s de message jouent le rle de lé. Un rebou lage (Feed-Forward ) est utilisé an
d'éviter une inversion dire te de la fon tion de ompression. On a don :

Ht+1 = E(Ht , Mt+1 ) ⊞ Ht ,

où la notation ⊞ dénote une addition modulo 232 mot de 32 bits par mot de 32 bits.
La fon tion E se fonde sur un état interne mis à jour selon un s héma de Feistel
asymétrique généralisé. Une représentation graphique de ette fon tion se trouve
gure 3-1.
Elle est omposée de 80 pas (4 rondes de 20 pas), haque pas utilise un mot de 32
bitsWi (soit un total de 80 × 32 = 2560 bits) pour mettre à jour 5 registres internes
(A, B, C, D, E) de 32 bits ha un. Étant donné que plus de bits de message que
disponibles sont né essaires, une pro édure d'expansion ré ursive est utilisée pour
générer les bits surnuméraires. La diéren e entre les fon tions SHA-0 et SHA-1
réside dans ette pro édure d'expansion.

Expansion de message.
Tout d'abord, le blo de message ourant Mt est dé oupé en 16 mots de 32
bits numérotés de 0 à 15 : W0 , . . . , W15 . Ces 16 mots sont ensuite étendus selon les
formules suivantes :

SHA − 0 : Wi = Wi−16 ⊕ Wi−14 ⊕ Wi−8 ⊕ Wi−3 ave 16 ≤ i ≤ 79. (3-1)

34
3-1. Prin ipe de fon tionnement

Ai Bi Ci Di Ei

fi Ki
≪ 30
≪5 Wi−1

Ai+1 Bi+1 Ci+1 Di+1 Ei+1

Fig. 3-1  Fon tion de mise à jour des registres ommune à SHA-0 et SHA-1.

ronde pas i fi (B, C, D) Ki


1 1 ≤ i ≤ 20 fIF = (B ∧ C) ⊕ (B ∧ D) 0x5a827999
2 21 ≤ i ≤ 40 fXOR = B ⊕ C ⊕ D 0x6ed6eba1
3 41 ≤ i ≤ 60 fM AJ = (B ∧ C) ⊕ (B ∧ D) ⊕ (C ∧ D) 0x8fabb d
4 61 ≤ i ≤ 80 fXOR = B ⊕ C ⊕ D 0x a62 1d6

Tab. 3-2  Fon tions booléènes et onstantes utilisées dans SHA-0 et SHA-1.

SHA − 1 : Wi = (Wi−16 ⊕ Wi−14 ⊕ Wi−8 ⊕ Wi−3 ) ≪ 1 ave 16 ≤ i ≤ 79. (3-2)

où la notation ≪1 signie une permutation ir ulaire de 1 bit vers la gau he. Nous
verrons dans la partie onsa rée aux ryptanalyses de SHA-0 et SHA-1 que ette
modi ation, d'apparen e mineure, a un impa t majeur sur la sé urité et déterminant
sur es ryptanalyses.

Mise à jour des registres.


En premier lieu, la variable de haînage Ht est dé oupée en 5 mots de 32 bits
an de fournir les états initiaux (A0 , B0 , C0 , D0 , E0 ) des 5 registres. Alors, la trans-
formation suivante est appliquée 80 fois, i variant de 0 à 79 :



 Ai+1 = (Ai ≪ 5) + fi (Bi , Ci , Di ) + Ei + Ki + Wi ,


Bi+1 = Ai ,


P ASi+1 : Ci+1 = Bi ≫ 2,




 Di+1 = Ci ,


Ei+1 = Di .

où les Ki sont des onstantes de ronde prédéterminées et les fi des fon tions booléènes
dénies table 3-2.

35
Chapitre 3. Présentation des fon tions SHA-0 et SHA-1

Rebou lage (Feed-Forward ).


Les sommes modulo 232 : (A0 +A80 ), (B0 +B80 ), (C0 +C80 ), (D0 +D80 ), (E0 +E80 )
sont on aténées pour former la variable de haînage suivante Ht+1 .

Remarque.
On remarque que pour un pas i, les états de tous les registres ne sont que des
opies ir ulairement permutées de diérents états du registre A. On peut don
onsidérer uniquement l'évolution des états du seul registre A pour haque pas. En
onséquen e, il est possible de ré rire la fon tion de mise à jour des registres sous la
forme suivante :

Ai+1 = (Ai ≪ 5) + fi (Ai−1 , Ai−2 ≫ 2, Ai−3 ≫ 2) + Ai−4 ≫ 2 + Ki + Wi .

Nous serons amenés dans la suite, à favoriser l'une ou l'autre forme d'é riture de la
fon tion de mise à jour des registres dans l'obje tif de hoisir la plus laire façon de
présenter l'information.

3-2 Sé urité de la fon tion SHA-0


Publiée en 1993, la fon tion SHA-0 fut mise à jour par la National Se urity
Agen y (NSA) en 1995 pour donner la fon tion SHA-1. Le but de la modi ation
apportée à la fon tion d'expansion de message ne fut jamais publié, bien qu'il soit
fa ile de voir que l'introdu tion de la permutation ir ulaire assure une meilleure
diusion. C'est en 1998 que Chabaud et Joux [CJ98℄ publièrent la première attaque
par ollision théorique ontre SHA-0, ave une omplexité évaluée à 261 appels à
la fon tion de ompression. Il s'agit d'une ryptanalyse diérentielle fondée sur une
propriété parti ulière de la fon tion de mise à jour des registres dénommée ollision
lo ale. Pour la fon tion SHA-1, l'introdu tion d'une meilleure diusion au niveau de
l'expansion du message, permettait d'éviter une transposition dire te de l'attaque de
Chabaud et Joux.
Le prin ipe de ette attaque fût repris en 2004 par Biham et Chen [BC04℄ qui
introduisirent une te hnique d'a élération de re her he fondée sur l'existen e de
bits neutres (dé rits se tion 5-6). L'utilisation des bis neutres permit de produire des
quasi- ollisions pour SHA-0. L'année suivante la première ollision fut obtenue par
une équipe de her heurs [BCJ05℄ après inq semaines de al uls sur de nombreux or-
dinateurs. La omplexité de ette attaque est évaluée à 251 évaluations de la fon tion
de ompression de SHA-0. La te hnique utilisée s'appuie sur les deux ryptanalyses
pré édentes et l'utilisation de la te hnique des blo s multiples présentée se tion 5-5.
En 2005, les travaux de Wang et al. [WYY05d℄ introduisirent une nouvelle ap-
pro he de la ryptanalyse diérentielle de SHA-0 ainsi que des te hniques supplé-
mentaires ( ara téristique non-linéaire détaillée se tion 5-4, modi ations de message
dé rites se tion 5-6) qui permirent d'obtenir une ollision ave une omplexité annon-
ée à 2
39 appels de la fon tion de ompression. Naito et al. [NSS06℄ proposèrent en
2006 de nouvelles modi ations de message permettant une amélioration théorique
de l'attaque.
La meilleure attaque par ollision publiée ontre la fon tion SHA-0 est l'attaque
que nous avons menée en ommun ave Thomas Peyrin [MP08℄ qui est dé rite au

36
3-3. Sé urité de la fon tion SHA-1

hapitre 6 de ette thèse. La omplexité en ligne de ette attaque orrespond à


environ 2
33 appels à la fon tion de ompression de SHA-0.
Le standard SHA-0, trop rapidement modié en SHA-1, n'a pratiquement pas
été utilisé par l'industrie.

3-3 Sé urité de la fon tion SHA-1


La fon tion SHA-1 a longtemps résisté aux ryptanalystes e qui lui a valu de de-
venir la fon tion de ha hage ryptographique la plus utilisée dès lors qu'un impératif
de sé urité était né essaire. En eet, les attaques ontre la fon tion SHA-0 menées
par Chabaud et Joux, et Biham et Chen n'étaient appli ables qu'à des versions très
réduites de SHA-1. Cependant, e ne fût pas le as des travaux de Wang et al.
[WYY05b℄. Les nouvelles te hniques introduites dans leur arti le ont été transposées
e a ement et ont permis de proposer la première attaque par ollision théorique
ave une omplexité revendiquée égale à 2
69 évaluations de la fon tion de ompres-

sion. Une nouvelle omplexité pour l'attaque fût ensuite annon ée à 2


63 appels de la

fon tion de ompression [WYY05a, WYY05 ℄.


S'étayant sur es travaux, de nouvelles ryptanalyses ont été menées. De Cannière
et Re hberger [DCR06℄ ont exhibé une première ollision pour une version réduite à
64 pas, bientt suivie de ollisions pour une version réduite à 70 pas, par De Cannière
et al. [DCM07℄ et Joux et Peyrin [JP07℄. Un al ul distribué a été lan é à l'initiative
de Mendel et al. [MRR07℄, ave une omplexité annon ée inférieure à 261 appels de
la fon tion de ompression de SHA-1 ; e al ul n'a toujours pas abouti.
Au moment ou nous rédigeons ette thèse, deux nouvelles ollisions ont été sou-
mises sur le serveur ePrint [Gre10℄. La première s'applique à une version réduite à
72 pas ave une omplexité de 250 appels de la fon tion de ompression et la se onde
à une version réduite à 73 pas ave une omplexité de 252 appels de la fon tion de
ompression. Au une ollision pour la version normalisée de SHA-1 n'a en ore été
publiée.
L'utilisation de la fon tion SHA-1 en tant que standard de ha hage pour le gou-
vernement améri ain a été interdite par le NIST après 2010, bien que son utilisation
en tant que ode d'authenti ation (HMAC), fon tion de dérivation de lé et géné-
rateur pseudo-aléatoire soit en ore autorisée.

37
Chapitre 3. Présentation des fon tions SHA-0 et SHA-1

38
4

Prin ipe des ryptanalyses de


SHA-0 et SHA-1

Sommaire
4-1 Cryptanalyses diérentielles des fon tions de ha-
hage ryptographiques . . . . . . . . . . . . . . . . . 39
4-2 Modèle des ollisions lo ales . . . . . . . . . . . . . . 40
4-2.1 Approximation linéaire de la fon tion de mise à jour
des registres . . . . . . . . . . . . . . . . . . . . . . . . 40
4-2.2 Fon tion de mise à jour des registres standard . . . . . 45
4-3 Chemin diérentiel . . . . . . . . . . . . . . . . . . . . 46
4-3.1 Ve teur de perturbations . . . . . . . . . . . . . . . . . 46
4-3.2 Masque de perturbations . . . . . . . . . . . . . . . . . 47
4-3.3 Cara téristique linéaire (Linear Chara teristi ). . . . . 48
4-4 Mise en oeuvre du modèle . . . . . . . . . . . . . . . 48
4-4.1 Appro he probabiliste . . . . . . . . . . . . . . . . . . . 49
4-4.2 Appro he déterministe . . . . . . . . . . . . . . . . . . 50
4-4.3 Hypothèse d'indépendan e . . . . . . . . . . . . . . . . 50
4-4.4 Évaluation du omportement d'une ollision lo ale . . 51

4-1 Cryptanalyses diérentielles des fon tions de ha hage


ryptographiques
En 1990, Eli Biham et Adi Shamir ont introduit la notion de ryptanalyse dié-
rentielle [BS90℄. En utilisant ette nouvelle méthode, Biham et Shamir onstruisirent
une attaque à lair hoisi, stri tement plus e a e que la re her he exhaustive, ontre
l'algorithme de hirement par blo s DES (Data En ryption Standard ) [FIPS-DES℄.
La ryptanalyse diérentielle traite spé iquement des paires de textes hirés dont
les textes lairs orrespondants présentent ertaines diéren es parti ulières. Elle
analyse l'évolution de es diéren es à travers les diérentes rondes du DES. Le
terme "diéren e" est déni, dans le adre de la ryptanalyse du DES, par l'opéra-
tion ou ex lusif bit a bit.
La ryptanalyse diérentielle appliquée à des algorithmes de hirement a pour
but de retrouver la lé de hirement. Dans le adre des fon tions de ha hage,

39
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

on emploie la ryptanalyse diérentielle pour obtenir une ollision ou une quasi-


ollision. Les premières appli ations de la ryptanalyse diérentielle aux fon tions
de ha hage ryptographiques furent elles menées ontre N-HASH [MOI90℄ et SNE-
FRU [Mer90℄. Ces deux attaques, menées par Biham et Shamir, sont dé rites dans
[BS91a℄ et [BS91b℄. En 2004, Wang et al. [WFL04℄ ont appliqué ave su ès e type
de ryptanalyse à plusieurs fon tions de ha hage dont MD5 et RIPE-MD.
Le prin ipe de l'attaque diérentielle des fon tions de ha hage onsiste dans
une première étape à déterminer un ensemble de diéren es (la diérentielle) entre
deux messages sus eptibles de onduire à l'obtention d'une ollision ou d'une quasi-
ollision. La se onde étape onsiste à produire un ouple de messages vériant ette
diérentielle et onduisant au résultat attendu. La omplexité de e type d'attaque
est en général évaluée par l'inverse de la probabilité qu'un message tiré aléatoirement
et qu'un message obtenu à partir du premier et de la diérentielle, forment une olli-
sion (une quasi- ollision). Cette omplexité est, le plus souvent, exprimée en nombre
d'instan iations de la fon tion de ha hage.
La ryptanalyse diérentielle est aujourd'hui un outil prépondérant utilisé par
les ryptologues pour onstruire des attaques ontre les fon tions de ha hage ryp-
tographiques.

4-2 Modèle des ollisions lo ales


Les attaques diérentielles menées ontre SHA-0 et SHA-1 ont pour point om-
mun de se fonder sur une propriété parti ulière de la fon tion de mise à jour des
registres : les ollisions lo ales. En eet, Wang [Wan97℄, ainsi que Chabaud et Joux
[CJ98℄, ont montré de façon indépendante que l'introdu tion d'une perturbation à un
pas i, pouvait être orrigée par l'introdu tion aux pas suivants d'autres perturbations
appelées orre tions.

4-2.1 Approximation linéaire de la fon tion de mise à jour des re-


gistres
Pour illustrer ette propriété, nous allons nous intéresser à une version linéaire
de la fon tion de mise à jour des registres fondée sur deux hypothèses. La première
hypothèse onsiste à linéariser les fon tions de ronde fi et les additions modulo 232
en remplaçant elles- i par l'addition bit à bit modulo 2 (xor ) sur des mots de 32
bits. Les formules de mise à jour des registres peuvent alors être énon ées de la façon
suivante :



 Ai+1 = Ai ≪ 5 ⊕ Bi ⊕ Ci ⊕ Di ⊕ Ei ⊕ Ki ⊕ Wi ,


Bi+1 = Ai ,


P ASi+1 : Ci+1 = Bi ≪ 30,


Di+1 = Ci ,




Ei+1 = Di ,

soit :

Ai+1 = Ai ≪ 5 ⊕ Ai−1 ⊕ Ai−2 ≪ 30 ⊕ Ai−3 ≪ 30 ⊕ Ai−4 ≪ 30 ⊕ Ki ⊕ Wi .

40
4-2. Modèle des ollisions lo ales

La se onde hypothèse onsidère que l'on peut intervenir sur les mots de message
étendu Wi indépendamment du pro essus d'expansion dont ils sont issus. Cela permet
d'appliquer simplement, une perturbation à un bit j d'un mot Wi−1 quel que soit le
pas onsidéré i de la fon tion de ompression.

L'idée fondamentale pour onstruire une ollision lo ale onsiste à perturber à


un pas i un mot Wi−1 et à examiner les eets de ette perturbation sur les états
des registres des pas suivants. Un exemple de perturbation peut onsister à ee tuer
un xor ave la représentation binaire sur 32 bits de 2j an de perturber le j -ème
bit d'un mot de 32 bits, e qui revient à réaliser le omplément à 1 du bit j . Il
s'agit du type de perturbation utilisé dans les premières ryptanalyses menées ontre
la fon tion SHA-0 [Wan97, CJ98℄. Nous introduisons i i une remarque sur laquelle
nous reviendrons de façon détaillée au hapitre 5 se tion 5-2. Cette façon de générer
une perturbation permet de dénir une dire tion pour ette perturbation. Un bit dont
la valeur initiale égale à 0 est modiée en la valeur 1 onstitue e que nous dénirons
être une perturbation montante. Ré iproquement, un bit égal à 1 modié en 0
onstitue une perturbation des endante.

Une fois la perturbation initiale introduite, l'obje tif est alors d'en neutraliser les
eets sur les états des registres. Pour e faire, on pro ède à l'introdu tion de nou-
velles perturbations hoisies spé iquement (des orre tions) sur les mots de message
expansés des pas suivants (Wi , Wi+1 , . . .).
Nous allons à présent détailler pas à pas un exemple de ollision lo ale. Dans une
première appro he, nous emploierons la des ription de la fon tion de mise à jour des
registres utilisant la notation (A, B, C, D, E).
j
Nous introduisons la notationXi an d'indiquer que le bit j du mot de 32 bits X
a subi une perturbation au pas i. Nous hoisissons de dénir la numérotation des
bits d'un mot en ommençant par ae ter le numéro 0 au bit de poids faible, puis
en in rémentant jusqu'au numéro 31 pour le bit de poids fort. Nous remarquons que
les permutations ir ulaires induisent seulement un dépla ement de la position d'un
bit perturbé. On a pour 0 ≤ n ≤ 31 :

Xi ≪ n = Xi ≫ (32 − n)
et
j j+n
Xi ≪ n = Xi ≪ n,
j j−n
Xi ≫ n = Xi ≫ n.

De plus, es permutations n'altèrent pas la dire tion des perturbations. Cette re-
marque est vraie pour des perturbations onsidérées de façon indépendante. Cepen-
dant, ertaines te hniques utilisées lors des ryptanalyses peuvent introduire des per-
turbations altérant plusieurs bits onsé utifs ave des ontraintes spé iques (te h-
niques de ompression de bits par exemple). Dans es as, les permutations ir ulaires
peuvent interagir ave es ontraintes. Elles doivent alors faire l'objet d'un traitement
parti ulier.

41
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

Pas i :
Au pas i, nous introduisons une perturbation
en omplémentant à 1 le bit j de Wi−1 . Nous
obtenons :
j Ai−1 Bi−1 Ci−1 Di−1 Ei−1
Ai = (Ai−1 ≪ 5) ⊕ Bi−1 ⊕ Ci−1 ⊕ Di−1 ⊕
j
Ei−1 ⊕ Wi−1 ⊕ Ki , Ki
Bi = Ai−1 , ≪ 30

Ci = Bi−1 ≪ 30, ≪5 Wi−1


Di = Ci−1 ,
Ei = Di−1 .
Dans ette version linéaire de la fon tion de Ai Bi Ci Di Ei
mise à jour des registres, on onstate qu'il ré-
sulte de la perturbation du bit j de Wi−1 la
perturbation du seul bit j de Ai qui devient
j
Ai .

Pas i + 1 :
La perturbation du bit j du registre Ai devrait
être réper utée au pas i + 1 sur le bit j + 5 de
Ai+1 ainsi que sur le bit j de Bi+1 . Or on Ai Bi Ci Di Ei
obtient :
j j+5
Ai+1 = (Ai ≪ 5) ⊕ Bi ⊕ Ci ⊕ Di ⊕ Ei ⊕ Wi ⊕ Ki+1
Ki+1 , ≪ 30
j j
Bi+1 = Ai , ≪5 Wi
Ci+1 = Bi ≪ 30,
Di+1 = Ci ,
Ei+1 = Di . Ai+1 Bi+1 Ci+1 Di+1 Ei+1
En omplémentant à 1 le bit j + 5 de Wi
on orrige la perturbation réée par le terme
j
(Ai ≪ 5) et don Ai+1 n'est pas altéré.

Pas i + 2 :
Au pas i + 2, la perturbation du bit j de Bi+1
se transmet au bit j + 30 de Ci+2 . On a :
j
Ai+1 Bi+1 Ci+1 Di+1 Ei+1
Ai+2 = (Ai+1 ≪ 5) ⊕ Bi+1 ⊕ Ci+1 ⊕ Di+1 ⊕
j
Ei+1 ⊕ Wi+1 ⊕ Ki+2 , Ki+2
≪ 30
Bi+2 = Ai+1 ,
j+30 j ≪5 Wi+1
Ci+2 = Bi+1 ≪ 30,
Di+2 = Ci+1 ,
Ei+2 = Di+1 . Ai+2 Bi+2 Ci+2 Di+2 Ei+2
De la même façon qu'au pas i + 1, on orrige
j
la perturbation introduite par le terme Bi+1
en omplémentant à 1 le bit j de Wi+1 .

42
4-2. Modèle des ollisions lo ales

Pas i + 3 :
La perturbation du bit j +30 de Ci+2 se trans-
met au bit j + 30 de Di+3 . On a : Ai+2 Bi+2 Ci+2 Di+2 Ei+2
j+30
Ai+3 = (Ai+2 ≪ 5) ⊕ Bi+2 ⊕ Ci+2 ⊕ Di+2 ⊕
j+30 Ki+3
Ei+2 ⊕ Wi+2 ⊕ Ki+3 , ≪ 30
Bi+3 = Ai+2 , ≪5 Wi+2
Ci+3 = Bi+2 ≪ 30,
j+30 j+30
Di+3 = Ci+2 ,
Ei+3 = Di+2 . Ai+3 Bi+3 Ci+3 Di+3 Ei+3
j
On orrige la perturbation issue du terme Ci+2
en omplémentant à 1 le bit j + 30 de Wi+2 .

Pas i + 4 :
On a :
j+30
Ai+4 = (Ai+3 ≪ 5) ⊕ Bi+3 ⊕ Ci+3 ⊕ Di+3 ⊕ Ai+3 Bi+3 Ci+3 Di+3 Ei+3
j+30
Ei+3 ⊕ Wi+3 ⊕ Ki+4 ,
Ki+4
Bi+4 = Ai+3 ,
≪ 30
Ci+4 = Bi+3 ≪ 30,
≪5 Wi+3
Di+4 = Ci+3 ,
j+30 j+30
Ei+4 = Di+3 .
La perturbation du bit j +30 de Di+3 se trans- Ai+4 Bi+4 Ci+4 Di+4 Ei+4
met au bit j + 30 de Ei+4 . La orre tion de
j+30
Di+3 s'ee tue en omplémentant à 1 le bit
j + 30 de Wi+3 .

Pas i + 5 :
On a : Ai+4 Bi+4 Ci+4 Di+4 Ei+4
Ai+5 = (Ai+4 ≪ 5) ⊕ Bi+4 ⊕ Ci+4 ⊕ Di+4 ⊕
j+30 j+30 Ki+5
Ei+4 ⊕ Wi+4 ⊕ Ki+5 , ≪ 30
Bi+5 = Ai+4 ,
≪5 Wi+4
Ci+5 = Bi+4 ≪ 30,
Di+5 = Ci+4 ,
Ei+5 = Di+4 .
Ai+5 Bi+5 Ci+5 Di+5 Ei+5
La dernière orre tion onsiste à omplémen-
ter à 1 le bit j + 30 de Wi+4 .

43
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

Ai+5 Bi+5 Ci+5 Di+5 Ei+5

Pas i + 6 : Ki+6
≪ 30
Au pas i + 6, les états des registres sont les
mêmes que s'il n'y avait pas eu de perturba- ≪5 Wi+5
tion. La perturbation initiale a été entièrement
orrigée par les perturbations suivantes.
Ai+6 Bi+6 Ci+6 Di+6 Ei+6

On peut aussi dé rire le déroulement d'une ollision lo ale en fon tion du seul
registre A :

j j
Ai = (Ai−1 ≪ 5) ⊕ Ai−2 ⊕ Ai−3 ≫ 2 ⊕ Ai−4 ≫ 2 ⊕ Ai−5 ≫ 2 ⊕ Ki ⊕ Wi−1
j+5 j+5
Ai+1 = (Ai ≪ 5) ⊕ Ai−1 ⊕ Ai−2 ≫ 2 ⊕ Ai−3 ≫ 2 ⊕ Ai−4 ≫ 2 ⊕ Ki+1 ⊕ Wi
j j
Ai+2 = (Ai+1 ≪ 5) ⊕ Ai ⊕ Ai−1 ≫ 2 ⊕ Ai−2 ≫ 2 ⊕ Ai−3 ≫ 2 ⊕ Ki+2 ⊕ Wi+1
j + 30 j + 30
Ai+3 = (Ai+2 ≪ 5) ⊕ Ai+1 ⊕ Ai ≫ 2 ⊕ Ai−1 ≫ 2 ⊕ Ai−2 ≫ 2 ⊕ Ki+3 ⊕ Wi+2
j + 30 j + 30
Ai+4 = (Ai+3 ≪ 5) ⊕ Ai+2 ⊕ Ai+1 ≫ 2 ⊕ Ai ≫ 2 ⊕ Ai−1 ≫ 2 ⊕ Ki+4 ⊕ Wi+3
j + 30 j + 30
Ai+5 = (Ai+4 ≪ 5) ⊕ Ai+3 ⊕ Ai+2 ≫ 2 ⊕ Ai+1 ≫ 2 ⊕ Ai ≫ 2 ⊕ Ki+5 ⊕ Wi+4

Ai+6 = (Ai+5 ≪ 5) ⊕ Ai+4 ⊕ Ai+3 ≫ 2 ⊕ Ai+2 ≫ 2 ⊕ Ai+1 ≫ 2 ⊕ Ki+6 ⊕ Wi+5

La séquen e de perturbations qui apparaissent dans les équations des états de e


registre onstitue e que l'on nomme un hemin diérentiel.

4-2.1.1 Con lusion


Nous venons don de dé rire une perturbation et une séquen e de inq orre tions
appropriées qui forment une ollision lo ale pour une version linéaire de la fon tion
de mise à jour des registres ommune à SHA-0 et SHA-1. Les séquen es de mots de
message expansé :
(Wi−1 , Wi , Wi+1 , Wi+2 , Wi+3 , Wi+4 )
et
j j+5 j j+30 j+30 j+30
(Wi−1 , Wi , Wi+1 , Wi+2 , Wi+3 , Wi+4 )
onduisent toutes deux à un même état pour les inq registres, e qui onstitue bien
une ollision.
Une autre façon de onsidérer une ollision lo ale onsiste à dire que pour une
version linéaire de la fon tion de mise à jour des registres réduite à 6 pas, nous avons
onstruit une diérentielle

∆ =< 2j , 2j+5 , 2j , 2j+30 , 2j+30 , 2j+30 >

44
4-2. Modèle des ollisions lo ales

telle que le ouple de messages W =< W0 , W1 , W2 , W3 , W4 , W5 > et W′ = W ⊕ ∆


forme une ollision.
De plus, pour ette version linéaire de la fon tion de mise à jour des registres,
le modèle se omporte de façon idéale. Pour tout ouple (M, M ′ ), nous obtiendrons
une ollision lo ale ave une probabilité égale à 1. Ce qui ne sera plus le as dès lors
que les parties non-linéaires de la fon tion de mise à jour des registres, l'addition
modulo 232 ainsi que les fon tions IF et M AJ , interviendrons.

4-2.2 Fon tion de mise à jour des registres standard


Nous venons de vérier que le modèle de ollision lo ale fon tionne parfaitement
pour une version linéaire de la fon tion de mise à jour des registres ommune au deux
fon tions SHA-0 et SHA-1. À présent, il onvient de s'intéresser aux éléments non-
linéaires de ette fon tion qui sont sus eptibles d'altérer ou d'invalider e modèle :
l'addition modulo 232 et les fon tions de ronde fi .

4-2.2.1 Addition modulo 232


L'un des éléments qui induisent une diéren e de omportement par rapport
à la version totalement linéaire de la fon tion de mise à jour des registres réside
dans l'addition modulo 232 . En eet, ette addition peut entraîner l'apparition de
retenues, et don propager une perturbation sur un bit d'indi e j vers d'autres bits
d'indi es supérieurs. Si on onsidère la perturbation initiale et les inq orre tions qui
en dé oulent, ha une de es manipulations est sus eptible lors du al ul de l'état du
registre d'amener la réation d'une retenue. Cependant, la notion de dire tion de per-
turbation que nous avons brièvement dé rite peut être utilisée pour éviter la réation
de ertaines retenues en introduisant un mé anisme de ompensation des perturba-
tions. De plus, une façon dire te de diminuer l'impa t des retenues onsiste à hoisir
judi ieusement le bit j que l'on va altérer. En eet, on peut noter que trois des or-
re tions ont lieu sur le bit j + 30 et en hoisissant j = 1, es orre tions s'ee tueront
sur le bit 31 qui est le bit le plus signi atif. Or s'agissant d'une addition modulo 232 ,
une éventuelle retenue apparaissant au niveau du bit numéro 31 est ignorée. C'est
pourquoi, les auteurs des premières attaques diérentielles ontre les fon tions SHA-0
et SHA-1 ont hoisi de privilégier omme séquen e de perturbation/ orre tions pour
1 6 1 31 31 31
une ollision lo ale initiée au pas i : (Wi−1 , Wi , Wi+1 , Wi+2 , Wi+3 , Wi+4 ). Cependant,
de possibles retenues peuvent toujours apparaître pour les positions de bit 1 et 6.

4-2.2.2 Fon tions de ronde IF et M AJ


Considérons à présent, l'impa t des fon tions de rondes. Pour une version de la
fon tion de mise à jour des registres où l'addition modulo 232 est rempla ée par
l'addition bit à bit modulo 2 sur des mots de 32 bits, et où les fon tions de ronde
sont in hangées, les équations sur les états des registres s'é rivent :

Ai = (Ai−1 ≪ 5) ⊕ fi (Bi−1 , Ci−1 , Di−1 ) ⊕ Ei−1 ⊕ Wi−1 ⊕ Ki ,


Bi = Ai−1 ,
Ci = Bi−1 ≪ 30,
Di = Ci−1 ,

45
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

Ei = Di−1 .
ave
fi = IF pour i ∈ {1, . . . , 20} (ronde 1),
fi = XOR pour i ∈ {21, . . . , 40} ∪ {61, . . . , 80} (rondes 2 et 4),
fi = M AJ pour i ∈ {41, . . . , 60} (ronde 3).
On peut tout d'abord remarquer que pour les rondes 2 et 4, la fon tion fi utilisée étant
la fon tion XOR, on se ramène à la version linéaire de la fon tion de mise à jour des
registres. En onséquen e, pour la version standard de la fon tion de mise à jour des
registres, le omportement que nous avons détaillé ne sera ae té que par l'addition
modulo 232 pour es deux rondes. Pour les rondes 1 et 3, les fon tions utilisées sont
respe tivement la fon tion IF et la fon tion M AJ et es deux fon tions ne sont pas
linéaires. Elles possèdent la parti ularité de pouvoir absorber une perturbation : une
perturbation présente sur un bit d'un de leurs arguments peut ne pas être réper utée
sur la sortie de la fon tion. Ce omportement est sus eptible d'altérer le hemin
diérentiel de telle sorte qu'il soit impossible d'obtenir une ollision lo ale : nous
parlerons alors de hemin diérentiel impossible. De plus, si l'on onsidère la dire tion
d'une perturbation, ha une de es trois fon tions est sus eptible de modier la
dire tion d'une perturbation, e qui peut invalider les mé anismes de ompensation
des perturbations.

4-3 Chemin diérentiel


Re her her une ollision pour la fon tion de ompression de SHA-0 ou de SHA-1,
revient à onstruire un hemin diérentiel pour les 80 pas de la fon tion de ompres-
sion. Ce hemin diérentiel est onstitué par les perturbations issues des séquen es
de ollisions lo ales introduites au moyen des mots de message expansés, es olli-
sions lo ales pouvant de plus se hevau her. Pour onstruire un hemin diérentiel, il
faut identier un ensemble approprié de points de départ pour ha une des ollisions
lo ales. Ce qui nous onduit à introduire les notions de ve teur de perturbations, de
masque de perturbations et de ara téristique linéaire.

4-3.1 Ve teur de perturbations


Lors de l'étude de la version linéaire de mise à jour des registres, nous avons posé
omme hypothèse que nous pouvions intervenir sur les mots de message étendu Wi
indépendamment du pro essus d'expansion dont ils sont issus. Nous devons à présent
prendre en ompte le fait que les mots Wi sont issus d'un pro essus d'expansion.
En eet, la relation de ré urren e de SHA-0 (3-1) (respe tivement SHA-1 (3-2))
réper utera les perturbations appliquées sur les 16 premiers mots W0 , . . . , W15 à
l'ensemble des mots expansés.
Pour dénir les points de départ de ha une des ollisions lo ales, on dénit
un ve teur représentant les indi es des pas où seront initiées les perturbations. Ce
ve teur, appelé ve teur de perturbations (Disturban e Ve tor ), est onstitué de 80
mots de 32 bits dont les oordonnées non nulles indiquent les positions où une ollision
lo ale est initiée. De plus an de se onformer au pro essus d'expansion, on impose
que les oordonnées de e ve teur vérient la relation de ré urren e (3-1) pour SHA-0
ou (3-2) pour SHA-1.

46
4-3. Chemin diérentiel

L'équation ré ursive dénissant l'expansion utilisée pour SHA-0 n'est omposée


que d'additions modulo 2 sur 32 bits. Il en dé oule que ha une des oordonnées des
mots expansés peuvent être obtenues parallèlement. En onséquen e, on peut hoisir
de positionner toutes les oordonnées non nulles du ve teur de perturbation sur une
même position de bit j. Pour la fon tion SHA-0, un tel ve teur se dénit alors de la
façon suivante :

V = (V0 , . . . , V79 ),
 j
 (2 )x si et seulement si on initie
 une perturbation lo ale sur

ave Vi = le bit j au pas i + 1,




0x sinon.

Dans le as de la fon tion SHA-1, la permutation ir ulaire induit une diusion


des perturbations sur des positions de bit diérentes. Nous pouvons toujours dénir
notre ve teur de perturbations, mais il n'est plus possible de limiter les oordonnées
non nulles à une seule proje tion. Nous entrevoyons i i, la diéren e fondamentale
du point de vue de la ryptanalyse entre SHA-0 et SHA-1. Nous reviendrons plus
largement sur e point au hapitre 5 se tion 5-3.
On peut dès à présent faire la remarque suivante : dans le modèle de ollision
lo ale, une perturbation démarrant au pas i ne peut être totalement orrigée avant le
pas i + 6. En onséquen e, an d'obtenir une ollision pour l'ensemble de la fon tion
de ompression, toutes les perturbations se doivent d'avoir été orrigées au pas 80,
e qui impose pour le ve teur de perturbations les onditions supplémentaires :

V79 = V78 = V77 = V76 = V75 = 0x .

Cette ondition n'est né essaire que dans le as où l'on re her he une ollision sur une
seule itération de la fon tion de ompression. Si l'on souhaite aboutir à une quasi-
ollision, par exemple dans le but d'utiliser la te hnique des ollisions multiples, on
peut s'aran hir de ette ontrainte.

4-3.2 Masque de perturbations


Le ve teur de perturbations représente les points de départ des ollisions lo ales.
On souhaite, à partir de e ve teur, dénir le masque de perturbations P, onstitué
de 80 mots de 32 bits, à appliquer au message expansé W pour onstruire le message
W ′ = W ⊕ P . Le masque de perturbations représente les perturbations initiales ainsi
que les séquen es de orre tions.
Cependant, pour dénir de façon générale e masque, il faut étendre le ve teur
de perturbations ave inq nouvelles oordonnées V−1 , V−2 , V−3 , V−4 et V−5 , le as
V−1 = V−2 = V−3 = V−4 = V−5 = 0x signiant qu'il n'y a pas, sur les inq premiers
mots Wi , d'altération due à des orre tions. On peut alors dénir le masque de
perturbations de la façon suivante :

P = (P0 , . . . , P79 ),
ave pour i = 0, . . . , 79,
Pi = Vi ⊕ (Vi−1 ≪ 5) ⊕ Vi−2 ⊕ (Vi−3 ≫ 2) ⊕ (Vi−4 ≫ 2) ⊕ (Vi−5 ≫ 2).

47
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

Le premier terme Vi orrespond aux perturbations initiales et les termes suivants


(Vi−1 ≪ 5), Vi−2 , (Vi−3 ≫ 2), (Vi−4 ≫ 2) et (Vi−5 ≫ 2), aux séquen es de
orre tions à appliquer.

Pour s'assurer que le message W′ puisse appartenir à l'ensemble image du pro-


essus d'expansion, on impose que le masque de perturbations vérie une relation de
ré urren e identique :

SHA-0 : Pi = Pi−3 ⊕ Pi−8 ⊕ Pi−14 ⊕ Pi−16 ave 11 ≤ i ≤ 79,


SHA-1 : Pi = (Pi−3 ⊕ Pi−8 ⊕ Pi−14 ⊕ Pi−16 ) ≪ 1 ave 11 ≤ i ≤ 79.

On remarque que pour les inq indi es négatifs il s'agit de perturbations vir-
tuelles. Bien qu'au une perturbation ne puisse réellement exister avant le premier
pas de la fon tion de ompression, on prend en ompte les indi es négatifs pour la
onstru tion du masque de perturbations. Des oordonnées non nulles sur les inq
premiers Pi seront alors interprétées omme des orre tions de perturbations vir-
tuelles. Dans la littérature onsa rée, e phénomène est dénommé ollisions lo ales
tronquées (Trun ated Lo al Collisions ). Compte tenu de ette remarque, il est fa ile
de voir que la donnée des oordonnées (V0 , . . . , V15 ) dénit omplètement le masque
de perturbations.

4-3.3 Cara téristique linéaire (Linear Chara teristi ).


La notion de ara téristique linéaire a été introduite par De Cannière et Re h-
berger dans leur arti le de 2006 [DCR06℄. Cette notion est dénie par opposition à
une ara téristique non-linéaire que nous détaillerons au hapitre 5 se tion 5-4. La
dénomination linéaire dé oule du fait que ette ara téristique possède une probabi-
lité de su ès égale à 1 pour la version totalement linéaire de la fon tion de mise à
jour des registres. Pour ette version, il est fa ile de voir que le hemin diérentiel
suivi par les diérents états du registre A est le même que elui dé rit par le ve teur
de perturbation. Il orrespond au as où toutes les ollisions lo ales introduites se
omportent idéalement.

Cependant, la ara téristique linéaire dé rite dans l'arti le De Cannière et Re h-


berger in lut de plus, des informations supplémentaires liées à la ryptanalyse. Ces
informations se présentent sous la forme de onditions imposées à ertains bits des
mots de message expansés. Par extension, on utilisera le terme de ara téristique
linéaire pour dé rire selon le ontexte, le ve teur de perturbations et/ou le hemin
diérentiel.

4-4 Mise en oeuvre du modèle


Nous avons souligné dans les se tions pré édentes que le omportement d'une
ollision lo ale était fortement inuen é par d'une part l'addition modulo 232 et
d'autre part par les fon tions de ronde IF et M AJ . Nous allons à présent nous
intéresser plus parti ulièrement au traitement de es fon tions en diéren iant deux
appro hes que nous qualierons d'appro he probabiliste et d'appro he déterministe.

48
4-4. Mise en oeuvre du modèle

4-4.1 Appro he probabiliste


C'est elle qui fût utilisée dans les premières ryptanalyses de SHA-0, [Wan97℄,
[CJ98℄ puis [BC04℄. Elle onsiste à évaluer la probabilité que les fon tions de ronde
IF et M AJ aient un omportement identique à la fon tion XOR.
Si nous hoisissons par exemple de dénir la probabilité que la valeur de sortie
de la fon tion IF reste in hangée lorsque ses arguments sont modiés, par rapport
à ette même probabilité pour la fon tion XOR, le omportement de la fon tion IF
peut s'exprimer de la façon suivante :

j
P r[IF (X, Y, Z) = IF (X, Y, Z)] = 1/2,
j
P r[IF (X, Y, Z) = IF (X, Y , Z)] = 1/2,
j
P r[IF (X, Y, Z) = IF (X, Y, Z)] = 1/2,
j j
P r[IF (X, Y, Z) = IF (X, Y , Z)] = 1/2,
j j
P r[IF (X, Y, Z) = IF (X, Y, Z)] = 1/2,
j j
P r[IF (X, Y, Z) = IF (X, Y , Z)] = 0,
j j j
P r[IF (X, Y, Z) = IF (X, Y , Z)] = 1/2.
Et le omportement de la fon tion XOR, quant à lui s'é rit :

j
P r[XOR(X, Y, Z) = XOR(X, Y, Z)] = 0,
j
P r[XOR(X, Y, Z) = XOR(X, Y , Z)] = 0,
j
P r[XOR(X, Y, Z) = XOR(X, Y, Z)] = 0,
j j
P r[XOR(X, Y, Z) = XOR(X, Y , Z)] = 1,
j j
P r[XOR(X, Y, Z) = XOR(X, Y, Z)] = 1,
j j
P r[XOR(X, Y, Z) = XOR(X, Y , Z)] = 1,
j j j
P r[XOR(X, Y, Z) = XOR(X, Y , Z)] = 0.
On remarque que es probabilités re ouvrent tous les as possibles ar nous avons
aaire à des fon tions qui n'entrela ent pas les bits (fon tions bit à bit). La fon tion
IF se omporte omme la fon tion XOR ave une probabilité égale à 1/2 sauf pour
le as où X et Y sont modiés simultanément sur la même position de bit. Alors, la
fon tion IF ne se omportera jamais omme la fon tion XOR, e qui onstitue un
exemple de hemin diérentiel impossible.
Le prin ipe d'une attaque diérentielle fondée sur une appro he probabiliste
onsistera don à éviter les hemins diérentiels impossibles et à évaluer la probabi-
lité de bon omportement pour ha une des fon tions IF et M AJ , et pour haque
ollision lo ale dénie par le ve teur de perturbations. Une fois e travail réalisé, on
peut évaluer la omplexité de l'attaque omme une fon tion de l'inverse du produit
de toutes es probabilités.

49
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

4-4.2 Appro he déterministe


Dans ette appro he, on ne her he plus à évaluer la probabilité que les fon tions
IF et M AJ se omportent omme la fon tion XOR, mais à déterminer des onditions
susantes sur leurs arguments pour prévoir le omportement de leur sortie. Cette
appro he est elle initiée par Wang dans [Wan98℄.
Prenons là en ore la fon tion IF omme exemple. La fon tion IF prend omme
arguments trois mots de 32 bits et retourne un mot de 32 bits :

∀X, Y et Z ∈ {0, 1}32 IF (X, Y, Z) = (X ∧ Y ) ∨ (¬X ∧ Z).


Cependant omme nous l'avons déjà remarqué, les opérations utilisées dans le al ul
de IF (X, Y, Z) sont des opérations bit à bit, on peut don onsidérer la fon tion IF
omme la on aténation de 32 instan es d'une fon tion élémentaire if :

∀x, y et z ∈ {0, 1} if (x, y, z) = (x ∧ y) ∨ (¬x ∧ z).


On a alors, pour tout X , Y et Z dans {0, 1}32 tels que X = (x0 , x1 , . . . , x31 ), Y =
(y0 , y1 , . . . , y31 ) et Z = (z0 , z1 , . . . , z31 ) :
IF (X, Y, Z) =< if (x0 , y0 , z0 ), if (x1 , y1 , z1 ), . . . , if (x31 , y31 , z31 ) > .
On peut appliquer le même prin ipe pour les fon tions XOR et M AJ .
Voi i alors une des ription partielle du omportement de la fon tion élémentaire
if :

if (x, y, z) = if (¬x, y, z) si y = z,
= ¬if (¬x, y, z) si y = ¬z,
= if (x, ¬y, z) si x = 0,
= ¬if (x, ¬y, z) si x = 1,
= if (x, y, ¬z) si x = 1,
= ¬if (x, y, ¬z) si x = 0,
6= if (x, ¬y, ¬z) dans tous les as.

Le prin ipe d'une attaque diérentielle fondée sur l'appro he déterministe onsiste
don à énumérer toutes les onditions susantes pour que les fon tions de rondes
aient un omportement en adéquation ave le modèle de ollision lo ale. On évalue
alors la omplexité de l'attaque omme une fon tion du nombre total de onditions
à vérier.

4-4.3 Hypothèse d'indépendan e


La nature de es deux appro hes tient au point de vue hoisi pour aborder le
problème. La première appro he résulte d'une démar he idéaliste alors que la se onde
résulte d'une démar he empirique. Cependant, es deux appro hes reposent sur la
même hypothèse d'indépendan e : l'entrela ement de diérentes ollisions lo ales ne
génère pas d'eets de bord autres que eux pris en ompte dans les deux appro hes.
Or diérents travaux, ainsi que les expérimentations réalisées durant la dernière
année de ette thèse ont démontré qu'il existait des intera tions supplémentaires.
Nous reviendrons plus largement sur e point au hapitre 8.

50
4-4. Mise en oeuvre du modèle

4-4.4 Évaluation du omportement d'une ollision lo ale


L'addition modulo 232 ainsi que les parties non linéaires de la fon tion de mise
à jour des registres inuent sur le omportement du modèle de la ollision lo ale.
Dans ertain as, on pourra même aboutir à un hemin diérentiel impossible. Nous
détaillons à présent un exemple d'évaluation du omportement d'une ollision lo ale
selon les deux appro hes que nous venons d'introduire et en prenant omme hypo-
thèse que la ollision lo ale que nous onsidérons se déroule au sein de la ronde 1
(IF ).
Si nous appliquons la ara téristique linéaire d'une ollision lo ale à la version
standard de la fon tion de mise à jour des registres, un omportement idéal pourrait
être dé rit de la façon suivante :

j j
Ai+1 = (Ai ≪ 5) + IF (Ai−1 , Ai−2 ≫ 2 , Ai−3 ≫ 2) + Ai−4 ≫ 2 + Ki + Wi
j+5 j+5
Ai+2 = (Ai+1 ≪ 5) + IF (Ai , Ai−1 ≫ 2 , Ai−2 ≫ 2) + Ai−3 ≫ 2 + Ki+1 + Wi+1
j j
Ai+3 = (Ai+2 ≪ 5) + IF (Ai+1 , Ai ≫ 2 , Ai−1 ≫ 2) + Ai−2 ≫ 2 + Ki+2 + Wi+2
j + 30 j + 30
Ai+4 = (Ai+3 ≪ 5) + IF (Ai+2 , Ai+1 ≫ 2 , Ai ≫ 2) + Ai−1 ≫ 2 + Ki+3 + Wi+3
j + 30 j + 30
Ai+5 = (Ai+4 ≪ 5) + IF (Ai+3 , Ai+2 ≫ 2 , Ai+1 ≫ 2) + Ai ≫ 2 + Ki+4 + Wi+4
j + 30 j + 30
Ai+6 = (Ai+5 ≪ 5) + IF (Ai+4 , Ai+3 ≫ 2 , Ai+2 ≫ 2) + Ai+1 ≫ 2 + Ki+5 + Wi+5

Évaluons alors le omportement de ette ollision lo ale :

1. Pour que la première des 6 équations que nous venons d'é rire soit vériée, il
sut que la transmission de la perturbation introduite au mot Wi se fasse sans
retenue. Cette ondition est vériée ave une probabilité égale à 1/2 si l'on
onsidère l'angle probabiliste et orrespond à la ondition ai+1,j = wi,j selon
le point de vue déterministe.

2. Pour la deuxième équation, on remarque que si la première équation est véri-


ée, la se onde le sera également si l'on prend la pré aution d'imposer que la
orre tion introduite sur le bit j + 5 de Wi+1 soit de dire tion opposée à la
perturbation introduite sur le bit j de Wi , e que l'on peut représenter sous la
ondition wi+1,j+5 = ¬wi,j . À noter que ette ondition est sous le ontrle de
l'attaquant puisque elle ne dépend que des mots de message expansés ; e type
de ondition n'entre don pas en ompte dans l'évaluation du omportement
d'une ollision lo ale. Il faudra ependant prendre garde à la véri ation des
onditions de e type lors de la onstru tion ee tive d'une attaque.

3. La troisième équation voit l'apparition de l'a tion de la fon tion de ronde. Pour
que ette équation soit vraie, il sut que dans un premier temps la perturbation
présente sur le registre Ai+1 ne soit pas absorbée par la fon tion de ronde. Puis
dans un se ond temps, la perturbation issue de la sortie de la fon tion IF et
la orre tion introduite par le mot Wi+2 doivent se ompenser. Si nous nous
ramenons aux des riptions du omportement de la fon tion IF données aux
se tions pré édentes, nous onstatons que dans le as qui nous intéresse (il
existe une perturbation sur un bit du premier argument de la fon tion), d'un
point de vue probabiliste la fon tion se omportera de façon identique à la

51
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

fon tion XOR ave une probabilité égale à 1/2. Du point de vue déterministe,
si la ondition ai,j+30 6= ai−1,j+30 est vériée alors la perturbation ne sera pas
absorbée. Cependant, la fon tion IF peut préserver ou inverser la dire tion de
la perturbation e qui peut ompromettre la ompensation des perturbations,
même si une ontrainte onsistant à imposer que la orre tion introduite sur
le bit j de Wi+2 soit de dire tion opposée à la dire tion de la perturbation
introduite sur le bit j de Wi est utilisée. Il existe alors deux solutions pour
traiter le problème :
 ne pas imposer de ontrainte sur la dire tion de la perturbation du bit j
de Wi+2 et onsidérer une probabilité supplémentaire de 1/2 pour que la
fon tion IF préserve la dire tion,
 imposer la wi+2,j = ¬wi,j
ontrainte et transformer la ondition déterministe
en ai,j+30 6 ai−1,j+30 = 1.
=
Finalement, la troisième équation est vériée ave une probabilité égale à 1/4
ou si la double ondition ai,j+30 6= ai−1,j+30 = 1 est vériée.

4. Pour la quatrième et la inquième équation, le omportement de la fon tion


IF hange : une perturbation sur le deuxième ou le troisième argument de la
fon tion est soit absorbée, soit préservée ave la bonne dire tion. Il en dé oule,
qu'en imposant les wi+3,j+30 = wi+4,j+30 = ¬wi,j ,
onditions es équations
seront valides ave une probabilité 1/2 (absorption ou non) ou si les équations
ai+1,j+30 = 1 et ai+2,j+30 = 0 sont vériées.
5. Pour la dernière équation, la fon tion de ronde n'intervient plus, il y aura don
ompensation dès lors que l'on impose wi+5,j+30 = ¬wi,j .
Nous pouvons mener les mêmes analyses pour ha une des 32 positions de bit
possibles et ha une des 3 fon tions Booléennes. Nous présentons dans le tableau 4-
1 les probabilités de bon omportement (le nombre de onditions à vérier) d'une
ollision lo ale isolée qui se déroule intégralement dans une même ronde.

Type -------------------------o------
0 1 2, . . . , 30 31
IF 5 (5) 5 (5) 5 (5) 4 (4)
XOR 4 (4) 2 (2) 4 (4) 3 (3)
M AJ 4 (4) 2 (2) 4 (4) 4 (4)

Tab. 4-1  Probabilités théoriques de bon omportement (nombre de onditions à


vérier) pour une ollision lo ale isolée ommençant et se terminant au sein d'une
même ronde. La gure utilisée à droite de la notation Type représente une ollision
lo ale isolée. La numérotation 0, 1, 2, . . . 30, 31 indique la position à laquelle la per-
turbation initiale est inje tée. Les probabilités sont données sous la forme de l'opposé
de leur logarithme en base 2. Les hires entre parenthèses donnent le nombre de
onditions à vérier.

On peut remarquer que les appro hes que nous avons hoisi de qualier de proba-
biliste et déterministe se rejoignent, les onditions utilisées dans l'appro he détermi-
niste possédant une ertaine probabilité d'être vériées, égale à 1/2 dans l'hypothèse
où les bits des diérents états des registres sont onsidérés omme étant aléatoires.

52
4-4. Mise en oeuvre du modèle

Ces probabilités et onditions ont servi de base à l'évaluation de la omplexité des


premières attaques menées ontre SHA-0. Elles reposent sur plusieurs hypothèses :
l'évaluation globale du omportement de la ollision lo ale repose sur les diérentes
évaluations menées indépendamment équation par équation et les bits des diérents
états des registres sont onsidérés omme étant aléatoires. C'est pourquoi, nous les
qualions de probabilités théoriques.
Mendel et al. [MPR06℄ ont légèrement amélioré es probabilités en prenant en
ompte de façon détaillée l'impa t des retenues. Cependant, les éventuels eets de
bords liés aux en hevêtrements de ollisions lo ales n'avaient été que partiellement
pris en ompte jusqu'à ré emment. Nous avons montré que ertaines hypothèses
d'indépendan e sont remises en ause en pratique dès lors que plusieurs ollisions
lo ales ohabitent sur un ou plusieurs pas. Ce travail, abordé au hapitre 8, doit
paraître dans le journal Design, Codes and Cryptographie [Man10℄.

53
Chapitre 4. Prin ipe des ryptanalyses de SHA-0 et SHA-1

54
5

Cryptanalyses pratiques

Sommaire
5-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . 55
5-2 Opérateur de diéren e . . . . . . . . . . . . . . . . . 56
5-2.1 Diéren e binaire . . . . . . . . . . . . . . . . . . . . . 56
5-2.2 Diéren e binaire signée . . . . . . . . . . . . . . . . . 57
5-2.3 Diéren e généralisée . . . . . . . . . . . . . . . . . . . 58
5-3 Cara téristique linéaire . . . . . . . . . . . . . . . . . 58
5-3.1 Contraintes et as pathologiques . . . . . . . . . . . . . 59
5-3.2 Re her he de ve teurs de perturbations pour SHA-0 . . 60
5-3.3 Ve teurs de perturbations pour SHA-1 . . . . . . . . . 62
5-3.4 Instantiation du ve teur de perturbation . . . . . . . . 64
5-4 Cara téristique non-linéaire . . . . . . . . . . . . . . . 65
5-4.1 Appro he de Wang et al. . . . . . . . . . . . . . . . . . 66
5-4.2 Appro he de De Cannière et al. . . . . . . . . . . . . . 69
5-5 Te hnique des blo s multiples . . . . . . . . . . . . . 72
5-5.1 Prin ipe de la te hnique des blo s multiples. . . . . . . 73
5-5.2 Attaque de Biham et al. . . . . . . . . . . . . . . . . . 74
5-5.3 Forme a tuelle . . . . . . . . . . . . . . . . . . . . . . . 76
5-5.4 Attaque de Wang et al. . . . . . . . . . . . . . . . . . . 76
5-6 Te hniques d'a élération de re her he de messages 77
5-6.1 Bits neutres . . . . . . . . . . . . . . . . . . . . . . . . 78
5-6.2 Modi ations de message . . . . . . . . . . . . . . . . . 81
5-6.3 Boomerangs . . . . . . . . . . . . . . . . . . . . . . . . 83

5-1 Introdu tion


Pour mener à bien une ryptanalyse diérentielle des fon tions SHA-0 ou SHA-1
dans le but de produire une ollision, un ertain nombres d'outils doivent être mis
en oeuvre.
La première étape du pro essus onsiste à hoisir un opérateur de diéren e. Les
diérents progrès obtenus sont fondamentalement dus à la mise en oeuvre d'opéra-
teurs de plus en plus pertinents ainsi qu'à l'évolution de la façon de les représenter.

55
Chapitre 5. Cryptanalyses pratiques

Nous présentons es opérateurs se tion 5-2. L'étape suivante onsiste à trouver une
ara téristique linéaire sus eptible de onduire de façon e a e à une ollision. La
re her he d'une telle ara téristique se fonde sur l'obtention de bons ve teurs de per-
turbations. Cet aspe t est une première fois abordé se tion 5-3 puis développé dans
le hapitre 7. Il s'avère ependant, que les ve teurs de perturbations les plus promet-
teurs induisent des ollisions tronquées. Un nouvel outil s'est alors révélé né essaire
an d'adapter la ryptanalyse à es ve teurs. Pour e faire, la notion de ara téris-
tique non-linéaire a été introduite. Nous présentons ette notion se tion 5-4. Ave le
développement de es outils, la te hnique des blo s multiples a pu être utilisée an
d'améliorer l'attaque. Nous dé rivons deux as d'utilisation de ette te hnique dans
la se tion 5-5.
Une fois l'opérateur de diéren e déni, la ara téristique linéaire trouvée et
la ara téristique non-linéaire onstruite, la dernière étape onsiste à re her her un
ouple de messages formant une ollision. Des te hniques d'a élération de re her he
ont été développées an de mener e a ement ette re her he, nous les dé rivons
se tion 5-6.

5-2 Opérateur de diéren e


Les ryptanalyses mises en oeuvre ontre SHA-0 et SHA-1 s'appuient sur l'uti-
lisation des ollisions lo ales. Le travail du ryptanalyste onsiste don à dénir un
hemin diérentiel et à ontrler le omportement de se hemin. La première étape
de ette tâ he onsiste à dénir un opérateur de diéren e. Le premier opérateur
utilisé fût le ou ex lusif, ependant au fur et à mesure de l'évolution des ryptana-
lyses de nouveaux opérateurs ont été proposés. Nous dé rivons dans ette se tion es
diérents opérateurs.
Nous reprenons partiellement les notations employées dans la thèse de Thomas
Peyrin [Pey08℄.

5-2.1 Diéren e binaire


La diéren e binaire repose sur l'utilisation du ou ex lusif omme opérateur de
diéren e. Elle orrespond aux premières ryptanalyses menées ontre la fon tion
SHA-0 [Wan97, CJ98℄. Nous pouvons la dénir de la façon suivante :

Dénition 5.1 (Diéren e binaire)


Soient X et Y deux mots binaires de taille n, (X, Y ) ∈ {0, 1}n × {0, 1}n , leur dié-
ren e binaire ∆⊕ (X, Y ) ∈ {0, 1}n vaut :

∆⊕ (X, Y ) = X ⊕ Y.

La diéren e binaire est une diéren e simple qui fournit peu d'information. Cepen-
dant dans leur arti le, Chabaud et Joux ont introduit la notion de dire tion pour
une diéren e, elle- i peut être montante ou des endante. Pour un ouple de

message expansés (W, W ) ave W′ =W ⊕ 2j , la diéren e est dite montante si le bit
j de W est égal à 0, des endante sinon. Ces deux notions fournissent une information
supplémentaire au ryptanalyste et prégurent la diéren e binaire signée.

56
5-2. Opérateur de diéren e

5-2.2 Diéren e binaire signée


Cet opérateur a été introduit pour la ryptanalyse de SHA-0 par Wang [Wan98℄,
puis mis en pratique ave su ès dans [WYY05d℄. La diéren e utilisée n'est plus sim-
plement le ou ex lusif mais une diéren e fondée sur la soustra tion arithmétique
modulo 2. L'utilisation d'un signe permet d'in orporer de façon expli ite l'informa-
tion sur la dire tion de la diéren e dé rite par Chabaud et Joux. An de dénir la
diéren e binaire signée, nous allons tout d'abord introduire e que nous nommerons
diéren e binaire signée élémentaire :

Dénition 5.2 (Diéren e binaire signée élémentaire)


Soient deux valeurs binaires x et y , leur diéren e binaire signée élémentaire δ ∈
{−1, 0, +1} vaut :
δ(x, y) = y − x.

Dans le adre d'une ryptanalyse diérentielle les deux valeurs à onsidérer sont
souvent notées x et x′ . Nous emploierons dès lors la notation δx pour désigner δ(x, x′ ).
Nous pouvons à présent dénir la diéren e binaire signée de la façon suivante :

Dénition 5.3 (Diéren e binaire signée)


Soient X et Y deux mots binaires de taille n bits, X = x0 , . . . , xn−1 et Y =
y0 , . . . , yn−1 . Leur diéren e binaire signée ∆± (X, Y ) est le ve teur dénit par :

∆± (X, Y ) = (δ(x0 , y0 ), . . . , δ(xn−1 , yn−1 )) = (y0 − x0 , . . . , yn−1 − xn−1 ).

La diéren e binaire signée permet de tirer pleinement partie du omportement


de la fon tion IF . On peut exprimer le omportement de la fon tion élémentaire
if en fon tion de la diéren e binaire signée élémentaire de sa sortie δif (x, y, z) et
des diéren es binaires signées élémentaires de ses entrées δx , δy et δz , ave pour
tout (x, x′ ) ∈ {0, 1} × {0, 1}, δx ∈ {−1, 0, +1}. Si on onsidère une diéren e binaire
signée, la fon tion IF est sus eptible d'en préserver ou d'en hanger la dire tion (le
signe), voire même d'absorber ette diéren e. Par exemple, pour le as où δx 6= 0
et δy = δz = 0, on a :

δif (x, y, z) = +δx si y = ¬z = 1,


δif (x, y, z) = −δx si y = ¬z = 0,
δif (x, y, z) = 0 si y = z.

Cet exemple illustre lairement la apa ité de la fon tion if à absorber une diéren e
(δif (x, y, z) =0 si y = z ), à en préserver la dire tion (δif (x, y, z) = +δx si y = ¬z =
1) ou à en inverser la dire tion (δif (x, y, z) = −δx si y = ¬z = 0).
La diéren e binaire signée s'intègre don parfaitement à l'appro he déterministe
en intégrant l'information supplémentaire liée au signe de la diérentielle introduite.
Le ryptanalyste possède ave et outil un ontrle relatif sur le déroulement du
hemin diérentiel.

57
Chapitre 5. Cryptanalyses pratiques

(x, x′ ) (0, 0) (1, 0) (0, 1) (1, 1) (x, x′ ) (0, 0) (1, 0) (0, 1) (1, 1)

? X X X X 3 X X - -
- X - - X 5 X - X -
x - X X - 7 X X X -
0 X - - - A - X - X
u - X - - B X X - X
n - - X - C - - X X
1 - - - X D X - X X
# - - - - E - X X X

Fig. 5-1  Notations utilisées dans [DCR06℄ pour représenter les diérents états
possibles pour un ouple de bits x et x′ .

5-2.3 Diéren e généralisée


Nous devons ette appro he à De Cannière et Re hberger, elle fût introduite
pour la première fois dans leur arti le de 2006 [DCR06℄. Il ne s'agit en fait pas à
proprement parler d'un opérateur de diéren e, mais d'une représentation ompa te
du omportement des diéren es éventuelles. Cette représentation prend en ompte
et dé rit tous les états possibles pour un ouple de bits, et peut don être utilisée
pour dé rire une ara téristique diérentielle. Elle permet de plus, d'augmenter la
quantité d'information disponible pour la ryptanalyse. La notation utilisée est elle
de [DCR06℄ et est expli itée dans la gure 5-1.
La diérentielle orrespondant à un ouple de mots (X, Y ) est notée ∇(X, Y ).
Nous reprenons i i l'exemple utilisé dans [Pey08℄, la diérentielle pour un ouple de
mots X et Y de taille 8 bits

∇(X, Y ) = {(X, Y )|x7 ∧ y7 = 0, xi = yi pour 2 ≤ i ≤ 5, x1 6= y1 , x0 = y0 = 0}

est représentée par


∇(X, Y ) = [7?---x0℄.
L'utilisation de ette représentation a onduit à améliorer de façon signi ative
les ryptanalyses de SHA-0 et SHA-1. Elle a permit de plus, de rendre plus lisibles
les des riptions des ara téristiques diérentielles. La gure 5-2 donne un exemple
de représentation de la ara téristique linéaire orrespondant à une ollision lo ale.

5-3 Cara téristique linéaire


La ara téristique linéaire est l'élément lé des attaques par ollisions ontre les
fon tions SHA-0 et SHA-1. Nous rappelons que ette ara téristique in lut à la fois
la représentation des séquen es de perturbations/ orre tions introduites au niveau
du message et la représentation du hemin diérentiel suivi par les diérents états
du registre A lorsque le omportement de haque ollision lo ale est idéal. Dans la
première étape de la ryptanalyse, la ara téristique linéaire est don dénie par la
donnée d'un ve teur de perturbations (des onditions supplémentaires portant sur
les bits du message expansé pourront être imposées ultérieurement). En eet on peut

58
5-3. Cara téristique linéaire

pas ∇ Ai ∇W i
... ...
i−1 -------------------------------- --------------------------------
i -------------------------------- ------------------------------u-
i+1 ------------------------------u- -------------------------n------
i+2 -------------------------------- ------------------------------n-
i+3 -------------------------------- x-------------------------------
i+4 -------------------------------- x-------------------------------
i+5 -------------------------------- x-------------------------------
i+6 -------------------------------- --------------------------------
... ...

Fig. 5-2  Cara téristique linéaire orrespondant à une ollision lo ale initiée au pas
i et à la position j = 1. La olonne de droite représente les diérents états des mots
de message expansés. Elle rend ompte du fait que la ollision insérée est de dire tion
des endante selon la terminologie de [CJ98℄, de signe négatif selon la terminologie
asso iée à la diéren e binaire signée. La olonne de gau he représente les diérents
états du registre A.

non seulement onstruire à partir de e ve teur le masque de perturbation, mais aussi


en déduire dire tement le hemin diérentiel idéal du registre A.
Notre re her he de ve teurs de perturbations s'ins rit dans le adre d'une ryp-
tanalyse, l'obje tif est don de produire des ve teurs sus eptibles de minimiser la
omplexité d'une attaque. D'où la né essité de dénir et d'évaluer l'e a ité de
haque ve teur andidat. L'expérien e montre que ela n'est pas une tâ he aisée ar
diérentes méthodes ont été employées pour évaluer la omplexité des ryptanalyses
menées ontre les fon tions SHA-0 et SHA-1. De plus, le hoix d'un ve teur de per-
turbations doit aussi tenir ompte des intera tions possibles ave les autres outils
mis en oeuvre lors de la ryptanalyse : générateur automatique de ara téristiques
non-linéaires et autres te hniques d'a élération de re her he.
Nous présentons i i les diérentes ontraintes imposées aux ve teurs de perturba-
tions ainsi que diérentes heuristiques de re her he utilisées pour les fon tions SHA-0
et SHA-1.

5-3.1 Contraintes et as pathologiques


Le ve teur de perturbations représente l'ensemble des ollisions lo ales appliquées
aux mots de message expansé. L'obje tif des ryptanalyses que nous onsidérons est
de onstruire une ollision pour la fon tion de ha hage. An d'atteindre et obje tif,
on peut tenter d'obtenir une ollision pour la fon tion de ompression ( ollision sur
un blo ), on doit alors imposer au ve teur de perturbations de ne pas initier de
ollision lo ale lors des 5 derniers pas de la fon tion de mise à jour des registres.
Dans le as des ollisions sur plusieurs blo s (te hnique des blo s multiples), on peut
relâ her ette ontrainte.
Le ve teur de perturbations doit satisfaire la relation de ré urren e de la fon tion
d'expansion de message, l'existen e de ollisions tronquées dé oulent de ette obli-
gation. Dans les premières attaques onduites ontre SHA-0 es ollisions tronquées

59
Chapitre 5. Cryptanalyses pratiques

devaient êtres évitées, ar leur prise en harge né essite l'utilisation d'une ara téris-
tique non-linéaire qui a été introduite postérieurement à es attaques. An d'éviter
les ollisions tronquées, une ontrainte supplémentaire est imposée au ve teur de
perturbations.
La relation de ré urren e réé un entrela ement des ollisions lo ales. Cet en-
trela ement peut onduire dans ertains as à des omportements parti uliers, par
exemple un hemin diérentiel impossible. Nous désignons es as parti uliers par le
terme de as pathologiques. Un ertain nombre de as pathologiques ont été iden-
tiés dans la littérature. Les premiers ont été exhibés par Chabaud et Joux dans
leur arti le de 1998. Ils on ernent les ollisions lo ales onsé utives se déroulant lors
de la ronde IF et de la ronde M AJ . En eet, deux ollisions lo ales onsé utives
positionnées sur le même bit se déroulant dans une de es deux rondes onduisent
à un hemin diérentiel impossible. Pour la fon tion IF , ela a onduit les auteurs
à imposer au ve teur de perturbations de ne pas présenter deux ollisions lo ales
onsé utives lors des 16 premiers pas de la fon tion de mise à jour des registres.
Remarquons, que ette ontrainte héritée des premières attaques ontre la fon tion
SHA-0, est devenue aduque ave l'utilisation des ara téristiques non-linéaires. Pour
la fon tion M AJ , le problème est résolu en imposant des dire tions opposées aux
perturbations onsé utives apparaissant entre les pas 36 et 55. Nous avons mené
une évaluation statistique des probabilités de bon omportement des ollisions lo-
ales dans [Man10℄. Cette étude a fait apparaître de nouveaux as pathologiques
jusqu'alors non répertoriés.
Un autre as pathologique est l'eet de propagation de la retenue (Carry Ee t )
qui permet de  ompresser ou d'étendre des ollisions lo ales adja entes (démar-
rant au même pas sur des positions de bits onsé utives). Cet eet peut faire l'objet
d'un ontrle de l'attaquant. Il est d'ailleurs un des éléments prin ipaux mis en
oeuvre an de onstruire la ara téristique non-linéaire utilisée dans [WYY05d℄.

5-3.2 Re her he de ve teurs de perturbations pour SHA-0


La fon tion d'expansion dénie pour la fon tion SHA-0 n'entrela e pas les bits
des mots de message expansés. Cette propriété simplie grandement la re her he de
bons ve teurs de perturbations. D'une part l'attaquant peut hoisir de positionner les
ollisions lo ales sur la même position de bit, et d'autre part le nombre de ollisions
lo ales reste limité ( ertaines ollisions étant  ompensées au fur et à mesure de
la progression de l'expansion). Selon le tableau de probabilités théoriques de bon
omportement, la position numéro 1 permet d'obtenir la meilleure probabilité de bon
omportement. Il en dé oule que le nombre de bons andidats possibles est limité
à 216 − 1 parmi lesquels on ee tue une re her he exhaustive. L'évaluation d'un
ve teur andidat repose essentiellement sur son poids de Hamming al ulé à partir
d'un ertain pas qui dière en fon tion des te hniques d'a élération de re her he
(bits neutres, modi ations de message ou boomerangs) mises en oeuvre dans la
suite de l'attaque.

Ve teur de perturbations de Chabaud et Joux. La gure 5-3 présente le ve -


teur de perturbations proposé par Chabaud et Joux dans [CJ98℄. On peut remarquer
qu'il vérie les ontraintes de ollision sur un seul blo , sur les ollisions tronquées
ainsi que sur l'absen e de ollisions lo ales onsé utives sur les 16 premiers pas. Ce

60
5-3. Cara téristique linéaire

ve teur proposé en 1998 orrespond à une appro he entièrement linéaire de l'attaque.


La omplexité de l'attaque fondée sur e ve teur et dé rite dans l'arti le s'élève à 261
évaluations de la fon tion de ompression.

00000 00100010000000101111 01100011100000010100

01000100100100111011 00110000111110000000

Fig. 5-3  Ve teur de perturbations de Chabaud et Joux [CJ98℄.

Ve teurs de perturbations de Biham et al.. La gure 5-4 présente les quatre


ve teurs de perturbations utilisés dans l'attaque de Biham et al. [BCJ05℄ qui a
onduit à l'obtention de la première ollision pour SHA-0. Ces ve teurs marquent le
début de l'utilisation des propriétés non-linéaire de la fon tion de ronde IF et de la
mise en oeuvre de la te hnique des blo s multiples. Les onditions portant sur les
ollisions tronquées ainsi que sur l'absen e de ollision lo ale sur les inq derniers
pas ne sont pas seulement relâ hées mais mise à prot pour onstruire l'attaque. La
omplexité donnée dans l'arti le en nombre de paire de messages à traiter est égale
à 251 , e qui orrespond à 249 évaluations de la fon tion de ompression.

00000 00010000101001000111 10010110000011100000

00000011000000110110 00000110001011011000

01000 10000000010000101001 00011110010110000011

10000000000011000000 11011000000110001011

10001 00100101000100101111 11000010000100001100

00101100100000000001 11010011101000010001

11010 00100000000100001010 01000111100101100000

11100000000000110000 00110110000001100010

Fig. 5-4  Ve teurs de perturbations de Biham et al. [BCJ05℄.

Ve teur de perturbations de Wang et al. La gure 5-5 présente le ve teur


de perturbations utilisé par Wang et al. dans [WYY05d℄. L'utilisation d'une ara -
téristique non-linéaire a permis de relâ her les ontraintes portant sur les ollisions
tronquées et la ontrainte liée aux ollisions lo ales onsé utives dans la ronde de
IF . La seule ontrainte restante est elle liée à l'obtention d'une ollision sur un
seul blo . La ollision exhibée dans l'arti le est une ollision sur deux blo s. Cepen-
dant, le premier blo n'est employé que pour satisfaire des onditions sur un ertain
nombre de bits de la variable de haînage liées à la ara téristique non-linéaire utili-

61
Chapitre 5. Cryptanalyses pratiques

sée. La omplexité de l'attaque asso iée est évaluée à 239 évaluations de la fon tion
de ompression.

00111 01111001010010101000 01100010001011100000

01000001000000000100 11001101011101000000

Fig. 5-5  Ve teur de perturbations de Wang et al. [WYY05d℄.

Ve teur de perturbations de Manuel et Peyrin. La gure 5-6 présente le


ve teur de perturbations utilisé par Manuel et Peyrin dans [MP08℄. La ombinaison
de la ara téristique non-linéaire et de la te hnique des blo s multiples autorise un
relâ hement de toutes les ontraintes. Cette attaque utilise de façon omplète les
propriétés non-linéaires. La omplexité de l'attaque asso iée est mesurée à 233 éva-
luations de la fon tion de ompression et reste à e jour la meilleure attaque par
ollision ontre la fon tion SHA-0.

11110 10001000110101101010 10000010000000101101

00101000101001011001 11000010101010010100

Fig. 5-6  Ve teur de perturbations de Manuel et Peyrin [MP08℄.

5-3.3 Ve teurs de perturbations pour SHA-1


La fon tion d'expansion de SHA-1, à la diéren e de elle de SHA-0, entrela e les
bits des mots de message expansés. Le résultat immédiat est qu'il n'est plus possible
de onner la position initiale des ollisions lo ales à une seule position de bit. La
permutation ir ulaire d'un bit vers la gau he limite le phénomène de ompensation
des ollisions lo ales et assure une diusion des positions de bit. La gure 5-7 illustre
ette diusion.
Cette diusion modie non seulement la taille de l'espa e de re her he, mais
aussi l'évaluation des ve teurs andidats. En eet, les positions de bit n'étant plus
restreintes, les diérentes positions de bit des ollisions lo ales doivent à présent être
prises en ompte pour évaluer leur probabilité de bon omportement. Les solutions
utilisées pour la re her he de bons ve teurs de perturbations onsistent dans un
premier temps à limiter la taille de l'espa e de re her he puis à évaluer es ve teurs
en se fondant sur une heuristique parti ulière.

5-3.3.1 Restri tion de l'espa e de re her he


L'appro he la plus populaire se fonde sur l'algorithme dé rit par Wang et al.
dans [WYY05b℄ appelé Re tangle Range. Le sous-espa e hoisi pour re her her les
ve teurs de perturbations andidats est déni de la façon suivante :

{Wi = (0, . . . , 0, wi,1 , wi,0 )|i = t, . . . , t + 15} pour t = 0, . . . , 64.

62
5-3. Cara téristique linéaire

Fig. 5-7  Illustration de la diusion des positions des ollisions lo ales pour la
fon tion SHA-1. Cette gure orrespond à l'insertion d'une unique perturbation sur
le premier bit du premier mot du message.

Cette appro he onsiste à dénir une fenêtre au sein de laquelle les possibilités de
positionnement des perturbations initiales sont limitées aux positions de bit 0 et 1.
Cette restri tion est dire tement issue du fait que la meilleure probabilité théorique
de bon omportement pour une ollision lo ale est attendue à la position 1. La taille
de l'espa e de re her he est alors égale à 65 × 232 . Le même prin ipe de restri tion de
l'espa e de re her he est utilisée dans les travaux de Yajima et al. [YIN08℄, ave une
extension à la position de bit 31. La taille de l'espa e de re her he onsidéré étant
alors égale à 65 × 248 .
Nous avons proposé dans [Man09, Man10℄ un nouvel algorithme de re her he
fondé sur l'utilisation d'une fenêtre d'information et d'un ompromis diérent. Ce
ompromis onsiste à relâ her les ontraintes imposées sur les positions de bit où sont
insérées les ollisions lo ales, pour la rempla er par une ontrainte sur le nombre de
ollisions lo ales autorisées dans la fenêtre d'information. Cet algorithme détaillé au
hapitre 7 se tion 7-2, fournit de bons résultats et est à l'origine de la lassi ation
des ve teurs de perturbations e a es.

5-3.3.2 Heuristiques d'évaluation


Les algorithmes de re her he utilisés par Wang et al. et Yajima et al. se fondent
sur l'appro he déterministe pour évaluer les ve teurs de perturbations andidats.
Elle onsiste à ompter le nombre de onditions devant être respe tées pour ha une
des ollisions lo ales présentes sur le hemin diérentiel induit. Une ollision lo ale
initiée sur la position de bit 1 au sein d'une ronde de XOR donne 2 onditions,
3 pour une position de bit 31 et 4 pour une position diérente. Pour la ronde de
IF (respe tivement M AJ ) on a 5 (respe tivement 4) onditions quelle que soit la
position de bit onsidérée. Les ollisions se déroulant à heval sur deux fon tions de
rondes sont évaluées au as par as. De plus, une te hnique dite de ompression de bits
(Bit Compression ) est utilisée. Cette te hnique s'appuie sur l'eet de propagation de
la retenue tel que dé rit dans [WYY05d℄ pour  ompresser plusieurs ollisions lo ales
en une seule. En eet, un hoix pertinent des dire tions ae tées aux ollisions lo ales
permet en imposant des onditions supplémentaires au mots de message expansés
d'obtenir sous ertaines onditions une probabilité de bon omportement équivalente
à la première ollision lo ale onsidérée isolément. Les travaux de Yajima et al.
présentés dans [YIN09℄ dé rivent un ertain nombre d'heuristiques additionnelles
destinées à aner l'évaluation des ve teurs andidats.

63
Chapitre 5. Cryptanalyses pratiques

5-3.3.3 Autres heuristiques


Certains auteurs ont utilisé des algorithmes liés à la théorie des odes pour la
re her he de ve teurs de perturbations [JP05, PRR05℄. Jutla et Patthak [JP05℄ ont
al ulé une probabilité théorique moyenne de bon omportement des ollisions lo-
ales. Une fois ette probabilité moyenne dénie, la re her he de bons ve teurs se
résume à trouver des mots de petits poids de Hamming dans le ode déni par l'ex-
pansion de message de SHA-1. L'algorithme de re her he de mots de petits poids
employé dans e papier se fonde sur l'algorithme de Léon [Leo88℄. Nous avons en
oopération ave Matthieu Finiasz et Mathieu Cluzeau ee tué une re her he sur
plusieurs semaines fondée sur une version optimisée de l'algorithme de Canteaut-
Chabaud [CC98℄. Cependant, l'utilisation de et outil n'a pas permis de mettre à
jour des ve teurs plus intéressants que eux déjà obtenus au moyen de l'algorithme
que nous avons proposé dans [Man09℄.

5-3.3.4 Remarques
Contrairement à la façon dont nous avions pro édé pour les ve teurs de pertur-
bations pour SHA-0, nous ne présentons pas i i les diérents ve teurs proposés pour
les ryptanalyses. Dans le hapitre 7 onsa ré à l'amélioration de la ara téristique
linéaire, nous présentons un travail de synthèse qui établit une lassi ation des
ve teurs de perturbations et fournit une étude omparative des diérents ve teurs
proposés dans la littérature. Ces travaux ont fait l'objet d'une présentation lors de
la onféren e WCC 2009 [Man09℄.
Nous remarquons de plus, que les méthodes d'évaluations publiées à e jour
prennent en ompte de façon limitée les possibles intera tions liés à l'en hevêtre-
ment des ollisions lo ales. Nous avons mené dans le adre de ette thèse un ertain
nombre d'expérimentations sur es intera tions. Ces expérimentations ont mis à jour
un ertain nombre de omportements qui onduisent à réévaluer les heuristiques uti-
lisées jusqu'i i pour la re her he de ve teurs de perturbations. Une partie de es
expérimentations est publiée dans [Man10℄ et présentée au hapitre 8.
Enn une dernière remarque porte sur le fait que l'évaluation des ve teurs de per-
turbations peut ne pas onstituer à elle seule une mesure susante pour mener à bien
une ryptanalyse. En eet, les outils utilisés pour onstruire une ryptanalyse ontre
SHA-0 ou SHA-1 peuvent se omporter diéremment pour des ve teurs possédant
une même évaluation. Nous avons été onfrontés à e problème lors de la re her he
de ollision pour SHA-0 que nous avons réalisée ave Thomas Peyrin [MP08℄. Lors de
la onstru tion de la ara téristique non-linéaire, des ve teurs équivalents en terme
d'évaluation onduisaient à des ara téristiques non-linéaires de pertinen es dié-
rentes.

5-3.4 Instantiation du ve teur de perturbation


Dans la se tion 5-3.1 nous avons dé rit le as pathologique de la fon tion de ronde
M AJ né essitant un traitement parti ulier relativement aux dire tions de ollisions
lo ales onsé utives. De même, lors de l'évaluation du omportement d'une ollision
lo ale, que nous avons réalisée se tion 4-4.4 du hapitre pré édent, nous avons remar-
qué que des ontraintes portant seulement sur des bits des mots de message expansé
devaient aussi être vériées pour permettre un bon omportement. Par onséquent,

64
5-4. Cara téristique non-linéaire

un ouple de message (M, M ′ ) andidat pour une re her he de ollision doit vérier
plusieurs niveaux de ontraintes linéaires :
 une diéren e binaire relativement au masque de perturbations M ′ = M ⊕ P,
 une diéren e binaire signée pour spé ier la dire tion de ertaines ollisions
lo ales an d'éviter de possibles as pathologiques,
 des équations liant ertains bits des mots de message expansés pour permettre
un bon omportement des ollisions lo ales.
Ces ontraintes apparaissent sur les mots de message expansés, mais l'expansion
étant linéaire, on peut fa ilement se ramener à un système d'équation devant être
vérié par le ouple (M, M ′ ). L'impa t de es équations est plus parti ulièrement
per eptible lors de l'utilisation d'une ara téristique non-linéaire qui doit expressé-
ment tenir ompte de es équations. Les te hniques d'a élération de re her he qui
utilisent des diéren es auxiliaires, omme les boomerangs, doivent aussi s'assurer
d'être ompatibles ave es équations.
L'ensemble des ryptanalyses de SHA-0 et de SHA-1 publiées à e jour impose
uniformément la même dire tion pour l'ensemble des ollisions lo ales, à l'ex eption
des as pathologiques identiés. Cependant, les travaux menés lors de ette thèse
onduisent à re onsidérer e hoix uniforme des dire tions. Nous reviendrons sur e
point au hapitre 8.

5-4 Cara téristique non-linéaire


La ara téristique non-linéaire asso iée à une ryptanalyse par ollision ontre
les fon tions SHA-0 et SHA-1 permet de modéliser la propagation non-linéaire d'une
diéren e à l'intérieur des omposants non-linéaires de la fon tion de mise à jour des
registres. La onstru tion d'une telle ara téristique est un pro édé signi ativement
plus omplexe que la re her he de ara téristiques linéaires (ve teurs de perturba-
tions). Cependant, nous avons vu qu'il dé oule des ve teurs de perturbations les
plus intéressants des ollisions tronquées et des as pathologiques qui doivent être
pris en harge. Les omposants non-linéaires des fon tions SHA-0 et SHA-1 sont les
fon tions Booléennes des rondes IF et M AJ ainsi que l'addition modulo 232 . Les
20 premiers pas de la fon tion de mise à jour des registres umulent deux de es
éléments non-linéaires. Pourtant, le ryptanaliste possède un ontrle dire t sur les
16 premiers mots de message expansés et par onséquent sur les valeurs des registres
internes jusqu'au pas 16. Le prin ipe d'une ara téristique non-linéaire onsiste don
à tirer partie de e ontrle sur l'état interne an de rendre possible l'utilisation des
ve teurs de perturbations les plus prometteurs. Les premiers hemins diérentiels
non-linéaires pour les fon tions SHA-0 et SHA-1 ont été introduits par Wang et al.
[WYY05d, WYY05b℄. Les auteurs ont dé laré avoir onstruit es hemins à la main,
e qui limitait l'appli ation de ette te hnique à d'autres ongurations de rypta-
nalyse. Dès lors, les re her hes se sont prin ipalement orientées vers la onstru tion
d'outils automatisés sus eptibles de onstruire des ara téristiques non-linéaires à la
demande [DCR06, DCM07, SKP07, YSN07, JP07, MP08℄.
Dans e hapitre nous ommen erons par dé rire des éléments de la ara téris-
tique non-linéaire mise en oeuvre par Wang et al. pour la ryptanalyse de SHA-0, puis
nous dé rirons les prin ipes de l'outil de génération automatique de ara téristiques
non-linéaires introduit pour la première fois par De Cannière et Re hberger.

65
Chapitre 5. Cryptanalyses pratiques

5-4.1 Appro he de Wang et al.

L'introdu tion de la ara téristique non-linéaire par Wang et al. a fondamenta-


lement révolutionné la ryptanalyse des fon tions SHA-0 et SHA-1. Les her heurs
avaient onstaté que les ve teurs de perturbations les plus prometteurs d'un point
de vue de la omplexité de l'attaque, possédaient des ollisions tronquées, et/ou
le as pathologique de la fon tion IF , et/ou onduisaient seulement à l'obtention
de quasi- ollisions. La ontribution apportée par Wang et al. a été de fournir les
moyens qui permettent d'utiliser des ve teurs de perturbations présentant des ol-
lisions tronquées et/ou des ollisions lo ales onsé utives dans la ronde de IF . Le
premier moyen proposé réside dans l'appro he déterministe et la diéren e binaire
signée que nous avons dé rites pré édemment. Le se ond se présente sous la forme
de la ara téristique non-linéaire.
Les ara téristiques données dans les deux arti les [WYY05d, WYY05b℄ sont
réputées avoir été onstruites à la main. De plus, bien que très omplexes, les pro es-
sus ayant onduit à l'obtention de es ara téristiques ne sont pas détaillés. Seules
quelques pistes et expli ations su in tes sont présentées dans les arti les orrespon-
dants. Nous sommes parvenus lors d'un travail réalisé en 2006 [Man06℄ à re onstituer
la ara téristique non-linéaire utilisée lors de la ryptanalyse de SHA-0, e qui nous
a amené à identier et orriger ertaines erreurs présentes dans l'arti le original.
Nous ne présenterons ependant i i, que e que nous onsidérons être les lés qui ont
permis la réation de ette ara téristique non-linéaire.
Nous allons tout d'abord introduire une notation supplémentaire. Pour indiquer la
[+j]
diéren e binaire signée ∆± (Wi , Wi′ ) = +2j nous utiliserons la notation Wi . Par ex-
[+r,−s,+t]
tension, une diéren e binaire signée ∆± (Ai , A′i ) = +2r − 2s + 2t sera notée Ai .
An d'améliorer la lisibilité, nous pourront être amenés à simplier la notation de
ette diéren e dire tement en [+r, −s, +t] quand le ontexte désigne lairement à
qu'elle paire de mots elle s'applique. Nous nous référerons aux notations +r , −s et
+t omme étant les valeurs de la diéren e [+r, −s, +t].

Eet de propagation de la retenue. L'eet de propagation de la retenue où


 Carry ee t  se fonde sur l'utilisation d'une propriété parti ulière des puissan es de
2. En eet, on a :

2j = −2j − 2j+1 . . . − 2j+k−1 + 2j+k ∀(k, j) ∈ N2 .

Cette propriété appliquée à un mot binaire, permet d'étendre une perturbation sur
un bit d'indi e j à des bits d'indi es supérieurs sans modier la valeur arithmétique
asso iée à e mot. Soit X un mot de 32 bits, posons :

X ′ = X + 24 , et

X = X − 2 − 25 − 26 + 27 .
′′ 4

X′ et X ′′ forment deux mots de 32 bits diérents, ependant quel que soit Y un


autre mot de 32 bits, on aura X ′ + Y = X ′′ + Y . Du point de vue de l'addition
modulo 232 la diéren e binaire signée [+5] est équivalente à la diéren e binaire
signée [−4, −5, −6, +7]. Nous pouvons de plus remarquer que l'égalité arithmétique
est symétrique. 4 Il est don possible d'utiliser ette propriété pour étendre une

66
5-4. Cara téristique non-linéaire

diéren e, ou bien ompresser plusieurs diéren es en une seule. C'est sur ette
observation que repose le prin ipe de la ompression de bits.
Voi i un autre exemple d'appli ation de ette propriété. Soient X, Y et Z trois
mots de 32 bits, et posons W = X + Y + Z. Soient X ′, Y ′ et Z′ dénis de la façon
suivante :
X ′ = X + 26 ,
Y ′ = Y + 26 ,
Z ′ = Z − 27 ,
On obtient alors :
X ′ + Y ′ + Z ′ = W = X + Y + Z.
Si nous onsidérons que ette équation reète le même type d'équations vériées
par la fon tion de mise à jour des registres, nous pouvons formuler ette équa-
tion diéremment. Les trois diérentielles ∆± (X, X ′ ) = [+6], ∆± (Y, Y ′ ) = [+6]
et ∆± (Z, Z ′ ) = [−7] se sont ompensées. On a don orrigé une perturbation des-
endante sur la position de bit 6 de Z par la ombinaison de deux perturbations
montantes sur la position de bit 7 de X et de Y .
La ombinaison de la diéren e binaire signée et de l'eet de propagation de
la retenue permet de mieux visualiser la propagation des perturbations dans les
registres, et ore aussi des possibilités supplémentaires (extension ou ompression de
diéren es) pour ontrler es perturbations.

Détournement de la fon tion IF . Paradoxalement, 'est la non-linéarité intro-


duite par la fon tion IF qui est utilisée pour rendre la ryptanalyse possible. Nous
avons remarqué se tion 5-2.2 de e hapitre qu'en ombinaison ave l'appro he si-
gnée, il était possible de déterminer les onditions né essaires pour que la fon tion
IF puisse absorber, préserver ou inverser le signe d'une diéren e appliquée à son
entrée. An d'illustrer ette propriété, nous allons onsidérer son appli ation au pas
numéro 3 de la fon tion de mise à jour des registres orrespondant à l'attaque dé rite
dans l'arti le de Wang et al. [WYY05d℄.
Conformément à la notation que nous avons dénie, nous pouvons le représenter
de la façon suivante :

[+2,−10,−12,−17,−18,+19] [+10,−11,+12,+13,−14,−17,...,−26,+27]
A3 = (A2 ≪ 5) +
[−2,−7,−8,+9,−32]
IF ( A1 , A0 ≪ 30, B0 ≪ 30)+
[+2,+7,−32]
(C0 ≪ 30) + W2 + Ki

Ce qui revient du point de vue des diéren es seules et en appliquant l'eet de


propagation de la retenue pour les diéren es ∆± (A3 , A′3 ) et ∆± (A2 ≪ 5, A′2 ≪ 5)
an d'en ompresser les diéren es à :

[+2, −10, −12, +17] =[−10, −12, +17] + IF ([−2, −7, −8, +9, −32])+
[+2, +7, −32]

Cette équation ne onstitue pas un réel formalisme mathématique. Elle permet e-


pendant, d'illustrer de façon simple l'état des diéren es. Pour que ette équation

67
Chapitre 5. Cryptanalyses pratiques

ait un sens d'un point de vue arithmétique, la diéren e en sortie de la fon tion IF
doit valoir [−7, ±32], e qui orrespond au omportement suivant :

1. absorber les valeurs −2, −8 et +9 de la diéren e [−2, −7, −8, +9, −32],
2. préserver le signe de la valeur −7,
3. préserver la valeur −32, mais sans for ément en onserver le signe.

Le omportement 1 sera a quis dès lors que les b0,4 = a0,4 , b0,10 = a0,10
onditions
et b0,10 = a0,11 portant sur les bits des valeurs initiales B0 et A0 seront vériées. Le
omportement 2 né essite quant à lui que les équations a0,9 = 1 et b0,9 = 0 soient
vraies. Le omportement 3 impose la ondition b0,2 = ¬a0,2 . Cet exemple illustre le
fait que la fon tion IF permet, au prix de onditions supplémentaires, d'intervenir
dire tement sur la propagation des diéren es au sein des registres.

Ave l'aide des outils que nous venons de présenter, Wang et al. sont parvenus à
onstruire la ara téristique non-linéaire présentée table 5-1.

Conditions

Registres 31 - 24 23 - 16 15 - 8 7 - 0

A0 - - - -- - - - 1 - 1100 - 1 - -1- -1 -1 10 - - - - - -
B0 - - - -- - - - -------- - - - - - aa0 - - - - a - ā-
A1 1- - -- - - - 0a0011a0 aa1 - 10a0 11 - - - - 1-
A2 0-0-- - - - - - 011111 111111 - 1 0010a - - -
A3 1-1--aaa aa0 - 0011 0010101 - - 010100-
A4 1- - --a - 0 11111000 - - 1111 - 0 110011 - -
A5 0- - -- - - 0 - 0001001 00100 - 0 - 01 - 01 - - -
A6 - - - -- - - 0 - 1011110 010 - 100 - - 0 - - 100-
A7 0- - -- - - 1 a1011111 0100 - - 00 0 - - - - 10-
A8 - - - -- - - - 10000000 00000 - 11 1- - -1- --
A9 1- - -- - - - - - - 00000 0011001 - - - - -0- --
A10 - - - -- - - - - - - 11111 1111111 - - - - - - - 0-
A11 0- - -- - - - -------- - - - - - -0- - - - -1- --
A12 0- - -- - - - -------- -------- 0- - -0- --
A13 - - - -- - - - -------- -------- 1 - - - 0 - 0-
A14 1- - -- - - - -------- -------- - - - -1- --
A15 0- - -- - - - -------- -------- - - - - 1 - 1-
A16 1- - -- - - - -------- -------- - - - -0- --
A17 0- - -- - - - -------- -------- - - - - - - 1-
A18 1- - -- - - - -------- -------- - - - - - - --
A19 - - - -- - - - -------- -------- - - - - - - --
A20 - - - -- - - - -------- -------- - - - - - - --

Tab. 5-1  Conditions sur les bits de l'état interne orrespondant à la ara téristique
non-linéaire utilisée dans [WYY05d℄. La notation a (respe tivement ā) indique que la
valeur du bit orrespondant est égale (respe tivement opposée) à la valeur du même
bit du registre immédiatement pré édent.

68
5-4. Cara téristique non-linéaire

5-4.2 Appro he de De Cannière et al.

Les deux ara téristiques non-linéaires données par Wang et al. ne sont valables
que pour les deux ve teurs de perturbations que les auteurs ont hoisis. Or il existe
d'autres ve teurs plus intéressants : les ve teurs onduisant à l'obtention d'une quasi-
ollision qui peuvent être utilisés en ombinaison ave la te hnique des blo s mul-
tiples. En eet, bien que la ollision exhibée pour SHA-0 utilise deux blo s de mes-
sage, elle ne onstitue pas une utilisation de la te hnique des blo s multiples, le
premier blo ne servant qu'à obtenir une variable de haînage vériant un ertain
nombre de onditions imposées par la ara téristique non-linéaire. L'in onvénient
majeur des te hniques utilisées par Wang et al. réside dans le fait que leurs ara té-
ristiques non-linéaires (pour SHA-0 et SHA-1) ont été obtenues à la main, e qui rend
fastidieuse une répétition du pro essus pour de nouveaux ve teurs de perturbations.

Diérentes appro hes ont été menées an d'automatiser la onstru tion des ara -
téristiques non-linéaires, nous pouvons iter les travaux de Sugita et al. [SKP07℄ ou de
Yajima et al. [YSN07℄. Cependant, l'algorithme qui produit a tuellement les meilleurs
résultats repose sur les travaux de De Cannière et Re hberger [DCR06℄. L'utilisation
de générateurs automatiques de ara téristiques non-linéaires a onduit à l'obtention
de ollisions pour des versions réduites à 64 pas [DCR06℄, 70 pas [DCM07, JP07℄ et
tout dernièrement à 72 et 73 pas [Gre10℄ de la fon tion SHA-1.
Nous nous bornerons dans e do ument à donner les prin ipes qui gouvernent
l'utilisation de es générateurs de ara téristiques non-linéaires. En eet, d'une part
le travail de re her he ee tué pendant ette thèse s'est plutt onsa ré à l'améliora-
tion de la partie ara téristique linéaire (présentée au hapitre 7), et d'autre part une
présentation omplète de l'implémentation réalisée par Thomas Peyrin est disponible
dans sa thèse [Pey08℄. Le prin ipe essentiel de l'outil de De Cannière et Re hberger
onsiste à appréhender les hemins diérentiels andidats sous la forme d'une a-
ra téristique diérentielle généralisée an de onstruire un arbre de re her he. Puis
et arbre est par ouru, en utilisant des outils de re her he en profondeur (Ba ktra k
sear h ), pour onstruire un hemin diérentiel valide. L'eort de al ul né essaire à
l'obtention d'une ollision est alors évalué en dénombrant le nombre moyen de noeuds
à par ourir.
La première étape onsiste don à modéliser ette ara téristique. Nous avons
abordé et aspe t se tion 5-2.3 en présentant la diéren e généralisée. Soient deux
mots X et X ′, (X, X ′ ) par la notation X ⋆ . Un ouple X ⋆
nous désignerons le ouple
se onforme à une ara téristique diérentielle ∇X si la diéren e entre X et X est


l'une des diéren es possibles dénies par ∇X (X ∈ ∇X ). Un hemin diérentiel
pour la fon tion de ompression de SHA-0 ou de SHA-1, est don onstitué d'un
ensemble de ara téristiques diérentielles ∇A−4 , ∇A−3 , . . . , ∇A80 pour les états des
registres et d'un ensemble de ara téristiques diérentielles ∇W0 , . . . , ∇W79 pour les
mots de message expansés. Une paire de messages se onforme au hemin diérentiel
jusqu'au pas i si :
(
A⋆−4 ∈ ∇A−4 , . . . , A⋆i ∈ ∇Ai
(5-1)
W0⋆ ∈ ∇W0 , . . . , Wi−1

∈ ∇Wi−1

Dès lors qu'un hoix de ve teur de perturbations a été fait et qu'une ara téris-
tique linéaire a été établie, il devient né essaire de onstruire un hemin diérentiel
pour l'attaque. Cependant, ela n'est pas susant : il faut aussi s'assurer que e

69
Chapitre 5. Cryptanalyses pratiques

hemin diérentiel onduit à une attaque ee tive. Cela nous amène à la se onde
étape de développement de l'outil qui onsiste à évaluer la probabilité de su ès d'un
hemin diérentiel donné. Dans e but, De Cannière et Re hberger ont introduit
deux nouvelles notions désignées sous les termes de probabilité in ontrlée (Un on-
troled Probability ) et de probabilité ontrlée (Controled Probability ) dont voi i les
dénitions :

Dénition 5.4 (Probabilité in ontrlée)


La probabilité in ontrlée notée Pu (i) d'une ara téristique diérentielle à un pas i est
la probabilité que la sortie A⋆i+1 du pas i se onforme à la ara téristique diérentielle
étant donné que toutes les entrées se onforment à leur ara téristique diérentielle
respe tive. Soit :
 
Pu (i) = P A⋆i+1 ∈ ∇Ai+1 |A⋆i−j ∈ ∇Ai−j pour 0 ≤ j ≤ 5 et Wi⋆ ∈ ∇Wi

Dénition 5.5 (Probabilité ontrlée)


La probabilité ontrlée notée Pc (i) d'une ara téristique diérentielle à un pas i est
la probabilité qu'il existe au moins une paire de messages Wi⋆ onforme telle que la
sortie A⋆i+1 du pas i se onforme à la ara téristique diérentielle étant donné que
toutes les entrées se onforment à leur ara téristique diérentielle respe tive. Soit :
 
Pc (i) = P ∃Wi⋆ ∈ ∇Wi : A⋆i+1 ∈ ∇Ai+1 |A⋆i−j ∈ ∇Ai−j pour 0 ≤ j ≤ 5

Ces dénitions permettent d'évaluer la probabilité qu'un hemin diérentiel soit va-
lide.
An de pouvoir estimer l'eort en terme de al ul, une nouvelle dénition est
né essaire pour mesurer le nombre de degrés de liberté laissés au message.

Dénition 5.6 (Degrés de liberté)


Le degré de liberté F (i) asso ié à une ara téristique diérentielle à un pas i est
égal au nombre de façons de hoisir Wi⋆ ∈ ∇Wi en ne violant au une des onditions
imposées sur les mots de message expansés, étant données les valeurs xées de Wj⋆
pour 0 ≤ j < i.
À partir de es dénitions, nous pouvons exprimer le nombre N (i) de noeuds
visités à haque pas de la fon tion de mise à jour des registres lors de la re her he
d'une ollision. Étant donné que le nombre moyen de ls d'un noeud pour un pas i
est égal à F (i).Pu (i), que seule une fra tion Pc (i) de es noeuds possède au moins
un ls et que la re her he s'arrête lorsque le pas n est atteint, nous pouvons déduire
la relation de ré urren e suivante :

1
 i = n,
si
 
N (i) = N (i + 1) 1 (5-2)

 max , si i < n,
(F (i).Pu (i) Pc (i)

où n désigne le pas auquel on souhaite obtenir une ollision : n < 80 pour une version
réduite, n = 80 pour la version normalisée de SHA-0 ou SHA-1. Le nombre total de
noeuds par ourus est alors égal à :

n
X
N (n) = N (i).
i=0

70
5-4. Cara téristique non-linéaire

An d'illustrer l'utilisation de es prin ipes, nous présentons dans les tableaux
5-2 et 5-3 le hemin diérentiel orrespondant au premier blo de l'attaque que nous
avons menée ave Thomas Peyrin ontre la fon tion SHA-0 [MP08℄. Nous donnons
pour haque pas le nombre de degrés de liberté F (i), le logarithme en base 2 de la
valeur de la probabilité ontrlée Pc (i) et du nombre moyen de noeuds visités N (i).

i ∇ Ai ∇W i F (i) Pc (i) N (i)

-4 : 00001111010010111000011111000011
-3 : 01000000110010010101000111011000
-2 : 01100010111010110111001111111010
-1 : 11101111110011011010101110001001
00 : 01100111010001010010001100000001 0100111001001011000001010n0010u1 0 0.00 -10.00
01 : 1110110111111111100111011n1111u0 0100000011011011010100001n000000 0 0.00 -10.00
02 : 01100111011111111101n10101101010 1111011000011110100111011n011011 0 0.00 -10.00
03 : 001101010010100n00001100n0uuuuu0 0011100010101001011100100u000101 0 0.00 -10.00
04 : 111100000nu000001010110001110000 u110010001000000010100000u0101n1 0 0.00 -10.00
05 : 00111n00000010011000100000u0n1u1 n0010100110010000101010010100000 0 0.00 -10.00
06 : 10110101110110110000101u100u1001 n010001011110100001111000u000100 0 0.00 -10.00
07 : 100unnnnnnnnn0100nu0100101u11001 00010010111101000101011001011010 0 0.00 -10.00
08 : 1000011100001n000n100u0n010nn001 0101101001110001000110001n0001u1 0 0.00 -10.00
09 : 0010000000000010un00nu1u1un01100 n101000101000111100101100u1110n0 0 0.00 -10.00
10 : 11100110100101000nu01u10un00n100 01111010011000100100011100011000 0 0.00 -10.00
11 : 011110001110001101nuu10101000101 0111000100110111010110011u1110u0 0 0.00 -10.00
12 : 01001101011010000010u0000n110000 10110111110101-----1-----u000001 10 -4.00 -10.00
13 : 010110011100000----010-0-01001u0 101001010----------------n0000u1 16 -1.00 -4.00
14 : 10111100--------------1--110u011 01101-0----0--1----0---0-1-011u0 16 -2.00 11.00
15 : 10100------------------0-1-u0100 n0101-0----0--1----0---0-1-11000 16 -2.00 25.00
16 : --01-----------------------n0011 010001110----------------00101n0 0 0.00 39.00
17 : -----------------------------1n- n1000-0----1--1----1---0-u-10011 0 -2.00 39.00
18 : 1----------------------------0-- 01000-0----1--1----0---0-0-011u0 0 0.00 37.00
19 : -------------------------------- n00110100----------------0001011 0 0.00 37.00
20 : -------------------------------- n0110-0----1-------0-----0-000u1 0 -1.00 37.00
21 : ------------------------------n- u1100-1------------------u-10111 0 0.00 36.00
22 : -------------------------------- 00001-1------------------0-00110 0 -2.00 36.00
23 : ------------------------------n- n1011-1----0-------0-----u-11001 0 0.00 34.00
24 : -------------------------------- u0000-0------------------1-11100 0 -2.00 34.00
25 : ------------------------------n- 01101-1------------------u-10111 0 0.00 32.00
26 : -------------------------------- u1010-1----0-------1-----0-011u0 0 -1.00 32.00
27 : -------------------------------- 01001-1------------------0-01110 0 0.00 31.00
28 : -------------------------------- u0000-0------------------1-11011 0 0.00 31.00
29 : -------------------------------- u0111-0------------------0-00010 0 0.00 31.00
30 : -------------------------------- 01101-1------------------1-10010 0 0.00 31.00
31 : -------------------------------- 10110-1------------------0-01001 0 0.00 31.00
32 : -------------------------------- 00111-1------------------1-00100 0 0.00 31.00
33 : -------------------------------- 01011-1------------------1-11101 0 0.00 31.00
34 : -------------------------------- 00010-0------------------0-010u0 0 -1.00 31.00
35 : ------------------------------u- 10001-0------------------n-10110 0 0.00 30.00
36 : -------------------------------- 11100-0------------------0-000u1 0 -1.00 30.00
37 : -------------------------------- n0010-0------------------0-001u0 0 -1.00 29.00
38 : ------------------------------u- n1101-0------------------n-11110 0 0.00 28.00
39 : -------------------------------- n1100-1------------------0-001n0 0 -1.00 28.00
40 : -------------------------------- n1111-0------------------0-10000 0 -1.00 27.00
··· ··· ··· ··· ···

Tab. 5-2  Exemple de hemin diérentiel obtenu à l'aide d'un outil automatisé
de génération de ara téristique non-linéaire. Le ontenu du tableau orrespond à
la première partie (pas 1 à 40) du hemin diérentiel du premier blo utilisé par
l'attaque publié dans [MP08℄.

71
Chapitre 5. Cryptanalyses pratiques

i ∇ Ai ∇W i F (i) Pc (i) N (i)

··· ··· ··· ··· ···


41 : -------------------------------- n0010-1------------------0-11010 0 -1.00 26.00
42 : -------------------------------- n0100-0------------------1-110u1 0 -1.00 25.00
43 : ------------------------------u- 00000-1------------------n-01010 0 0.00 24.00
44 : -------------------------------- 00011-0------------------0-100n0 0 -1.00 24.00
45 : -------------------------------- n0111-1------------------1-10110 0 -1.00 23.00
46 : -------------------------------- n0111-1------------------0-00010 0 -1.00 22.00
47 : -------------------------------- u0010-1------------------1-00000 0 0.00 21.00
48 : -------------------------------- 01101-0------------------0-010n0 0 -1.00 21.00
49 : ------------------------------n- 11111-1------------------u-10011 0 0.00 20.00
50 : -------------------------------- 01000-1------------------0-100u0 0 -1.00 20.00
51 : -------------------------------- u1110-1------------------0-10010 0 -1.00 19.00
52 : -------------------------------- n1101-1------------------1-11110 0 -1.00 18.00
53 : -------------------------------- n0001-1------------------1-001u0 0 -1.00 17.00
54 : ------------------------------u- 11011-0------------------n-11110 0 0.00 16.00
55 : -------------------------------- 10001-0------------------0-000n0 0 -1.00 16.00
56 : -------------------------------- n0111-1------------------0-001n1 0 -2.00 15.00
57 : ------------------------------n- n0110-1------------------u-11101 0 -1.00 13.00
58 : -------------------------------- u1110-1------------------1-11001 0 -2.00 12.00
59 : ------------------------------n- u1110-0------------------u-010u1 0 -2.00 10.00
60 : ------------------------------u- n1111-1------------------n-100n1 0 -1.00 8.00
61 : -------------------------------- 01010-0------------------0-010n1 0 -1.00 7.00
62 : -------------------------------- 01111-1------------------1-11111 0 0.00 6.00
63 : -------------------------------- 10011-1------------------0-00010 0 0.00 6.00
64 : -------------------------------- n1000-0------------------0-10110 0 0.00 6.00
65 : -------------------------------- 01000-0------------------1-00011 0 0.00 6.00
66 : -------------------------------- 01000-0------------------0-101u1 0 -1.00 6.00
67 : ------------------------------u- 01001-0------------------n-01001 0 0.00 5.00
68 : -------------------------------- 10001-0------------------0-100u0 0 -1.00 5.00
69 : -------------------------------- u0010-1------------------1-11000 0 0.00 4.00
70 : -------------------------------- u1010-0------------------1-011n1 0 -1.00 4.00
71 : ------------------------------n- u0101-0------------------u-01101 0 0.00 3.00
72 : -------------------------------- 00011-1------------------0-100u0 0 -1.00 3.00
73 : -------------------------------- n1010-1------------------0-11000 0 0.00 2.00
74 : -------------------------------- n1100-0------------------0-10010 0 0.00 2.00
75 : -------------------------------- u1110-1------------------1-110n1 0 -1.00 2.00
76 : ------------------------------n- 11011-1------------------u-00100 0 0.00 1.00
77 : -------------------------------- 00111-0------------------1-000n1 0 -1.00 1.00
78 : -------------------------------- n0011-0------------------1-11101 0 0.00 0.00
79 : -------------------------------- u0101-0------------------1-01000 0 0.00 0.00
80 : --------------------------------

Tab. 5-3  Exemple de hemin diérentiel obtenu à l'aide d'un outil automatisé
de génération de ara téristique non-linéaire. Le ontenu du tableau orrespond à
la se onde partie (pas 41 à 80) du hemin diérentiel du premier blo utilisé par
l'attaque publié dans [MP08℄.

5-5 Te hnique des blo s multiples


Le prin ipe de onstru tion des fon tions SHA-0 et SHA-1 repose sur l'utilisation
d'un s héma de hirement par blo ad ho . Cependant, les s hémas de hirement
doivent posséder un ara tère inversible an de rendre possible le dé hirement. Mais,
ette propriété étant indésirable dans le ontexte des fon tions de ha hage, l'ajout
d'une étape de rebou lage (Feed Forward ) est né essaire et onduit à obtenir la

72
5-5. Te hnique des blo s multiples

onstru tion dite de Davies-Meyer. Pour les fon tions SHA-0 et SHA-1, le rebou lage
utilisé onsiste à ee tuer une somme modulo 232 de l'état initial des 5 registres ave
leur état nal (A0 + A80 , B0 + B80 , C0 + C80 , D0 + D80 , E0 + E80 ). Paradoxalement,
bien que onçu pour améliorer la résistan e au al ul d'anté édent, le rebou lage des
fon tions SHA-0 et SHA-1 est mis à prot par les ryptanalystes lors des attaques
par ollisions. Les diérentes appli ations de la te hnique des blo s multiples à es
fon tions illustrent parfaitement la faiblesse de e rebou lage.
Nous introduirons tout d'abord le prin ipe général de la te hnique des blo s mul-
tiples avant de détailler le premier exemple d'appli ation de ette te hnique à la
fon tion SHA-0 dû à Biham et al. [BCJ05℄. Nous dé rirons ensuite omment une
utilisation appropriée du rebou lage en ombinaison ave l'utilisation d'une ara té-
ristique non-linéaire onstitue aujourd'hui l'appro he lassique pour les attaques par
ollisions ontre SHA-0 et SHA-1. Finalement, nous formulerons une remarque sur
le as des ryptanalyses proposées par Wang et al. [WYY05b, WYY05d℄.

5-5.1 Prin ipe de la te hnique des blo s multiples.


La te hnique des blo s multiples a été utilisée ave su ès dans un ertain nombre
des attaques publiées ré emment. Cette te hnique ne s'applique qu'aux fon tions de
ha hage itératives et réside essentiellement dans la re her he de blo s de messages
parti uliers passés en arguments à la fon tion de ompression. Pour la dé rire, nous
allons tout d'abord introduire deux nouvelles dénitions.

Dénition 5.7 (Quasi- ollision) (Near Collision)


Soit une fon tion de ha hage ryptographique h : {0, 1}∗ → {0, 1}n , munie d'une
valeur initiale IV , on notera alors la fon tion h sous la forme h(IV, .). Un ouple de
messages (M, M ′ ) ∈ {0, 1}∗ × {0, 1}∗ , ave M 6= M ′ , forme une quasi- ollision pour
h si
h(IV, M ) ≈ h(IV, M ′ ).

On peut aussi formuler ette propriété de la façon suivante :

wH (h(M ) ⊕ h(M ′ )) ≪ n,

où wH désigne le poids de Hamming et où la notation ≪ indique que le nombre de


diéren es est petit devant la taille de l'empreinte.

Dénition 5.8 (Pseudo- ollision)


Soit une fon tion de ha hage ryptographique itérative h : {0, 1}∗ → {0, 1}n . Un
ouple de messages (M, M ′ ) ∈ {0, 1}∗ × {0, 1}∗ , ave M 6= M ′ , et un ouple de
valeurs initiales (V, V ′ ), forment une pseudo- ollision pour h si

h(V, M ) = h(V ′ , M ′ )

Cette dénition englobe les as où V =V′ et V 6= V ′ ; si V = V ′ = IV , on retrouve


la dénition lassique d'une ollision. On pourra ren ontrer dans la littérature des
terminologies diérentes : le as V =V′ est parfois désigné sous le terme de ollision
libre et le as V 6= V ′ sous le terme de pseudo- ollision. Une illustration de quasi-

ollision et pseudo- ollision est proposée gure 5-8.

73
Chapitre 5. Cryptanalyses pratiques

IV V V′
M M′ M M′

h h h h

h(IV, M ) ≈ h(IV, M ′ ) h(V, M ) = h(V ′ , M ′ )

Fig. 5-8  Quasi- ollision et pseudo- ollision.

Les dénitions de quasi- ollision et de pseudo- ollision s'étendent naturellement


aux fon tions de ompression. La te hnique des blo s multiples, appliquée par exemple
sur deux blo s de message, va onsister dans une première étape à re her her une
quasi- ollision pour la première itération de la fon tion de ompression f :

(M1 , M1′ ) tel que f (IV, M1 ) ≈ f (IV, M1′ ).

Puis dans la se onde étape, à re her her une pseudo- ollision parti ulière orrespon-
dant à la se onde itération de la fon tion de ompression :

(M2 , M2′ ) tel que f (H, M2 ) = f (H ′ , M2′ ),


où H = f (IV, M1 ) et H ′ = f (IV, M1′ ).

Une fois la quasi- ollision et la pseudo- ollision obtenues pour la fon tion de om-
pression, il sut de on aténer les deux blo s pour onstruire deux messages qui
forment une ollision pour la fon tion de ha hage :

hIV (M1 ||M2 ) = hIV (M1′ ||M2′ )

Cette te hnique, illustrée gure 5-9, fait à présent partie intégrante de l'éventail des
outils à la disposition des ryptanalystes.

5-5.2 Attaque de Biham et al.


La première ollision obtenue pour la fon tion SHA-0 est le fruit de la ollabo-
ration de plusieurs équipes de her heurs et de la mise en oeuvre de la te hnique
des blo s multiples. Le prin ipe de ette attaque repose essentiellement sur trois
observations :
 la ara téristique linéaire utilisée dans l'attaque est sous le ontrle total de
l'attaquant qui peut dénir le signe (respe tivement à l'addition modulo 232 )
des diéren es appliquées sur la variable de haînage d'entrée et obtenues sur
la variable de haînage de sortie ;
 grâ e au rebou lage, une diéren e en sortie peut être annulée par une dié-
ren e en entrée, si leurs valeurs arithmétiques modulo 232 sont opposées, e qui
donne un ertain degré de liberté ar deux mots binaires de 32 bits diérents
peuvent posséder une même valeur arithmétique ( onfert Carry Ee t ) ;

74
5-5. Te hnique des blo s multiples

M1 M2

f f

H1

H2
IV

H1′
f f

M1′ M2′

Fig. 5-9  Te hnique des blo s multiples : ollision sur 2 blo s.

 les 5 premières étapes de la fon tion de ronde IF (au sein desquelles s'expriment
les diéren es sur la variable de haînage d'entrée) peuvent induire, de part le
ara tère non-linéaire de ette fon tion, un omportement identique pour deux
diéren es d'entrée diérentes.
Forts de es observations, les auteurs de ette attaque ont onstruit un graphe orienté
dont les noeuds représentent les diéren es présentes dans les variables de haînage
et les arêtes les ara téristiques linéaires qui joignent les diéren es d'entrée aux
diéren es de sortie en prenant en ompte le rebou lage. La re her he d'un hemin
e a e dans e graphe à onduit à l'obtention d'une ollision onstituée de quatre
blo s de message et fondée sur quatre ara téristiques linéaires diérentes. La -
gure 5-10 illustre la te hnique des blo s multiples telle qu'utilisée dans l'arti le de
Biham et al.
La te hnique des blo s multiples mise en oeuvre par Biham et al., n'est pas
transposable en l'état à la fon tion SHA-1. En eet, an de onstruire un hemin
diérentiel passant par plusieurs blo s, il est né essaire de onstruire un graphe
onnexe. Pour la fon tion SHA-0, les perturbations sont ontenues sur la position de
bit 1, e qui induit un nombre limité de sommets (nous avons 5 registres et don 25 =
32 sommets diérents). Pour la fon tion SHA-1, la permutation ir ulaire ajoutée à
la fon tion d'expansion étale les positions de bits où se situent les perturbations,
augmentant exponentiellement le nombre de sommets, et rendant beau oup plus
di ile l'obtention d'un graphe susamment onnexe et onduisant à une attaque
ave une bonne omplexité.

Remarque. Le prin ipe de la te hnique des blo s multiples n'a été mis en oeuvre
pour la ryptanalyse de SHA-0 et SHA-1 qu'à partir du moment ou les ara téris-
tiques non-linéaire de la fon tion IF ont pu être exploitées. En eet, 'est l'utilisation
adéquate de la non-linéarité qui autorise l'emploi de ve teurs de perturbations plus
performants mais aboutissant seulement à des quasi- ollisions. Dans le adre d'une
attaque linéaire, la te hnique des blo s multiples ne permet pas d'améliorer la om-

75
Chapitre 5. Cryptanalyses pratiques

∆1M ∆2M ∆kM


∆1E =0 ∆2E =0 ∆kE = 0

Chemin Chemin Chemin


différentiel différentiel différentiel
1 2 k

∆1S ∆2S ∆kS

∆1E ∆2E ∆kE

∆=0

Fig. 5-10  Prin ipe de mise en oeuvre de la te hnique des blo s multiples utilisée
par Biham et al. dans [BCJ05℄.

plexité de l'attaque de façon signi ative.

5-5.3 Forme a tuelle


Nous avons onstaté dans la se tion onsa rée à la ara téristique non-linéaire que
elle- i permet de s'aran hir des onditions orrespondant aux ollisions tronquées
et au as pathologique de la fon tion IF , e qui autorise l'utilisation de ve teurs
de perturbations plus performants. L'impa t de la ara téristique non-linéaire est
tout aussi intéressant relativement à la mise en oeuvre de la te hnique des blo s
multiples. En eet il devient théoriquement possible, par le biais d'une ara téris-
tique non-linéaire appropriée, de onne ter une diéren e d'entrée quel onque à une
ara téristique linéaire onduisant à une diéren e de sortie hoisie.
La te hnique des blo s multiples utilisée par Biham et al. a né essité l'utilisa-
tion de quatre ara téristiques linéaires onne tées. Grâ e à l'outil que onstitue la
ara téristique non-linéaire, une unique ara téristique linéaire peut être employée
( onjointement à deux ara téristiques non-linéaires appropriées) pour onduire à
une ollision sur deux blo s de message. La gure 5-11 illustre la te hnique des blo s
multiples sous la forme mise en pratique dans les dernières ryptanalyses de SHA-0
et SHA-1.
L'utilisation de la ara téristique non-linéaire permet de s'aran hir des pro-
blèmes de re her he de graphe onnexe évoqués pré édemment. Il en résulte que la
ombinaison ara téristique non-linéaire/te hnique des blo s multiples est très e-
a e pour les ryptanalyses des fon tions SHA-0 et SHA-1. La première appli ation
de la te hnique des blo s multiples sous ette forme est due à De Cannière et Re h-
berger [DCR06℄.

5-5.4 Attaque de Wang et al.


La paternité de l'utilisation de la te hnique des blo s multiples aux fon tions
SHA-0 et SHA-1 est quelque fois attribuée à tort à Wang et al. Dans les faits, au un

76
5-6. Te hniques d'a élération de re her he de messages

∆M 1

∆0H ∆S ∆1H
=0 = +d = +d
N L1 L

∆M 2

∆1H ∆S ∆2H
= +d = −d =0
N L2 L

Fig. 5-11  Te hnique des blo s multiples utilisée en pratique pour la re her he de
ollisions pour les fon tions SHA-0 et SHA-1.

des deux arti les [WYY05b, WYY05d℄ ne la met en pratique.


Dans l'arti le onsa ré à la ryptanlyse de SHA-0 [WYY05d℄, la ollision exhibée
est ee tivement obtenue au moyen de deux blo s de message. Cependant omme
nous l'avons déjà mentionné, le premier blo de message ne sert qu'à satisfaire 16
onditions héritées de la ara téristique non-linéaire. Ce premier blo de message ne
onduit pas à une quasi- ollision et le ve teur de perturbations employé vérie la
ondition imposant l'absen e de début de ollision lo ale sur les inq derniers pas.
Pour utiliser un vo abulaire te hnique, e que les auteurs ont obtenu onstitue une
ollision à début libre (Free Start Collision ). Le fait qu'il n'y ait que seulement 16
onditions à remplir pour la variable de haînage d'entrée permet de transformer ette
ollision à début libre en ollision lassique pour un oût négligeable. La gure 5-12
illustre la forme (en terme de blo s de message et de diéren es) de la ollision pour
SHA-0 présentée dans l'arti le.
Dans l'arti le on ernant la ryptanalyse de SHA-1 [WYY05b℄, les auteurs pré-
sentent un hemin diérentiel pouvant onduire à l'obtention d'une quasi- ollision.
Ils indiquent de plus, qu'il est possible de transformer ette quasi- ollision en ol-
lision au moyen de la te hnique des blo s multiples. Cependant, la mise en oeuvre
de ette te hnique né essite l'utilisation de deux ara téristiques non-linéaires spé-
iques dans le as d'une attaque sur deux blo s. Les informations présentées dans
l'arti le ne permettent pas de onstruire une telle attaque.

5-6 Te hniques d'a élération de re her he de messages


La omposante d'a élération de re her he des attaques par ollision menées
ontre SHA-0 et SHA-1 onstitue une partie essentielle de es attaques. L'améliora-
tion de la omplexité de l'attaque obtenue grâ e à es te hniques provient du fait

77
Chapitre 5. Cryptanalyses pratiques

∆M = 0

∆H ∆H
=0 =0

∆M 6= 0

∆H ∆H
=0 =0
NL L

Fig. 5-12  Illustration du point de vue des diéren es de la ollision pour SHA-0
présentée dans [WYY05d℄.

que l'on peut onsidérer que le al ul du oût du hemin diérentiel débute à un pas
ultérieur au pas 16. En eet, es te hniques permettent de générer de façon e a e
des paires de messages se onformant, ave une probabilité pro he de 1, au hemin
diérentiel pour des pas supérieur à 16.
La première méthode d'a élération de re her he utilisée fut proposée par Biham
et Chen en 2004 [BC04℄ sous la forme des bits neutres. Puis en 2005, Wang et al.
[WYY05b℄ employèrent une te hnique dite de modi ation de message que les auteurs
appliquèrent ave su ès à plusieurs autres fon tions de ha hage. En 2007, Joux
et Peyrin [JP07℄ adaptèrent l'attaque boomerang de Wagner [Wag99℄, initialement
destinée à la ryptanalyse des s hémas de hirement par blo , aux fon tions de
ha hage. Nous présentons dans e hapitre ha une de es trois méthodes.

5-6.1 Bits neutres


Biham et Chen ont mis en éviden e une propriété parti ulière de la fon tion de
ompression de SHA-0 : l'existen e de bits neutres. Dans [BC04℄, les bits neutres sont
utilisés pour trouver des quasi- ollisions pour SHA-0 ainsi que des ollisions pour des
versions réduites.

Prin ipe des bits neutres. Le prin ipe de l'a élérateur de re her he proposé
par Biham et Chen se fonde sur la notion de onformité qui est dénie dans leur
arti le de la façon suivante :

Dénition 5.9 (Conformité)


Étant donné un ve teur α = (α1 , . . . , αr ), on dira qu'un ouple de messages (M, M ′ )
se onforme à αr si les états des registres A et A′ orrespondants à M et M ′ vérient :
Ai ⊕ A′i = αi pour i = 1, . . . , r.

78
5-6. Te hniques d'a élération de re her he de messages

Le ve teur α représente l'évolution des diéren es des états des registres A et A′ ,


dans l'hypothèse où toutes les perturbations sont orrigées onvenablement. Ce ve -
teur onstitue une représentation de la ara téristique linéaire du point de vue du
registre A. Si un ouple (M, M ′ ) se onforme à αr , ela implique qu'au pas r les états
de tous les registres se onforment exa tement à la séquen e de ollisions lo ales dé-
nie par le ve teur de perturbations. Pour un ouple de messages tiré aléatoirement
dans l'ensemble des ouples de messages se onformant à αr , les probabilités de bon
omportement des ollisions lo ales pour les pas inférieurs ou égaux à r sont égales
à 1. En onséquen e, re her her une ollision à partir d'un ensemble de ouples de
messages qui se onforment à αr , revient dans les faits à ommen er la re her he
au pas r. En fon tion de la valeur de r, ela peut réduire de façon signi ative la
omplexité de l'attaque.
Une fois dénie la propriété susante pour améliorer la probabilité qu'un ouple
de messages forme une ollision, il faut extraire la propriété permettant de ara té-
riser es ouples, an de onstruire e a ement le sous-espa e de re her he. C'est à
ette n que les auteurs ont introduit la notion de bit neutre, dont voi i la dénition :

Dénition 5.10 (Bit neutre)


Soit (M, M ′ ) un ouple de messages se onformant à αr pour un r donné supérieur
ou égal à 16, on dira que le bit i (i ∈ {1, . . . , 512}) est un bit neutre relativement au
ouple (M, M ′ ) si le ouple de messages obtenu en omplémentant à 1 le bit i de M
et de M ′ se onforme aussi à αr .

Cette notion peut être fa ilement étendue aux ensembles au moyen des dénitions
suivantes :

Dénition 5.11 (Paire neutre)


On dira que la paire de bit (i, j) est une paire neutre relativement au ouple (M, M ′ )
si tous les ouples de messages, obtenus en omplémentant à 1 tout sous-ensemble
de es bits ({i}, {j} et {i, j}) de M et de M ′ , se onforment à αr .

Dénition 5.12 (Ensemble neutre)


Un ensemble E ⊆ {1, . . . , 512}, est neutre relativement au ouple (M, M ′ ) si pour
tout sous-ensemble F de E , tous les ouples de messages obtenus en omplémentant
à 1 les bits orrespondants à F de M et de M ′ se onforment à αr .

Dénition 5.13 (Ensemble 2-neutre)


Un ensemble F ⊆ {1, . . . , 512}, est 2-neutre relativement au ouple (M, M ′ ) si haque
bit dans F est neutre relativement au ouple (M, M ′ ) et haque paire de bits dans F
est neutre relativement au ouple (M, M ′ ).

Constru tion du sous-espa e de re her he de messages. On onstruit le


sous-espa e de re her he à partir d'un ouple de messages (M, M ′ ) vériant la dié-
rentielle dénie par le masque de perturbations P et les deux propriétés suivantes :

1. Le

ouple (M, M ) se onforme à αr .
2. Le ouple (M, M ′ ) possède un ensemble 2-neutre susamment grand. Les au-
teurs ont mesuré expérimentalement qu'environ 1/8 des sous-ensembles de bits
de l'ensemble 2-neutre sont des ensembles neutres.

79
Chapitre 5. Cryptanalyses pratiques

On note k(r) le ardinal maximal de l'ensemble 2-neutre pour un ouple (M, M ′ )


et un r donnés. Pour un ouple de messages vériant es deux propriétés, on peut
onstruire un ensemble de 2k(r) ouples de messages en omplémentant à 1 des sous-
ensembles de bits de l'ensemble 2-neutre. Parmi es ouples, un nombre pro he de
2k(r)−3 d'entre eux se onformeront à αr .
Soit pi la probabilité que le modèle de ollisions lo ales se vérie au pas i (i.e.
qu'il n'y ait pas de retenue lors de l'insertion d'une perturbation ou bien qu'une
orre tion s'ee tue onvenablement), pi est égale à 1 s'il n'y a ni perturbation ni
orre tion au pas i. La probabilité de véri ation du modèle pour l'ensemble des 80
pas peut alors s'exprimer de la façon suivante :

80
Y
p= pi .
i=1

Si les inq dernières oordonnées du ve teur de perturbations sont nulles alors p est
la probabilité d'obtenir une ollision, sinon 'est la probabilité d'obtenir une quasi-
ollision.
Pour un ouple de message se onformant à αr on note :

80
Y
p(r) = pi .
i=r+1

Le nombre attendu de ouple de messages se onformant à αr à tester, pour en


obtenir un qui vérie le modèle pour les 80 pas, est 1/p(r). Pour onstruire le sous-
espa e de re her he, on hoisira don r tel que 2
k(r) soit supérieur ou égal à 1/p(r).
La valeur du paramètre r hoisie dans l'arti le de Biham et Chen est égale à 23.

Constru tion d'un ensemble 2-neutre. La onstru tion d'un ensemble 2-neutre
se déroule en deux étapes : on onstruit tout d'abord un ensemble de bits neutres,
puis on identie dans et ensemble les paires neutres an d'obtenir un sous-ensemble
2-neutre.

1. On hoisit un ouple de messages (M, M ′ ) tel que M ′ = M ⊕ P et (M, M ′ )


se onforme à αr . i
Soit e , i ∈ {1, . . . , 512}, le message dont le bit i est égal à
1 et dont tous les autres bits sont égaux à 0. A partir du ouple (M, M ), on

onstruit 512 nouveaux ouples de la forme :

(M ⊕ ei , M ′ ⊕ ei ) ∀i ∈ {1, . . . , 512}.

On teste haque ouple, an de déterminer s'il se onforme à αr . Si un ouple


se onforme à αr , alors le bit i est un bit neutre. On obtient don un ensemble
de paires neutres relativement au ouple (M, M ′ ).
2. Pour onstruire un ensemble 2-neutre relativement au ouple (M, M ′ ), on dé-
nit un graphe dont les sommets orrespondent aux bits neutres trouvés. On
ajoute une arête pour haque paire de bits neutres qui onstitue une paire
neutre. La lique maximale (le plus grand sous-ensemble de sommets tels que
ha un des sommets de e sous-ensemble est relié à tous les autres sommets
du sous-ensemble) pour e graphe onstitue le plus grand ensemble 2-neutre

80
5-6. Te hniques d'a élération de re her he de messages

possible relativement au ouple (M, M ′ ). Biham et Chen pré isent que si trou-
ver la lique maximale d'un graphe est en général un problème NP- omplet,
dans le adre de ette attaque, trouver une lique susamment grande (i.e.
possédant au moins k(r) sommets) n'est pas di ile ar de nombreux sommets
sont onne tés à tous les autres.

Constru tion d'un ensemble 2-neutre maximal. An d'optimiser l'attaque,


on souhaite trouver un moyen d'obtenir un ouple de messages pour lequel l'ensemble
2-neutre relatif soit le plus grand possible. Pour e faire, les auteurs dé rivent des
heuristiques tirées de résultats expérimentaux permettant de modier le ouple de

départ (M0 , M0 ) an d'obtenir un nouveau ouple sus eptible d'être muni d'un en-
semble 2-neutre plus grand. De plus, ils élargissent l'ensemble des paires neutres en
onsidérant des paires, des triplés et des quadruplés de bits simultanément neutres,
i.e. qui ne sont pas des bits neutres mais dont le ouple de message obtenu en les
omplémentant à 1 simultanément se onforme à αr .
Une fois le nouveau ouple (M1 , M1′ ) déterminé, on onstruit son ensemble 2-
neutre. Si et ensemble ontient plus d'éléments que

elui relatif au ouple (M0 , M0 ),

on rempla e (M0 , M0 ) par

(M1 , M1 ), et on re ommen e jusqu'à obtenir un ouple de
messages muni d'un ensemble 2-neutre de taille susante.

Con lusion. La te hnique d'a élération de re her he de Biham et Chen a onduit


à l'obtention des premières quasi- ollisions pour la fon tion de ha hage SHA-0. Ce-
pendant bien qu'ayant prouvé son e a ité pour la ryptanalyse de SHA-0, la mise
en oeuvre de ette te hnique pour la fon tion SHA-1 est relativement problématique.
En eet an de se onformer à la ara téristique linéaire, les messages expansés or-
respondant au ouple de messages andidats à la ollision doivent vérier un ertain
nombre de ontraintes (évoquées se tion 5-3.4 de e hapitre). Les ouples de mes-
sages supplémentaires obtenus grâ e à la te hnique des bits neutres doivent eux aussi
vérier es ontraintes sous peine de perdre omplètement le l de la ara téristique
linéaire. Dans le as de SHA-0, es ontraintes sont onnées aux positions de bit
1, 6 et 31 ; es positions sont alors inéligibles en tant que bit neutre. Dans le as de
SHA-1, du fait de la permutation ir ulaire introduite dans la formule d'expansion,
les positions de bit sujettes à des ontraintes sont plus nombreuses e qui réduit d'au-
tant les hoix de positions possibles pour les bits neutres. Finalement, ette te hnique
d'a élération de re her he s'avère ine a e pour la fon tion SHA-1.

5-6.2 Modi ations de message


Les te hniques de modi ations de message furent initialement proposées par
Wang et al. pour la ryptanalyse de la fon tion MD5 [WY05℄. Ces te hniques furent
ensuite adaptées et appliquées aux fon tions SHA-0 et SHA-1. Dans l'arti le [WYY05b℄,
les auteurs font la distin tion entre d'une part modi ations de message simples et
modi ations de message avan ées. Naito et al. [NSS06℄ ont proposé un nouveau type
de modi ations de message avan ées baptisées modi ations sous-marines (Sub-
marine Message Modi ations ).
Le prin ipe d'une modi ation de message onsiste à modier pré isément er-
tains bits ou ombinaisons de bits des mots de message de telle sorte qu'une ondition
sur les bits des registres internes auparavant non vériée soit validée. Le pro essus

81
Chapitre 5. Cryptanalyses pratiques

d'appli ation des modi ations de message se déroule pas à pas. Il en dé oule que
les modi ations de message utilisées à un ertain pas ne doivent pas perturber
les éventuelles modi ations et onditions vériées par les états des registres pré é-
dents. On doit de plus vérier que haque modi ation de message s'a orde ave
le système d'équations linéaires hérité de la onstru tion et de l'instan iation de la
ara téristique linéaire. La onstru tion et la mise en oeuvre de es modi ations de
message prend généralement pla e après qu'un hemin diérentiel omplet (ve teur
de perturbations et ara téristique non-linéaire) ait été obtenu.

Modi ation de message simple. Les modi ations de message simples inter-
viennent seulement lors des 16 premiers pas de la fon tion de mise à jour des registres,
qui sont les pas pour lesquels l'attaquant possède un ontrle dire t sur les mots de
message. Ces modi ations se résument en général à la modi ation d'un bit du mot
de message orrespondant à la même position de bit pour le registre. Pour modier
la valeur du bit ai,j (bit de position j du registre Ai ), on peut re al uler la valeur du
mot de message Wi−1 = Wi−1 + 2 .
j

On peut assez fa ilement s'assurer que l'ensemble des modi ations de message
simples permettent de orriger les onditions imposées aux états des registres des
16 premiers pas ave une probabilité de su ès égale à 1. Une méthode triviale per-
mettant de s'assurer de vérier l'ensemble des onditions sur les registres Ai pour
1 ≤ i ≤ 16 onsiste à utiliser la pro édure suivante :

 Générer un ensemble d'états Ai satisfaisant les onditions orrespondant au


hemin diérentiel,

 Cal ulerWi−1 = Ai − (Ai−1 ≪ 5) − IF (Ai−2 , Ai−3 ≪ 30, Ai−4 ≪ 30) −


(Ai−5 ≪ 30) − Ki .

Modi ation de message avan ée. Les modi ations de message avan ées visent
à orriger des onditions non vériées par les bits des registres pour les pas supérieurs
ou égaux à 16 où les mots de message utilisés ne sont plus sous le ontrle dire t du
ryptanalyste, mais issus du pro essus d'expansion. Ces modi ations sont beau oup
plus omplexes à onstruire. Leur utilisation repose le plus souvent sur la modi a-
tion simultanée de plusieurs bits de message et s'appuient aussi sur la diusion des
modi ations sur les états des registres.

Par exemple, an de s'assurer de la ondition a21,4 = a20,4 que l'on peut trouver
dans le hemin diérentiel présenté dans [WYY05b℄, Naito et al. ont proposé la
modi ation de message avan ée qui onsiste à ajouter les onditions supplémentaires
suivantes :

a6,6 = m5,6 ,
m6,11 6= m5,6 ,
m7,6 = m5,6 ,
a7,4 = 0, a8,4 = 1,
m10,4 6= m5,6

82
5-6. Te hniques d'a élération de re her he de messages

puis à ee tuer les modi ations

M5 = M5 ⊕ 25 ,
M6 = M6 ⊕ 210 ,
M7 = M7 ⊕ 25 ,
M10 = M10 ⊕ 23 .

À la diéren e des modi ations de message simples, des al uls de retenues in-
terviennent dans les modi ations de message avan ées, il existe don une probabilité
que es modi ations é houent.

Con lusion. Les modi ations de message avan ées permettent de satisfaire des
onditions sur les états des registres à des pas supérieurs au pas 16. Elles sont don
sus eptibles d'induire une amélioration de la omplexité de l'attaque, dès lors que leur
probabilité d'é houer est petite. Des modi ations de message ont été proposées pour
orriger des onditions à hauteur du pas 24 pour SHA-0 [NSS06℄ et du pas 25 pour
SHA-1 [WYY05 ℄. Cependant, es modi ations sont onstruites pour un hemin
diérentiel donné et dépendent fortement du ve teur de perturbations hoisi. De plus,
les modi ation publiées à e jour ont été établies à la main e qui rend fastidieuse
leur utilisation en tant que te hnique d'a élération de re her he générique. Elles
onsomment aussi un grand nombre de degrés de liberté.

5-6.3 Boomerangs
L'attaque boomerang, introduite par Wagner [Wag99℄, est une attaque adapta-
tive utilisant des textes lairs et hirés (Adaptive hosen plaintext and iphertext
atta k ). Elle fut développée ensuite par Kelsey et al. [KKS00℄ en attaque à lair hoisi
(Choosen plaintext atta k ) et rebaptisée attaque boomerang ampliée. L'appli ation
des attaques boomerang ampliées aux fon tions de ha hage, et plus parti ulièrement
à la fon tion SHA-1, est due à Antoine Joux et Thomas Peyrin [JP07℄.

Appli ation aux s hémas de hirement par blo L'attaque boomerang se


fonde sur l'attaque diérentielle. Son prin ipe onsiste à joindre deux ara téris-
tiques diérentielles ourtes possédant une probabilité élevée en un quartet, an
d'obtenir un distingueur sus eptible de ouvrir plus de tours ave une meilleure pro-
babilité. An de dé rire l'attaque boomerang et l'attaque boomerang ampliée, nous
reprendrons i i les notations et les arguments de l'arti le de Kelsey et al. [KKS00℄.
Considérons un s héma de hirement par blo E dé omposable en deux parties e0
et e1 . Nous utiliserons les notations suivante pour dé rire le hirement :
 E(Xi ) = e1 (e0 (Xi )), ave
 Xi : texte lair
 Yi = e0 (Xi ),
 Zi = e1 (Yi ) : texte hiré.
Supposons à présent que nous disposions de diérentielles pour e0 , e−1
0 et e−1
1 ,
et prenons de plus l'hypothèse que es diérentielles possèdent une probabilité égale
à 1. Cette hypothèse ne sert qu'à simplier au maximum la des ription de l'attaque

83
Chapitre 5. Cryptanalyses pratiques

qui fon tionne pour des diérentielles ayant des probabilités inférieures mais aussi
pour des diérentielles tronquées. Nous avons don les diérentielles suivantes :

∆0 −→ ∆1 qui se propagent à travers e0 et e1 .


Nous pouvons dès lors utiliser l'attaque boomerang de Wagner pour onstruire
un distingueur pour le s héma de hirement E de la façon suivante :

1. Faire la requête en hirement par E de la paire de message (X0 , X1 ), vériant


X0 ⊕ X1 = ∆0 .
2. Après e0 , la paire a été hirée en (Y0 , Y1 ) qui vérie Y0 ⊕ Y1 = ∆ 1 . Après
e1 , on obtient la paire (Z0 , Z1 ) pour laquelle il n'existe pas a priori de relation
diérentielle.

3. Nous onstruisons une nouvelle paire (Y2 , Y3 ) pour e−1


1 à partir de la requête
en dé hirement par E
−1 de Z2 = Z0 ⊕ ∆1 et Z3 = Z1 ⊕ ∆1 .

4. La paire (Z2 , Z3 ) est dé hirée en (Y2 , Y3 ) ave les relations Y2 ⊕ Y0 = ∆0 et


Y3 ⊕ Y1 = ∆ 0 .
5. Cela détermine la relation diérentielle entre Y2 et Y3 :

Y0 ⊕ Y1 = ∆ 1 , Y2 ⊕ Y0 = ∆ 0 , Y3 ⊕ Y1 = ∆ 0 et don Y2 ⊕ Y3 = ∆ 1 .
6. Et omme Y2 ⊕ Y3 = ∆1 , nous avons une paire valide pour e0 qui se propage
pour donner X2 ⊕ X3 = ∆0 .

La probabilité qu'un tel évènement se produise pour une permutation aléatoire de


taille n bits est égale à 2−n . Il en résulte que ette pro édure peut être utilisée
pour distinguer un s héma de hirement par blo E d'une permutation aléatoire.
L'attaque de Wagner né essite à la fois des textes lairs hoisis et des textes hirés
hoisis.
L'amélioration proposée par Kelsey et al. onsiste à transformer ette attaque
en attaque à lair hoisi seulement. Supposons que le s héma de hirement par
blo E traite des textes de taille n bits. La requête de 2n/2 paires de textes lairs
hoisis (X2i , X2i+1 ) vériant X2i ⊕ X2i+1 = ∆0 nous fournit 2n/2 paires (Y2i , Y2i+1 )
vériant Y2i ⊕ Y2i+1 = ∆1 , puisque nous avons émis l'hypothèse que les diérentielles
utilisées possèdent une probabilité égale à 1. De part le paradoxe des anniversaires,
on peut s'attendre à l'existen e dans et ensemble d'une paire (i, j) pour laquelle
Y2i ⊕ Y2j = ∆0 . Dès que nous obtenons une telle paire, la propriété boomerang se
vérie :

Y2i ⊕ Y2i+1 = ∆1 , Y2j ⊕ Y2j+1 = ∆1 , Y2i ⊕ Y2j = ∆0 et don Y2i+1 ⊕ Y2j+1 = ∆0 .


De plus, nous avons aussi :

Z2i ⊕ Z2j = ∆1 et Z2i+1 ⊕ Z2j+1 = ∆1 .


n
Il existe environ 2 paires (i, j) possibles, et la probabilité pour qu'une paire donnée
satisfasse les deux dernières équations est égale à 2−2n . Cette te hnique permet don
bien de distinguer le s héma de hirement E d'une permutation aléatoire en utilisant
seulement des textes lairs hoisis.
L'avantage prin ipal de es attaques est qu'elles permettent de onstruire une
attaque diérentielle y ompris pour des s hémas de hirement pour lesquels il
n'existe pas de bonne diérentielle ouvrant l'ensemble des rounds. Une illustration
du prin ipe de l'attaque boomerang et de l'attaque boomerang ampliée pour les
hirements par blo se trouve gure 5-13.

84
5-6. Te hniques d'a élération de re her he de messages

X1 X3 X2i+1 X2j+1

X0 X2 X2i X2j
∆0 ∆0 ∆0 ∆0

e0 e0 e0 e0

e0 e0 e0 e0
∆0 ∆0
Y1 Y3 Y2i+1 Y2j+1
∆1 ∆0 ∆1 ∆1 ∆0 ∆1
Y0 Y2 Y2i Y2j
e1 e1 e1 e1

e1 e1 e1 e1
∆1 ∆1

∆1 ∆1
Z1 Z3 Z2i+1 Z2j+1

Z0 Z2 Z2i Z2j

Attaque boomerang. Attaque boomerang amplifiée.

Fig. 5-13  Attaque boomerang et attaque boomerang ampliée pour les s hémas de
hirement par blo . Le sens des è hes indique le sens hirement/dé hirement.

Appli ation aux fon tions de ha hage L'appli ation de l'attaque boomerang
ampliée aux fon tions de ha hage onsiste à ombiner à la diérentielle prin ipale
plusieurs diérentielles partielles, dites diérentielles auxiliaires. Ces diérentielles
auxiliaires onstituent des diérentielles qui possèdent un bon omportement sur un
nombre limité de pas de la fon tion de mise à jour des registres.
Nous allons à présent dé rire le prin ipe d'appli ation de l'attaque boomerang
ampliée pour les fon tions SHA-0 et SHA-1. Dans leur arti le, Joux et Peyrin [JP07℄
indiquent que ette te hnique onstitue une généralisation des te hniques de bits
neutres et de modi ations de message. Nous hoisissons i i de nous pla er dans le
ontexte d'une utilisation des boomerangs en tant que bits neutres, ar 'est elle
que nous avons utilisée ave su ès lors de la ryptanalyse que nous avons menée
ontre la fon tion SHA-0 [MP08℄.
Considérons une re her he de ollision, les premières étapes de l'attaque nous
ont permis de onstruire un hemin diérentiel, que nous qualierons de prin ipal, et
d'obtenir une diérentielle ∇P , à partir de laquelle nous pouvons déduire la diéren e
∆P w appliquée en entrée au ouple de messages (par simpli ité, et sans perte de
généralité, nous onsidérerons que toutes les diéren es utilisent le ou ex lusif bit
à bit). Dans les notations que nous emploierons, l'indi e w indique une diéren e
on ernant les mots de message, l'indi e a indique une diéren e on ernant l'état
des registres. Nous possédons aussi pour les états des registres, une diéren e en
entrée ∆Ea et une diéren e en sortie ∆P a . Ces diéren es pourront être nulles dans
le as d'une re her he de ollision sur un seul blo , ou égale à des valeurs parti ulières
dans le as où la te hnique des blo s multiples est employée. Nous re her hons alors
les paires de messages (M, M ′ ) ave M ′ = M ⊕ ∆P w pour lesquelles la diéren e de

85
Chapitre 5. Cryptanalyses pratiques

sortie ∆P a est atteinte, e qui se produit ave la probabilité p∇P pour haque paire
andidate.
An d'illustrer le prin ipe de l'attaque boomerang, nous supposons que nous
avons à notre disposition une diérentielle auxiliaire ∇A pour laquelle la diéren e
appliquée aux messages vaut ∆Aw et la diéren e observée sur l'état interne vaut
∆Aa . Une diérentielle auxiliaire se ara térise de plus par sa  portée  s, 'est à dire
le pas auquel la diéren e ∆Aa est destinée à être obtenue. Pour une paire de message
(M, M ′ ) ave M ′ = M ⊕ ∆Aw , la diéren e ∆Aa est atteinte à la portée s ave la
probabilité p∇A pour haque paire andidate. On peut remarquer que la diérentielle
prin ipale ∇P onstitue une diérentielle auxiliaire de portée 80.
Nous divisons l'ensemble des 80 pas de la fon tion de mise à jour des registres en
deux parties, la division étant positionnée sur le pas s orrespondant à la portée de
la diérentielle auxiliaire. Nous notons ∆Sa la diéren e attendue sur l'état interne
au pas s. (M, M ′ = M ⊕ ∆P w ) onduise
La probabilité qu'une paire de messages
à un état interne vériant la diéren e ∆Sa au pas s est notée pS . La probabilité
qu'à partir d'une diéren e ∆Sa sur l'état interne au pas s, une paire de message
(M, M ′ = M ⊕ ∆P w ) onduise à une diéren e ∆P a sur l'état interne au pas 80 est
notée pF . En supposant les étapes indépendantes, nous avons p∇P = pS × pF .
Une appli ation de la te hnique des boomerangs ampliées se déroule alors de la
façon suivante :

1. On hoisit une paire de messages (M1 , M1′ = M1 ⊕ ∆P w ) se onformant au


hemin diérentiel prin ipal jusqu'au pas s, e i est vrai ave la probabilité pS .
2. On onstruit alors les paires (M1 , M2 = M1 ⊕ ∆Aw ) et (M1′ , M2′ = M1′ ⊕ ∆Aw ),
es paires se onforment au hemin diérentiel auxiliaire ave la probabilité
p∇A .
Si es paires sont valides, la paire (M2 , M2′ ) se onforme aussi au hemin diérentiel
prin ipal jusqu'au pas s. La probabilité que ette paire se onforme à l'intégralité du
p2∇A × pF . Cette te hnique permet don , dès
hemin diérentiel prin ipal est égale à

lors qu'une première paire de message (M1 , M1 ) se onformant au hemin diérentiel

prin ipal jusqu'au pas s est obtenue, de onstruire une se onde paire (M2 , M2 ) se
2
onformant elle aussi jusqu'au pas s ave une probabilité égale à p∇A . En pratique,
on peut onstruire relativement fa ilement, plusieurs hemins diérentiels auxiliaires
∇Ai dont les probabilités p∇Ai sont très pro hes de 1. Il en résulte qu'à partir de
i hemins diérentiels auxiliaires, il est possible d'amplier une paire de messages
onforme au pas s en 2i paires onformes jusqu'à e même pas. L'utilisation de
ette te hnique permet don une a élération de la re her he d'une paire de mes-
sages valide. Une illustration du prin ipe de l'attaque boomerang ampliée se trouve
gure 5-14.
Notre obje tif i i étant de donner seulement une des ription on ise de la te h-
nique des boomerangs ampliée appliquée aux fon tions de ha hage, nous invitons le
le teur intéressé par une des ription plus omplète et détaillée à se référer à la thèse
de Thomas Peyrin [Pey08℄.

Con lusion Les diérentielles auxiliaires employées dans les attaques boomerangs
onstituent une généralisation des deux te hniques d'a élération de re her he pré-
édentes. Elles peuvent être utilisées de façon similaire aux bits neutres an de mul-
tiplier les instan es de paires de message onformes, ou bien de façon similaire au

86
5-6. Te hniques d'a élération de re her he de messages

H′ H′
H ∆Ea H ∆Ea

∆Sa ∆Sa
M1′ M2′

M1 M2
∆Aw
∆P w ∆Aw ∆P w

∆P a ∆P a
H1′ H2′

H1 H2

Fig. 5-14  Attaque boomerang ampliée appliquée aux fon tions SHA-0 et SHA-1.

modi ations de message an de modier des paires de message pour amener des
onditions portant sur des bits de registres à être vériées. Elles onstituent à e
jour, la te hnique d'a élération de re her he la plus e a e pour la ryptanalyse
des fon tions SHA-0 et SHA-1.

87
Chapitre 5. Cryptanalyses pratiques

88
6

A élération de la ryptanalyse de
SHA-0

Sommaire
6-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . 89
6-2 Nouveau ve teur de perturbations . . . . . . . . . . . 90
6-3 Utilisation des boomerangs . . . . . . . . . . . . . . . 90
6-4 Cara téristique non-linéaire . . . . . . . . . . . . . . . 96
6-5 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . 97

6-1 Introdu tion


La première attaque par ollision ontre la fon tion SHA-0 fut proposée par
Chabaud et Joux en 1998 [CJ98℄. Cet arti le se on entre essentiellement sur la a-
ra téristique linéaire, et 3 ontraintes sur le ve teur de perturbations sont imposées
an d'obtenir une ollision sur un seul blo . Le ve teur proposé onduisait à une
probabilité de su ès de l'ordre de 2
−68 . Cependant, un implémentation astu ieuse

de l'attaque permettait de réduire la omplexité de l'attaque à 2


61 évaluations de

la fon tion de ompression. La ontribution de l'arti le de Biham et Chen de 2004


[BC04℄ apporta la première te hnique d'a élération de re her he sous la forme des
bits neutres. Puis l'ajout de l'appli ation de la te hnique des blo s multiples dans
[BCJ05℄ permit d'obtenir la première ollision pour la fon tion SHA-0 ave une om-
plexité de 251 appels à la fon tion de ompression. L'attaque de 2005 de Wang et al.
[WYY05d℄, se fondit sur une nouvelle façon d'appréhender la diérentielle et d'en-
visager sa façon de se propager au sein des registres. Forts de ette appro he, les
auteurs relâ hèrent 2 des trois ontraintes imposées au ve teur de perturbations et
mirent à jour un nouveau ve teur plus e a e. Cependant, 'est l'introdu tion d'un
nouvel outil dénommé ara téristique non-linéaire qui autorisa la mise en oeuvre de
e ve teur et permit d'abaisser la omplexité de l'attaque à 239 appels de la fon -
tion de ompression. Naito et al. [NSS06℄ apportèrent leur ontribution à l'édi e en
proposant de nouvelles pistes pour la phase d'a élération de re her he, onduisant
à une attaque théorique munie d'une omplexité de l'ordre de 2
36 appels.

Finalement, la meilleure attaque publiée à e jour est issue d'un travail ommun
ave Thomas Peyrin [MP08℄, et possède une omplexité de l'ordre de 233 évalua-

89
Chapitre 6. A élération de la ryptanalyse de SHA-0

tions de la fon tion de ompression. C'est ette attaque que nous présentons dans e
hapitre.

6-2 Nouveau ve teur de perturbations


La ara téristique linéaire utilisée dans l'attaque de Wang et al. a pour obje tif
l'obtention de ollisions sur un seul blo : d'où la ontrainte sur les inq dernières
oordonnées de leur ve teur de perturbations. On peut d'ailleurs remarquer que
même si la ollision exhibée dans l'arti le [WYY05d℄ utilise deux blo s de message,
elle ne onstitue pas au sens stri t une utilisation de la te hnique des blo s multiples.
En eet, les variables de haînage issues de la première itération de la fon tion de
ompression sont identiques et obtenues ave un même blo de message. L'utilisation
de e premier blo ne s'avère né essaire que pour obtenir une variable de haînage
dont les bits vérient un ertain nombre
2 d'équations héritées de la ara téristique
non-linéaire.
Nous avons hoisi de onstruire notre attaque en tirant pleinement partie de
la te hnique des blo s multiples, e qui permet de relâ her la dernière ontrainte
pesant sur le ve teur de perturbations. Une fois toutes les ontraintes relâ hées,
nous avons déni omme ritère pour évaluer les ve teurs andidats de minimiser le
nombre de onditions à satisfaire entre les étapes 17 et 80. Nous avons don énuméré
exhaustivement l'ensemble des ve teurs de perturbations selon e ritère de séle tion.
Nous avons trouvé de nombreux ve teurs présentant un nombre de onditions aux
alentours de 40. Cependant, nous avons remarqué que es ve teurs présentaient un
omportement inégal relativement à l'outil de génération de ara téristique linéaire et
à la te hnique d'a élération de re her he fondée sur les boomerangs. En onséquen e,
nous avons onstruit la ara téristique non-linéaire pour ha un des ve teurs les plus
prometteurs pour nalement retenir le ve teur présenté dans le tableau 6-1.
Le nombre total de onditions entre les pas 17 et 80 pour e ve teur s'élève à 42.
Cependant, on peut fa ilement s'aran hir des onditions présentes au pas 17 de la
même façon que dans [CJ98℄. De plus en pratique, lors de notre re her he ee tive
de ollision, une mauvaise paire de message est déte tée très rapidement (après
environ 20 pas en moyenne). Il en résulte que la omplexité théorique, en nombre
d'évaluation de la fon tion de ompression de SHA-0 et avant utilisation d'une te h-
nique d'a élération de re her he, est égale à 240 /22 = 238 , e qui a été onrmé par
l'implémentation pratique (2
37,9 et 237,8 évaluations de SHA-0 en moyenne pour le
premier et le se ond blo respe tivement).

6-3 Utilisation des boomerangs


Nous avons appliqué à la fon tion SHA-0 la te hnique d'a élération de re her he
des boomerangs pour les fon tions de ha hage introduite dans [JP07℄. Pour notre
attaque, nous avons utilisé deux types diérents de diérentielles auxiliaires mises
en oeuvre dans le ontexte des bits neutres.
Nous avons déni la portée d'une diérentielle auxiliaire omme étant le dernier
pas où les diéren es in ontrlées issues de ette diérentielle n'interfèrent pas ave

2
L'arti le de Wang et al. fait mention de 14 onditions ependant le nombre exa t de onditions

est 16 [NSS06, Man06℄.

90
6-3. Utilisation des boomerangs

Pas 1 to 20

ve teur 1 1 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 0 0 0

♯ onditions - - - - - - - - - - - - - - - - 2 0 2 1

Pas 21 to 40

ve teur 1 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0

♯ onditions 1 0 2 0 2 0 1 0 0 0 0 0 0 0 1 0 1 1 0 1

Pas 41 to 60

ve teur 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1

♯ onditions 1 1 1 0 1 1 1 0 1 0 1 1 1 1 0 1 2 1 2 2

Pas 61 to 80

ve teur 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0

♯ onditions 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 0

Tab. 6-1  Nouveau ve teur de perturbations pour SHA-0, ave le nombre de ondi-
tions pour haque pas (les onditions des 16 premiers ne sont pas prises en ompte).

le hemin diérentiel prin ipal. Les deux diérentielles auxiliaires que nous avons
utilisées sont notées AP1 et AP2 :
 la diérentielle auxiliaire AP1 présente peu de ontraintes et possède une portée
faible,
 la se onde diérentielle AP2 né essite de plus nombreuses ontraintes, mais
possède une portée supérieure.
Un ompromis a été fait entre es deux types de diérentielles an d'obtenir le
meilleur ensemble possible de hemins auxiliaires sans toutefois trop ontraindre le
hemin diérentiel prin ipal, e qui pourrait avoir omme eet de faire é houer le
pro essus de génération de la ara téristique non-linéaire.

Collisions lo ales non-linéaires. La diérentielle asso iée à une ollision lo ale


se présente sous la forme suivante :

∆ =< 2j , 2j+5 , 2j , 2j+30 , 2j+30 , 2j+30 > .

La perturbation insérée à l'étape 1 sur une position de bit j est su essivement


orrigée dans les étapes suivantes par l'inje tion de perturbations sur les positions
de bit j+5 à l'étape 2, j à l'étape 3, j + 30 aux étapes 4, 5 et 6. Les étapes 3, 4 et
5 orrespondent aux as où la perturbation initiale se propage à travers la fon tion
de ronde. Cette séquen e de orre tions est onstruite pour onduire à l'obtention
d'une ollision sur 6 pas dans le modèle linéaire. Il s'agit de la séquen e présentant
les meilleures probabilités de su ès pour l'ensemble des 80 pas de la fon tion de
mise à jour des registres, dont la moitié utilise la fon tion XOR. Cependant, si nous
hoisissons de nous restreindre au as de la fon tion IF , il existe d'autres séquen es
de orre tions sus eptibles de mener à l'obtention d'une ollision sur 6 pas. En eet,
la fon tion IF possède la propriété de pouvoir absorber les diéren es ave une
probabilité 1/2. Nous pouvons don hoisir, lors des 3 étapes où la perturbation
initiale est sus eptible de se propager à travers la fon tion de ronde, d'introduire ou

91
Chapitre 6. A élération de la ryptanalyse de SHA-0

pas ∇ Ai ∇W i
... ...
i−1 ----------------------------b--- --------------------------------
i ----------------------------b--- ------------------------------a-
i+1 ------------------------------a- -------------------------a------
i+2 0------------------------------- --------------------------------
i+3 1------------------------------- --------------------------------
i+4 -------------------------------- --------------------------------
i+5 -------------------------------- a-------------------------------
i+6 -------------------------------- --------------------------------
... ...

Fig. 6-1  Cara téristique orrespondant à une ollision lo ale non-linéaire initiée au
pas i et de diérentielle ∆ =< 21 , 26 , 0, 0, 0, 231 >. La olonne de droite représente
les diérents états des mots de message expansés. La olonne de gau he représente
les diérents états du registre A et pré ise les ontraintes né essaires pour que la
ollision lo ale non-linéaire soit vériée. Un  - indique qu'il n'y a pas de ontrainte,
une lettre indique une valeur binaire et une lettre surlignée son omplément.

non une orre tion. Il en dé oule que par exemple la diérentielle

∆ =< 2j , 2j+5 , 0, 0, 0, 2j+30 >


peut être utilisée pour obtenir une ollision sur 6 pas lorsque la fon tion de ronde est
la fon tion IF . Pour la position de bit j = 1, ette diérentielle possède d'ailleurs
une meilleure probabilité de su ès (2
−4 ) que la diérentielle lassique (2
−5 ). Nous

asso ions le nom de ollisions lo ales non-linéaires à e type de diérentielle. Nous


pouvons hoisir d'ee tuer ou de ne pas ee tuer de orre tion pour les étapes 4, 5
et 6 ; nous pouvons don onstruire 23 = 8 ollisions lo ales non-linéaires diérentes.
Ces ollisions non-linéaire ont pour vo ation d'intervenir lors des premiers pas de la
fon tion de mise à jour des registres là ou l'attaquant possède un ontrle dire t sur
les mots de message et don sur les registres. Il est don possible de ontrler pré-
isément les onditions susantes pour qu'une ollision lo ale non-linéaire se vérie
ave une probabilité égale à 1. La gure 6-1 donne un exemple de représentation
d'une ollision lo ale non-linéaire ave les onditions susantes asso iées.

Constru tion des diérentielles auxiliaire AP1 et AP2 . Le prin ipe d'une dif-
férentielle auxiliaire onsiste à onstruire, au moyen de ollisions lo ales non-linéaires,
un hemin diérentiel partiel onduisant à une ollision à un pas déterminé. Étant
donné que pour ette attaque nous avons hoisi de nous pla er dans le ontexte d'une
utilisation des diérentielles auxiliaires en tant que bits neutres, nous souhaitons que
es diérentielles possèdent la plus grande portée possible. Cependant e hemin doit
obéir à un ertain nombre de ontraintes :
 An de béné ier du pro essus de ompensation hérité de l'expansion de mes-
sage de SHA-0, nous avons hoisi de positionner les ollisions lo ales non-
linéaires d'une même diérentielle auxiliaire sur la même position de bit.
 Pour une ollision lo ale non-linéaire débutant au pas i, des onditions doivent
être vériées (et don imposées) sur des bits du registre Ai+2 . Nous n'autorisons

92
6-3. Utilisation des boomerangs

don l'apparition de ollision lo ale non-linéaire que sur les mots W0 , . . . , W14 ,
ar au delà il n'est théoriquement plus possible de s'assurer d'une probabilité
égale à 1 pour la diérentielle auxiliaire.

Finalement, le nombre de andidat possible est égal à 815 = 245 . En pratique, nous im-
posons une ondition supplémentaire sur le nombre de ollisions lo ales non-linéaire
que nous avons limité à 5 pour notre re her he. En eet si e nombre est trop élevé,
trop de degrés de liberté sont dépensés. Pour haque andidat, on applique la formule
de ré urren e de l'expansion de message et on mesure la portée orrespondant à e
andidat en identiant le pas où la première diéren e in ontrlée apparaît. Parmi
les andidats obtenus, nous avons retenus deux diérentielles.

La diérentielle AP1 utilise une unique ollision lo ale non-linéaire de la forme


∆ =< 2j , 2j+5 , 0, 0, 0, 2j+30 >. Cette ollision est initiée au pas 7, et la première
diéren e in ontrlée apparaît au pas 20. La gure 6-2 donne les 32 premières étapes
orrespondantes à l'expansion de message asso iée à la diérentielle auxiliaire AP1 .
Les onditions devant être vériées an d'obtenir une probabilité de su ès égale à 1
pour la diérentielle AP1 sont données dans la gure 6-3.
AP2 utilise un en hevêtrement de 3 ollisions lo ales non-linéaires
La diérentielle
initiées au pas 1 (forme ∆ =< 2 , 2
j j+5 , 0, 2j+30 , 2j+30 , 2j+30 >), ainsi qu'aux pas 3
j
et 11 (forme ∆ =< 2 , 2
j+5 , 0, 0, 2j+30 , 2j+30 >). Cette onguration permet de faire
apparaître la première diéren e in ontrlée au pas 25. La gure 6-4 donne les 32
premières étapes orrespondantes à l'expansion de message asso iée à la diérentielle
auxiliaire AP2 . Les onditions devant être vériées an d'obtenir une probabilité de
su ès égale à 1 pour la diérentielle AP2 sont données dans la gure 6-5.

Conformément à la remarque présente dans l'arti le de Joux et Peyrin, nous


notons qu'une diéren e auxiliaire possédant une portée s, onstitue un bit neutre
valide pour le pas s+3 ave une très forte probabilité (la diéren e in ontrlée doit
se propager avant d'interférer ave le hemin diérentiel prin ipal). Il résulte de ette
remarque que les diérentielles AP1 et AP2 peuvent être utilisées en tant que bits
neutres pour les pas 23 et 28 respe tivement.

Pla ement des diérentielles auxiliaires. Une fois les diérentielles auxiliaires
établies, nous disposons de plusieurs stratégies pour leur pla ement. La première de
es stratégies onsiste à utiliser les diérentielles auxiliaires en suivant la méthode de
Biham et Chen pour les bits neutres. Dès qu'une paire de message se onforme à la
diérentielle prin ipale jusqu'à la portée orrespondant à une diérentielle auxiliaire,
on tente de multiplier les instan es en essayant de pla er ette diérentielle auxiliaire.
Cependant, ette stratégie est peu produ tive ar elle né essite de trouver des posi-
tions de bit pour lesquelles les onditions de la diérentielle auxiliaire sont vériées.
Une stratégie plus intéressante onsiste à lier le pla ement des diérentielles auxi-
liaires à la génération de ara téristique non-linéaire. Deux hoix sont alors possibles,
selon que l'on pla e les diérentielles auxiliaires avant ou après la génération de la
ara téristique non-linéaire. Si on pla e les diérentielles auxiliaires après l'établis-
sement de ette ara téristique, la probabilité de trouver des positions satisfaisantes
est meilleure qu'ave la méthode de Biham et Chen. Mais le nombre de degrés de
liberté pour le pla ement est limité par le nombre de bits non- ontraints lors de la
génération de la ara téristique non-linéaire. Le hoix qui laisse le plus grand nombre
de degrés de libertés, et qui est don sus eptible de onduire à la meilleure a élé-

93
Chapitre 6. A élération de la ryptanalyse de SHA-0

W0 à W15 W16 à W31

Perturbations sur Wj 0000001000000000 0000101101100111


Corre tions sur W j+5 0000000100000000 0000010110110011
Corre tions sur W
j+30 0000000000010000 0001001000000010

Fig. 6-2  Premières étapes de l'expansion de message asso iée à la diérentielle


j
auxiliaire AP1 . La ollision lo ale non-linéaire est initiée au pas 7 (W6 ). La première
j+30
diéren e in ontrlée apparaît pas 20 (W19 ).

i Ai Wi

00 : --------------------------------
01 : -------------------------------- --------------------------------
02 : -------------------------------- --------------------------------
03 : -------------------------------- --------------------------------
04 : -------------------------------- --------------------------------
05 : ---------------------------b---- --------------------------------
06 : ---------------------------b---- -----------------------------a--
07 : -----------------------------a-- ------------------------a-------
08 : -------------------------------0 --------------------------------
09 : -------------------------------1 --------------------------------
10 : -------------------------------- --------------------------------
11 : -------------------------------- -------------------------------a
12 : -------------------------------- --------------------------------
13 : -------------------------------- --------------------------------
14 : -------------------------------- --------------------------------
15 : -------------------------------- --------------------------------

Fig. 6-3  Cara téristique asso iée à la diérentielle auxiliaire AP1 positionnée sur
la position de bit j = 1. Cette diérentielle possède une seule ollision lo ale non-
linéaire de la forme ∆ =< 2j , 2j+5 , 0, 0, 0, 2j+30 > initiée au pas 7. La olonne de
droite représente les diérents états des mots de message expansés. La olonne de
gau he représente les diérents états du registre A et pré ise les ontraintes né es-
saires pour que la ollision lo ale non-linéaire soit vériée. Un  - indique qu'il n'y
a pas de ontrainte, une lettre indique une valeur binaire et une lettre surlignée son
omplément.

94
6-3. Utilisation des boomerangs

W0 à W15 W16 à W31

Perturbations sur Wj 1010000001000000 0000000010110110


Corre tions sur W
j+5 0101000000100000 0000000001011011
Corre tions sur W j+30 0001111100000011 0000000000001110

Fig. 6-4  Premières étapes de l'expansion de message asso iée à la diérentielle


auxiliaire AP2 . Les ollisions lo ales non-linéaires sont initiées aux pas 1, 3 et 11
j
(W0 , W2j , W10
j
). La première diéren e in ontrlée apparaît pas 25 (W24 ).
j

i Ai Wi

-1 : ---------------------------d----
00 : ---------------------------d---- -----------------------------a--
01 : ---------------------------e-a-- ------------------------a-------
02 : ---------------------------e---1 -----------------------------b--
03 : -----------------------------b-0 ------------------------b------a
04 : -------------------------------0 -------------------------------a
05 : -------------------------------0 -------------------------------a
06 : -------------------------------- -------------------------------b
07 : -------------------------------- -------------------------------b
08 : -------------------------------- --------------------------------
09 : ---------------------------f---- --------------------------------
10 : ---------------------------f---- ----------------------------- --
11 : ----------------------------- -- ------------------------ -------
12 : -------------------------------0 --------------------------------
13 : -------------------------------0 --------------------------------
14 : -------------------------------- -------------------------------
15 : -------------------------------- -------------------------------

Fig. 6-5  Cara téristique asso iée à la diérentielle auxiliaire AP2 positionnée sur
la position de bit j = 1. Cette diérentielle possède une ollision lo ale non-linéaire
de la forme ∆ =< 2j , 2j+5 , 0, 2j+30 , 2j+30 , 2j+30 > initiée au pas 1, et deux ollisions
lo ales non-linéaires de la forme ∆ =< 2 , 2
j j+5 , 0, 0, 2j+30 , 2j+30 > initiées aux pas

3 et 11. La olonne de droite représente les diérents états des mots de message
expansés. La olonne de gau he représente les diérents états du registre A et pré ise
les ontraintes né essaires pour que la ollision lo ale non-linéaire soit vériée. Un
 - indique qu'il n'y a pas de ontrainte, une lettre indique une valeur binaire et une
lettre surlignée son omplément.

95
Chapitre 6. A élération de la ryptanalyse de SHA-0

Premier blo Se ond blo

Diérentielle Positions de bit Positions de bit

AP1 j = {9, 11} j = {9, 11}


AP2 j = {10, 14, 19, 22, 27} j = {17, 22, 30}

Tab. 6-2  Type des diérentielles auxiliaires utilisées lors de la ryptanalyse et leurs
positions respe tives.

ration de re her he, onsiste à pla er les diérentielles auxiliaires avant de tenter de
générer une ara téristique non-linéaire. Cependant, la perte de degrés de libertés
induite par le pla ement des diérentielles auxiliaires peut rendre l'établissement de
la ara téristique non-linéaire di ile voire même impossible.
C'est ette dernière stratégie que nous avons mise en oeuvre pour notre attaque.
Le tableau 6-2 ré apitule pour haque blo le nombre de diérentielles auxiliaires
utilisées, leur type et leur position de bit. Le nombre supérieur de diérentielles AP2
pour le premier blo tient à la valeur de la variable de haînage initiale dénie pour
la fon tion SHA-0 qui est fortement stru turée. Il s'avère que ette stru ture prote
au ryptanalyste ar elle permet d'introduire plus de hemins diérentiels auxiliaires.

Utilisation des diérentielles auxiliaires. L'utilisation des diérentielles auxi-


liaires intervient lors de la phase de re her he ee tive d'une ollision. Dès qu'une
paire de messages se onforme au pas 23 (portée de la diérentielle auxiliaire AP1 ) on
applique la diérentielle AP1 pour onstruire une se onde paire de messages. Cette
nouvelle paire se onforme au pas 23 ave une probabilité très pro he de 1. Le nombre
de nouvelles instan es obtenues est égale au nombre de diérentielles AP1 pla ées.
On vérie la onformité de la paire initiale et des nouvelles paires au pas 28 (portée
de la diérentielle auxiliaire AP2 ). Pour toutes les instan es onforme au pas 28 on
dé len he la diérentielle AP2 pour multiplier les instan es. On vérie enn pour
toutes les instan es restantes si l'une d'entre elle onduit à une ollision.
Théoriquement, ave k hemins diérentiels auxiliaires, on peut s'attendre à une
amélioration de la re her he de ollisions par un fa teur 2k . Bien que e fa teur
d'amélioration soit fortement orrélé à la portée et au nombre de diérentielles auxi-
liaires introduites. Nous avons utilisé 7 diérentielles auxiliaires pour le premier blo
et 5 diérentielles auxiliaires pour le se ond blo . Le gain sur la re her he de olli-
7
sions devrait don être respe tivement 2 pour le premier blo et 25 pour le se ond
blo ; soit des omplexités théoriques de 2
39−7 = 232 et 238−5 = 233 . Les résultats
obtenus en pratique sont pro hes de la théorie, ave une omplexité mesurée égale à
232,2 et 233 évaluations de la fon tion de ompression, respe tivement pour le premier
et le se ond blo .

6-4 Cara téristique non-linéaire


Les ara téristiques non-linéaires utilisées pour les deux blo s de la ryptanalyse
ont été obtenues à l'aide d'un générateur automatique fondé sur les travaux de De

96
6-5. Con lusion

Cannière et Re hberger [DCR06℄. Cependant, nous avons imposé omme ontrainte


supplémentaire au générateur de prendre en ompte les diérentielles auxiliaires né-
essaires à l'a élération de l'attaque. En pratique pour une variable de haînage
aléatoire, il est relativement simple de trouver une ara téristique non-linéaire a-
pable d'intégrer 5 diérentielles auxiliaires, ave au moins 3 diérentielles de type
AP2 . Les tableaux 6-3 et 6-4 détaillent les hemins diérentiels omplets pour le
premier blo , les tableaux 6-5 et 6-6 pour le se ond blo .

6-5 Con lusion


L'appli ation de la te hnique des blo s multiples ainsi que l'utilisation des boo-
merangs nous ont permis de trouver une ollision pour la fon tion SHA-0 ave une
omplexité mesurée égale à 233.6 évaluations de la fon tion de ompression. Cette
ryptanalyse onstitue, à e jour, la meilleure attaque par ollision publiée ontre la
fon tion SHA-0. La gure 6-7 donne un exemple de ollision obtenue lors de l'implé-
mentation de notre attaque.

97
Chapitre 6. A élération de la ryptanalyse de SHA-0

i ∇ Ai ∇W i

-4 : 00001111010010111000011111000011
-3 : 01000000110010010101000111011000
-2 : 01100010111010110111001111111010
-1 : 11101111110011011010101110001001
00 : 01100111010001010010001100000001 0100111001001011000001010n0010u1
01 : 1110110111111111100111011n1111u0 0100000011011011010100001n000000
02 : 01100111011111111101n10101101010 1111011000011110100111011n011011
03 : 001101010010100n00001100n0uuuuu0 0011100010101001011100100u000101
04 : 111100000nu000001010110001110000 u110010001000000010100000u0101n1
05 : 00111n00000010011000100000u0n1u1 n0010100110010000101010010100000
06 : 10110101110110110000101u100u1001 n010001011110100001111000u000100
07 : 100unnnnnnnnn0100nu0100101u11001 00010010111101000101011001011010
08 : 1000011100001n000n100u0n010nn001 0101101001110001000110001n0001u1
09 : 0010000000000010un00nu1u1un01100 n101000101000111100101100u1110n0
10 : 11100110100101000nu01u10un00n100 01111010011000100100011100011000
11 : 011110001110001101nuu10101000101 0111000100110111010110011u1110u0
12 : 01001101011010000010u0000n110000 10110111110101-----1-----u000001
13 : 010110011100000----010-0-01001u0 101001010----------------n0000u1
14 : 10111100--------------1--110u011 01101-0----0--1----0---0-1-011u0
15 : 10100------------------0-1-u0100 n0101-0----0--1----0---0-1-11000
16 : --01-----------------------n0011 010001110----------------00101n0
17 : -----------------------------1n- n1000-0----1--1----1---0-u-10011
18 : 1----------------------------0-- 01000-0----1--1----0---0-0-011u0
19 : -------------------------------- n00110100----------------0001011
20 : -------------------------------- n0110-0----1-------0-----0-000u1
21 : ------------------------------n- u1100-1------------------u-10111
22 : -------------------------------- 00001-1------------------0-00110
23 : ------------------------------n- n1011-1----0-------0-----u-11001
24 : -------------------------------- u0000-0------------------1-11100
25 : ------------------------------n- 01101-1------------------u-10111
26 : -------------------------------- u1010-1----0-------1-----0-011u0
27 : -------------------------------- 01001-1------------------0-01110
28 : -------------------------------- u0000-0------------------1-11011
29 : -------------------------------- u0111-0------------------0-00010
30 : -------------------------------- 01101-1------------------1-10010
31 : -------------------------------- 10110-1------------------0-01001
32 : -------------------------------- 00111-1------------------1-00100
33 : -------------------------------- 01011-1------------------1-11101
34 : -------------------------------- 00010-0------------------0-010u0
35 : ------------------------------u- 10001-0------------------n-10110
36 : -------------------------------- 11100-0------------------0-000u1
37 : -------------------------------- n0010-0------------------0-001u0
38 : ------------------------------u- n1101-0------------------n-11110
39 : -------------------------------- n1100-1------------------0-001n0
40 : -------------------------------- n1111-0------------------0-10000
··· ···

Tab. 6-3  Chemin diérentiel omplet pour le premier blo , pas 1 à 40.

98
6-5. Con lusion

i ∇ Ai ∇W i

··· ···
41 : -------------------------------- n0010-1------------------0-11010
42 : -------------------------------- n0100-0------------------1-110u1
43 : ------------------------------u- 00000-1------------------n-01010
44 : -------------------------------- 00011-0------------------0-100n0
45 : -------------------------------- n0111-1------------------1-10110
46 : -------------------------------- n0111-1------------------0-00010
47 : -------------------------------- u0010-1------------------1-00000
48 : -------------------------------- 01101-0------------------0-010n0
49 : ------------------------------n- 11111-1------------------u-10011
50 : -------------------------------- 01000-1------------------0-100u0
51 : -------------------------------- u1110-1------------------0-10010
52 : -------------------------------- n1101-1------------------1-11110
53 : -------------------------------- n0001-1------------------1-001u0
54 : ------------------------------u- 11011-0------------------n-11110
55 : -------------------------------- 10001-0------------------0-000n0
56 : -------------------------------- n0111-1------------------0-001n1
57 : ------------------------------n- n0110-1------------------u-11101
58 : -------------------------------- u1110-1------------------1-11001
59 : ------------------------------n- u1110-0------------------u-010u1
60 : ------------------------------u- n1111-1------------------n-100n1
61 : -------------------------------- 01010-0------------------0-010n1
62 : -------------------------------- 01111-1------------------1-11111
63 : -------------------------------- 10011-1------------------0-00010
64 : -------------------------------- n1000-0------------------0-10110
65 : -------------------------------- 01000-0------------------1-00011
66 : -------------------------------- 01000-0------------------0-101u1
67 : ------------------------------u- 01001-0------------------n-01001
68 : -------------------------------- 10001-0------------------0-100u0
69 : -------------------------------- u0010-1------------------1-11000
70 : -------------------------------- u1010-0------------------1-011n1
71 : ------------------------------n- u0101-0------------------u-01101
72 : -------------------------------- 00011-1------------------0-100u0
73 : -------------------------------- n1010-1------------------0-11000
74 : -------------------------------- n1100-0------------------0-10010
75 : -------------------------------- u1110-1------------------1-110n1
76 : ------------------------------n- 11011-1------------------u-00100
77 : -------------------------------- 00111-0------------------1-000n1
78 : -------------------------------- n0011-0------------------1-11101
79 : -------------------------------- u0101-0------------------1-01000
80 : --------------------------------

Tab. 6-4  Chemin diérentiel omplet pour le premier blo , pas 41 à 80.

99
Chapitre 6. A élération de la ryptanalyse de SHA-0

i ∇ Ai ∇W i

-4 : 111011010000101010001110101010u1
-3 : 01000110011100010110101100101000
-2 : 10010000011011111010001110100111
-1 : 11100110001011011100010100001001
00 : 01011110101010111100001100111101 1001101001110110110011110u1100n0
01 : u0111011010011100010111unn1010n1 0000010010111001100101010u111101
02 : 11010011001110011011u000110u0111 1110111000100100001000100n111101
03 : 111001111000010u000unnnnnn000100 1001101001000110011001001n110101
04 : u0100101unn01010000u100011110110 u011100001000000000010101u1101u0
05 : n000un001000011u00100000000nn0n0 u0111000011000000000011000010010
06 : nnn0010001011110011100n1nu1u011u u000101101111110100001011u101010
07 : 10nuuuuuuuuuuuuu11100n00un0u1001 11100001011111111111011000111100
08 : 0001111100000000unnn11010001n001 1010001011110001101110001u1001n1
09 : 00000111111111111110001n111un111 u100101000000111100110010n1101u0
10 : 1110110110111111110100nu111uu011 00000010111100001010011111001011
11 : 00111110010001010011011uu0n000u0 1111011101100100111010101n1110n0
12 : 010001101000111000111111nuu1u011 001101111111-------------n111010
13 : 101010000000----0--------01111u0 01010--------------------u0000u1
14 : 00110001-----------------1010010 10010------0----1--------00110n1
15 : 10011--------------------10101n0 n0110------0----1--------0111110
16 : 0-------------------------011000 10000--------------------11010u1
17 : 1-----------------------------n- u1000------1----1--------u100111
18 : 0------------------------------- 01100------1----0--------01111u0
19 : -------------------------------- n1010--------------------1110100
20 : -------------------------------- u1000------1-------------10000n1
21 : ------------------------------n- n1101--------------------u010011
22 : -------------------------------- 11101--------------------1100010
23 : ------------------------------n- u1011------0-------------u110101
24 : -------------------------------- n1001--------------------0010110
25 : ------------------------------u- 00010--------------------n001011
26 : -------------------------------- u0001------1-------------01110u0
27 : -------------------------------- 10111--------------------0011001
28 : -------------------------------- n1110--------------------1101001
29 : -------------------------------- u0000--------------------0010100
30 : -------------------------------- 01000--------------------0001001
31 : -------------------------------- 01011--------------------1000101
32 : -------------------------------- 00101--------------------1010111
33 : -------------------------------- 11000--------------------0010001
34 : -------------------------------- 01110--------------------00000n0
35 : ------------------------------n- 10101--------------------u101001
36 : -------------------------------- 10011--------------------10110u1
37 : -------------------------------- n1000--------------------01100u0
38 : ------------------------------u- n1001--------------------n010100
39 : -------------------------------- n0001--------------------11000n0
40 : -------------------------------- u0101--------------------1001001
··· ···

Tab. 6-5  Chemin diérentiel omplet pour le se ond blo , pas 1 à 40.

100
6-5. Con lusion

i ∇ Ai ∇W i

··· ···
41 : -------------------------------- n0100--------------------0010111
42 : -------------------------------- u0000--------------------01100u1
43 : ------------------------------u- 00111--------------------n101101
44 : -------------------------------- 10001--------------------01011n0
45 : -------------------------------- n0011--------------------1010000
46 : -------------------------------- n0011--------------------1100111
47 : -------------------------------- n0011--------------------0011000
48 : -------------------------------- 11101--------------------10011u0
49 : ------------------------------u- 01010--------------------n001000
50 : -------------------------------- 01110--------------------11100n0
51 : -------------------------------- n0111--------------------0111000
52 : -------------------------------- n0001--------------------1101011
53 : -------------------------------- n0100--------------------11100u0
54 : ------------------------------u- 11000--------------------n000010
55 : -------------------------------- 00111--------------------00001n0
56 : -------------------------------- u1100--------------------10001u0
57 : ------------------------------u- u0001--------------------n110000
58 : -------------------------------- n1000--------------------1101011
59 : ------------------------------u- u1111--------------------n0000u1
60 : ------------------------------u- n0010--------------------n0100n0
61 : -------------------------------- 01100--------------------10100n1
62 : -------------------------------- 11001--------------------0101000
63 : -------------------------------- 01100--------------------0000100
64 : -------------------------------- n0011--------------------0101001
65 : -------------------------------- 00101--------------------0101000
66 : -------------------------------- 01011--------------------11101n0
67 : ------------------------------n- 11111--------------------u100000
68 : -------------------------------- 11110--------------------10100n1
69 : -------------------------------- n0100--------------------1010011
70 : -------------------------------- n0010--------------------00011n0
71 : ------------------------------n- n0100--------------------u100001
72 : -------------------------------- 10011--------------------10101u1
73 : -------------------------------- n1001--------------------0010111
74 : -------------------------------- n0101--------------------1101110
75 : -------------------------------- u1111--------------------11001n1
76 : ------------------------------n- 01100--------------------u111110
77 : -------------------------------- 00001--------------------11010n0
78 : -------------------------------- n0111--------------------1101000
79 : -------------------------------- n0001--------------------0110011
80 : --------------------------------

Tab. 6-6  Chemin diérentiel omplet pour le se ond blo , pas 41 à 80.

101
Chapitre 6. A élération de la ryptanalyse de SHA-0

1er blo 2nd blo

M1 M1′ M2 M2′
W0 0x4643450b 0x46434549 0x9a74 f70 0x9a74 f32
W1 0x41d35081 0x41d350 1 0x04f9957d 0x04f9953d
W2 0xfe16dd9b 0xfe16dddb 0xee26223d 0xee26227d
W3 0x3ba36244 0x3ba36204 0x9a06e4b5 0x9a06e4f5
W4 0xe6424055 0x66424017 0xb8408af6 0x38408ab4
W5 0x16 a44a0 0x96 a44a0 0xb8608612 0x38608612
W6 0x20f62444 0xa0f62404 0x8b7e0fea 0x0b7e0faa
W7 0x10f7465a 0x10f7465a 0xe17e363 0xe17e363
W8 0x5a711887 0x5a7118 5 0xa2f1b8e5 0xa2f1b8a7
W9 0x51479678 0xd147963a 0x a079936 0x4a079974
W10 0x726a0718 0x726a0718 0x02f2a7 b 0x02f2a7 b
W11 0x703f5bfb 0x703f5bb9 0xf724e838 0xf724e87a
W12 0xb7d61841 0xb7d61801 0x37ff 03a 0x37ff 07a
W13 0xa5280003 0xa5280041 0x53aa8 43 0x53aa8 01
W14 0x6b08d26e 0x6b08d26 0x90811819 0x9081181b
W15 0x2e4df0d8 0xae4df0d8 0x312d423e 0xb12d423e

Empreinte nale

A2 B2 C2 D2 E2
0x6f84b892 0x1f9f2aae 0x0dbab75 0x0afe56f5 0xa7974 90

Tab. 6-7  Exemple d'une paire de messages pour une ollision sur 2 blo s :
H(M1 , M2 ) = H(M1′ , M2′ ) = A2 ||B2 ||C2 ||D2 ||E2 , obtenue onformément au hemin
diérentiel présenté dans les tableaux 6-3, 6-4, 6-5 et 6-6.

102
7

Amélioration de la ara téristique


linéaire

Sommaire
7-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . 103
7-2 Algorithme de re her he de ve teur de perturbations104
7-2.1 Des ription de l'algorithme . . . . . . . . . . . . . . . . 104
7-2.2 Résultats expérimentaux . . . . . . . . . . . . . . . . . 107
7-3 Classi ation des ve teurs de perturbations . . . . . 108
7-3.1 Relation d'équivalen e . . . . . . . . . . . . . . . . . . 108
7-3.2 Nouvelle Notation . . . . . . . . . . . . . . . . . . . . . 109
7-4 Fon tion d'évaluation . . . . . . . . . . . . . . . . . . . 112
7-4.1 Fon tions de oût . . . . . . . . . . . . . . . . . . . . . 113
7-4.2 De l'e a ité à la omplexité . . . . . . . . . . . . . . 115

7-1 Introdu tion


Les résultats que nous présentons dans e hapitre s'arti ulent autour de la pro-
position d'un nouvel algorithme de re her he de bons ve teurs de perturbations fondé
sur un ompromis diérent des autres algorithmes présents dans la littérature. De
l'utilisation de et algorithme dé oule la première lassi ation des ve teurs de per-
turbations utilisés pour les ryptanalyses de la fon tion SHA-1. Cet algorithme a été
proposé une première fois sous la forme d'un do ument ePrint [Man08℄. Une version
remaniée et étendue de l'arti le a été présentée lors de la onféren e WCC'09 [Man09℄.
An d'évaluer les ve teurs de perturbations andidats, nous avons été amenés à
onstruire des fon tions d'évaluations de es ve teurs fondées stri tement sur l'état
de l'art de la littérature existante au moment de la réda tion du do ument ePrint.
Cependant, es évaluations ont été remises en ause e qui nous a onduit à réaliser
un ertain nombre d'expérien es dans le but de onstruire une fon tion d'évaluation
plus pertinente. Une partie des résultats obtenus lors de es expérien es fait l'objet
d'une publi ation dans le journal Designs Codes and Cryptography [Man10℄.
Nous ommen erons par introduire e nouvel algorithme de re her he de ve -
teurs de perturbations. Nous dé rirons son fon tionnement et détaillerons e qui le
distingue des autres algorithmes présents dans la littérature. Dans un se ond temps,

103
Chapitre 7. Amélioration de la ara téristique linéaire

Expansion vers l'arrière Expansion vers l'avant


z }| { z }| {

W−64 , . . . , W−1 W0 , . . . , W15 W16 , . . . , W79

| {z }
Wi , . . . , Wi+79

Fig. 7-1  Message expansé étendu.

nous dénirons la lassi ation des ve teurs de perturbations que nous proposons.
Puis, nous lorons e hapitre par une revue des fon tions d'évaluation que nous
avons utilisées lors de nos expérimentations et dis uterons de leur adéquation ave
la omplexité d'une attaque par ollision ontre SHA-1.

7-2 Algorithme de re her he de ve teur de perturbations


7-2.1 Des ription de l'algorithme
L'algorithme que nous avons mis au point est prin ipalement fondé sur une obser-
vation simple : la formule de ré urren e utilisée par la fon tion d'expansion de SHA-1
peut être dénie selon deux dire tions. Nous nommons es dire tions expansion vers
l'avant et expansion vers l'arrière. On peut xer les 16 mots de 32 bits W0 , . . . , W15
puis ee tuer une expansion vers l'avant an d'obtenir les mots W16 , . . . , W79 :
 Expansion vers l'avant :
Wi = (Wi−16 ⊕ Wi−14 ⊕ Wi−8 ⊕ Wi−3 ) ≪ 1 pour 16 ≤ i ≤ 79.
L'expansion vers l'avant onstitue l'expansion standard telle que dénie dans les
spé i ations de SHA-1. On peut aussi hoisir de faire une expansion vers l'arrière
qui permet d'obtenir les mots W−64 , . . . , W−1 dénis par :
 Expansion vers l'arrière :
Wi = (Wi+16 ≫ 1) ⊕ Wi+13 ⊕ Wi+8 ⊕ Wi+2 pour −64 ≤ i ≤ −1.
N'importe quelle séquen e de 80 mots de 32 bits onsé utifsWi , . . . , Wi+79 ave
−64 ≤ i ≤ 0 onstitue un message expansé valide.
Nous qualierons par le terme de fenêtre d'information les 16 mots de 32 bits
W0 , . . . , W15 . Pour une fenêtre d'information donnée, nous dénissons l'ensemble des
144 mots de 32 bits obtenus en appliquant les deux expansions que nous venons de
dé rire omme étant le message expansé étendu déni par :

W−64 , . . . , W−1 , W0 , . . . , W15 , W16 , . . . , W79 ,


Chaque message expansé étendu est omposé de 65 messages expansé valides, ha un
de es messages valides onstitue un andidat plausible omme ve teur de perturba-
tion. Cette propriété onstitue le oeur du prin ipe de onstru tion des ve teurs de
perturbations andidats. La gure 7-1 illustre e prin ipe.

7-2.1.1 Espa e de re her he


La taille de l'espa e omprenant tous les ve teurs de perturbations possibles est
égale à 216×32 , soit 2512 . Une re her he exhaustive dans et espa e est don hors

104
7-2. Algorithme de re her he de ve teur de perturbations

Re tangle Range Nouvel algorithme

W0 , . . . , W15 W0 , . . . , W15

Fig. 7-2  Dans le ompromis du Re tangle Range, le poids de la fenêtre d'infor-


mation est inférieur ou égal à 32, mais les perturbations ne sont autorisées que sur
les positions 0 et 1. Dans le ompromis de notre algorithme, le poids de la fenêtre
d'information est limité à la valeur du paramètre w, mais les perturbations sont
autorisées sur les positions 0, . . . , 31.

de portée. Les algorithmes de re her he de ve teur de perturbations mettent don


en oeuvre des heuristiques an d'explorer un sous-espa e parti ulier de l'espa e de
re her he.

Notre algorithme généralise le prin ipe de l'algorithme dé rit pour la première


fois dans [WYY05d℄. L'appro he de Wang et al. onsiste à hoisir un espa e de
re her he sous la forme d'un domaine re tangulaire (re tangle range ), déni de la
façon suivante :

{Wi = (0, . . . , 0, wi,1 , wi,0 )|i = t, . . . , t + 15} pour t = 0, . . . , 64.

Dans l'arti le de Wang et al., les perturbations ne pouvaient être introduites qu'aux
positions de bit 0 et 1. Le hoix de es deux positions étant dû au fait que la meilleure
probabilité théorique de bon omportement est obtenue pour la position de bit 1.
Cependant, Yajima et al. [YIN08, YIN09℄ utilisent une version étendue de et algo-
rithme autorisant l'insertion de perturbations sur la position de bit 31. Les tailles
des sous-espa es de re her he de es deux appro hes sont alors égales à 65 × 232 pour
la version de l'algorithme utilisée par l'équipe de Wang et 65 × 248 pour l'équipe de
Yajima. Le ompromis hoisi onsiste don à limiter les zones possibles pour l'inser-
tion de perturbations, le nombre de perturbations insérées pouvant varier de 1 à 32
pour la version de Wang, de 1 à 48 pour la version de Yajima.

Notre appro he onsidère un ompromis diérent illustré gure 7-2. Nous hoi-
sissons de limiter le nombre de perturbations sus eptibles d'être introduites mais
relâ hons la ontrainte de la position de bit où es perturbations sont autorisées. En
d'autres termes, nous limitons le poids de Hamming, noté w, de notre fenêtre d'in-
formation mais permettons aux perturbations d'apparaître n'importe où dans ette
fenêtre. La taille de notre sous-espa e de re her he est alors une fon tion de
 w égale
w
à 65 × 512 . Le poids de Hamming de la fenêtre d'information onstitue le premier
paramètre utilisé par notre algorithme de re her he. L'utilisation d'un ompromis
diérent permet à notre algorithme d'explorer des régions de l'espa e de re her he
qui ne sont ouvertes ni par le sous-espa e de Wang et al., ni par le sous-espa e
étendu de Yajima et al.

105
Chapitre 7. Amélioration de la ara téristique linéaire

7-2.1.2 Heuristique d'évaluation


An de lasser les ve teurs de perturbations andidats, il est né essaire de dénir
une fon tion de oût pour évaluer leur pertinen e. Cette fon tion de oût onstitue
le se ond paramètre utilisé par notre algorithme 4.

Algorithm 4 Algorithme de re her he de ve teurs de perturbations


Require: w > 0, fon tion de oût f
for all fenêtre d'information de poids de Hamming inférieur ou égal à w do
générer le message expansé étendu orrespondant
for all 65 ve teurs de perturbations valides do
évaluer l'e a ité ave la fon tion de oût f
sto ker le ve teur présentant la meilleure évaluation
end for
end for
return meilleur ve teur trouvé

Certains des algorithmes présents dans la littérature ont utilisé une fon tion de
oût fondée sur le poids de Hamming des 60 dernières oordonnées du ve teur de
perturbations. C'est par exemple le as de l'appro he de Jutla and Patthak [JP05℄ qui
ont aussi démontré que le poids de Hamming minimal al ulé à partir des 60 dernières
oordonnées d'un ve teur de perturbations est égal à 25. Leur fon tion de oût est
dénie par le produit du poids de Hamming d'un ve teur andidat par une valeur
égale à la moyenne des probabilités théoriques de bon omportement d'une ollision
lo ale. Paradoxalement, bien que ette estimation puisse paraître assez grossière, les
ve teurs proposés dans leur arti le s'avèrent être parti ulièrement intéressants.

Une amélioration possible de ette appro he onsiste à évaluer plus nement le


omportement de haque ollision lo ale. En eet, rappelons qu'une ollision lo ale
démarrant au pas 20 (ronde de XOR) possède une probabilité théorique de bon
omportement égale à 2−2 si la perturbation initiale se situe sur la position de bit
1, 2
−3 sur la position de bit 31 et 2−4 sur les positions restantes. En onséquen e,
un ve teur possédant un poids de Hamming supérieur peut nalement se révéler
plus e a e qu'un ve teur ave un poids de Hamming minimal (égal à 25). Les
autres heuristiques d'évaluations publiées tirent partie de ette analyse plus ne du
omportement des ollisions lo ales. Dans l'algorithme de Wang et al., la probabilité
de bon omportement de haque ollision lo ale est évaluée sous la forme d'un nombre
de onditions à remplir ( onformément à l'appro he que nous avons qualiée de
déterministe). De plus, une heuristique parti ulière, la ompression de bits simple
est appliquée lorsque deux ollisions lo ales sont adja entes : es ollisions démarrent
au même pas sur des positions de bit onsé utives. Cette heuristique repose sur un
fait vérié expérimentalement : la probabilité de bon omportement de deux ollisions
lo ales onsé utives est égale à la probabilité de bon omportement de la ollision
lo ale initiée sur la position de bit la plus petite dès lors que leurs dire tions sont
opposées ( ondition que l'on peut garantir en imposant des ontraintes sur les bits
des mots de message expansés). Les heuristiques employées dans les arti les [YIN08,
YIN09℄ se fondent elles aussi sur un nombre de onditions à remplir, mais ave une
analyse du omportement des ollisions lo ales plus pré ise et une généralisation du
prin ipe de la ompression de bits. Dans leur arti le de 2007 [DCM07℄, De Cannière et

106
7-2. Algorithme de re her he de ve teur de perturbations

al. pré isent qu'ils utilisent leur propre algorithme pour re her her de bons ve teurs
de perturbations. Cependant, et algorithme et l'heuristique d'évaluation asso iée ne
sont détaillés dans au un de leurs arti les.
Pour les besoins de notre algorithme, nous avons été amenés à onstruire deux
fon tions de oûts ad ho . Ces fon tions seront expli itées dans la se tion 7-4.

7-2.2 Résultats expérimentaux


Nous avons tout d'abord hoisi de re her her des ve teurs de perturbations sus-
eptibles d'être employées dans des attaques par ollision sur deux blo s. Nous avons
lan é l'exé ution de notre algorithme en limitant su essivement le poids de Ham-
ming w de la fenêtre d'information à 1, 2, 3 puis 4. Les temps d'exé ution observés,
sur un pro esseur Intel pentium 4 aden é à 3,1 Ghz, sont de l'ordre d'une se onde
pour w = 1, d'une dizaine de se ondes pour w = 2, d'environ deux heures pour
w = 3 et d'environ 700 heures pour w = 4.
Le traitement des résultats obtenus nous a amené à onstater un ertain nombre
de faits expérimentaux :
 fait 1 : notre algorithme nous a permis de retrouver tous les ve teurs de per-
turbations publiés,
 fait 2 : tous les ve teurs de perturbations e a es présentaient une ertaine
similarité dans leur prol,
 fait 3 : parmi les diérents ve teurs présentant les meilleures performan es,
ertains d'entre eux pouvaient être obtenus en ee tuant une permutation ir-
ulaire des Wi d'autres ve teurs,
 fait 4 : les perturbations de tous les ve teurs e a es étaient prin ipalement
on entrées sur les bits les plus signi atifs ou sur les bits les moins signi atifs
de leur mots Wi .
L'observation des faits 3 et 4 nous a onduit à ajouter une heuristique temporaire
à notre algorithme onsistant à ne pas autoriser de perturbations sur les positions
de bits 5 à 25 ; l'ajout de ette ontrainte permettant de réduire le temps d'exé u-
tion. Nous avons alors été à même d'étendre notre re her he de ve teurs jusqu'au
paramètre w = 6. Cette nouvelle re her he a onrmé les faits que nous avions déjà
observés, et au un ve teur plus performant n'est apparu. Les meilleurs ve teurs de
perturbations produits par notre algorithme ont tous été obtenus soit par une fe-
nêtre d'information de poids exa tement 1, soit par une fenêtre d'information de
poids exa tement 3. Le tableau 7-1 présente les deux fenêtres d'information ondui-
sant aux meilleurs ve teurs de perturbations.
Nous avons aussi ee tué une re her he de ve teurs de perturbations sus eptibles
de onduire à une ollision sur un blo , en imposant omme ontrainte qu'au une
ollision lo ale ne soit initiée après le pas 75. Nous avons pu alors expérimentalement
vérier que le ve teur le plus e a e pour une ollision sur un blo est le ve teur
signalé pour la première fois par Wang et al. dans [WYY05b℄.
Nous avons testé de façon exhaustive tous les ve teurs pouvant être générés à
partir d'une fenêtre d'information de poids de Hamming inférieur ou égal à 4. Nous
avons de plus ee tué des re her hes partielles jusqu'au poids de Hamming 6. Cepen-
dant, ela ne représente qu'un petit sous-espa e de l'ensemble de tous les ve teurs
possibles, et de meilleurs ve teurs de perturbations pourraient exister. Malgré ela,
il nous semble peu probable que des fenêtres d'information de poids supérieur à 6

107
Chapitre 7. Amélioration de la ara téristique linéaire

i Fenêtre d'information de poids 1 Fenêtre d'information de poids 3

0 -------------------------------- --------------------------------
1 -------------------------------- o-------------------------------
2 -------------------------------- --------------------------------
3 -------------------------------- o-------------------------------
4 -------------------------------- --------------------------------
5 -------------------------------- --------------------------------
6 -------------------------------- --------------------------------
7 -------------------------------- --------------------------------
8 -------------------------------- --------------------------------
9 -------------------------------- --------------------------------
10 -------------------------------- --------------------------------
11 -------------------------------- --------------------------------
12 -------------------------------- --------------------------------
13 -------------------------------- --------------------------------
14 -------------------------------- --------------------------------
15 -------------------------------o -------------------------------o

Tab. 7-1  Fenêtres d'information onduisant aux ve teurs de perturbations les plus
e a es.

puissent onduire à l'obtention de meilleurs andidats.

Il est intéressant de remarquer que ertaines des observations que nous avons
réalisées avaient été évoquées dans la littérature. Wang et al. [WYY05d℄ ont énon é
que diérents hoix de position de bit produisaient des ve teurs de perturbations
onstituants des opies d'autres ve teurs ave le même poids de Hamming. Rijmen
et Oswald [RO05℄ ont noté que les ve teurs obtenus grâ e à leur algorithme, désignés
sous le terme de mots de odes dans leur arti le, possédaient un grand nombre de
mots Wi en ommun. Jutla et Patthak [JP05℄ ont indiqué que le premier mot de ode
proposé dans leur arti le avait déjà été signalé par Wang et al. De la même façon,
Pramstaller et al. [PRR05℄ ont souligné que leur ve teur était le même que elui utilisé
par Wang et al. à une permutation des indi es prêt. Cependant, au une publi ation
antérieure à notre arti le [Man08℄ n'expliquait, ni ne proposait un modèle apable
de prendre en ompte es observations. L'interprétation des faits expérimentaux que
nous avons observés nous a onduit à on lure que les ve teurs de perturbations
e a es pouvaient être lassiés. Nous présentons ette lassi ation dans la se tion
suivante.

7-3 Classi ation des ve teurs de perturbations


7-3.1 Relation d'équivalen e
Nous avons hoisi de modéliser et de générer les ve teurs de perturbations à l'aide
d'une fenêtre d'information et de e que nous avons nommé les messages expansés
étendus. Sous ette forme, il est fa ile de voir que permuter ir ulairement les Wi
d'une fenêtre d'information produira des ve teurs qui seront des versions permutées

108
7-3. Classi ation des ve teurs de perturbations

les uns des autres. De la même façon, les 65 ve teurs de perturbations omposant
un message expansé étendu ne dièrent qu'à partir de l'indi e i (−64 ≤ i ≤ 0) d'où
les messages expansés valides débutent. En se fondant sur es deux propriétés, nous
pouvons dénir une relation d'équivalen e.

Dénition 7.1 (Équivalen e de deux ve teurs de perturbations)


Soient le ve teur de perturbations V =< V0 , V1 , . . . , V79 > et le ve teur de perturba-
tions W =< W0 , W1 , . . . , W79 >. Les ve teurs V et W sont équivalents si au moins
une des deux propriétés suivantes est vériée :
 il existe un entier j , 0 ≤ j < 32, tel que : Wi = Vi ≪ j pour 0 ≤ i ≤ 79
(on peut obtenir le premier ve teur en ee tuant une permutation ir ulaire de
tous les mots de 32 bits du se ond ve teur), ou
 les deux ve teurs appartiennent au même message expansé étendu.

Cette relation d'équivalen e permet de lassier l'ensemble de tous les ve teurs en


fon tion de la fenêtre d'information à partir de laquelle ils peuvent être générés. A
notre onnaissan e, il s'agit de la première lassi ation proposée pour les ve teurs
de perturbations utilisés lors des attaques par ollision ontre les fon tions SHA-0
et SHA-1. L'avantage prin ipal de dénir une telle lassi ation réside dans le fait
qu'elle permet d'expliquer et de modéliser les diérentes remarques et observations
qui ont été faites dans la littérature.
Une fois ette relation d'équivalen e dénie, nous avons onstaté expérimentale-
ment que les ve teurs de perturbations les plus performants résident dans seulement
deux lasses d'équivalen e. Ces lasses, baptisées lasse de type-I et lasse de type-
II, orrespondent aux deux fenêtres d'information que nous avons expli itées dans le
tableau 7-1. Il est intéressant de remarquer que tous les ve teurs de perturbations
publiés sont des ve teurs de type-I ou de type-II. La lasse de type-I (fenêtre d'infor-
mation de poids 1 dans le tableau 7-1) ontient les ve teurs équivalents au ve teur
publié pour la première fois par Wang et al. dans [WYY05b℄. La lasse de type-II
(fenêtre d'information de poids 3 dans le tableau 7-1) regroupe les ve teurs équiva-
lents au ve teur publié pour la première fois par Jutla et Patthak dans [JP05℄. Le
tableau 7-2 ainsi que le tableau 7-3 présentent de façon synthétique l'ensemble des
ve teurs publiés à e jour et montrent qu'ils sont tous de type-I ou de type-II. Dans
es deux tableaux, la notation ≫ i indique que pour retrouver le ve teur publié dans
la référen e, il sut d'ee tuer une permutation ir ulaire vers la gau he de i bits
de ha un des 80 mots de 32 bits).

7-3.2 Nouvelle Notation


Nous introduisons à présent une nouvelle notation pour les ve teurs de pertur-
bations : nous noterons I(i, j) (respe tivement II(i, j)) les ve teurs de type-I (respe -
tivement type-II) pouvant être générés de la façon suivante :
 ee tuer une permutation ir ulaire de j bits vers la gau he des 16 mots de 32
bits de la fenêtre d'information du type-I (respe tivement du type-II),
 ee tuer une expansion vers l'arrière i fois,
 ee tuer une expansion vers l'avant 64 − i fois.
Le tableau 7-4 donne la notation orrespondante aux ve teurs de perturbations
onnus. Cette notation fournit un moyen de représenter de façon ompa te les ve -
teurs de perturbations appartenant à es deux lasses.

109
Chapitre 7. Amélioration de la ara téristique linéaire

Wang Rijmen Jutla Pramstaller De Cannière


et al. & & et al. &
Ve teur [WYY05 ℄ Oswald Patthak [PRR05℄ Re hberger
[WYY05d℄ [RO05℄ [JP05℄ [DCR06℄
[SKP07℄
Type-I [JP07℄
Code Code
≫2 ≫1 word1 word3 ≫2 ≫2

-------------------------------- 0
-oo----------------------------- 1 0
-------------------------------- 2 1 0
-o-o---------------------------- 0 3 2 1
o------------------------------- 1 4 3 2
o------------------------------- 2 5 4 3
o-o----------------------------- 3 6 5 4
-o------------------------------ 4 0 7 6 5
-------------------------------- 5 1 8 7 6
-oo----------------------------- 6 2 9 8 7
o------------------------------- 7 3 10 9 8
o------------------------------- 8 4 0 11 10 9
o------------------------------- 9 5 1 12 11 10
-------------------------------- 10 6 2 0 13 12 11
-------------------------------- 11 7 3 1 14 13 12
-o------------------------------ 12 8 4 2 15 14 13
-------------------------------- 13 9 5 3 16 15 14
o-o----------------------------- 14 10 6 4 17 16 15 0
o------------------------------- 15 11 7 5 18 17 16 1
o-o----------------------------- 16 12 8 6 19 18 17 2
-------------------------------- 17 13 9 7 20 19 18 3
o------------------------------- 18 14 10 8 21 20 19 4
-------------------------------- 19 15 11 9 22 21 20 5
oo------------------------------ 20 16 12 10 23 22 21 6
-------------------------------- 21 17 13 11 24 23 22 7
o------------------------------- 22 18 14 12 25 24 23 8
o------------------------------- 23 19 15 13 26 25 24 9
-o------------------------------ 24 20 16 14 27 26 25 10
-------------------------------- 25 21 17 15 28 27 26 11
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .

-------------------------------- 61 57 53 51 64 63 62 47
-------------------------------- 62 58 54 52 65 64 63 48
-------------------------------- 63 59 55 53 66 65 64 49
-------------------------------o 64 60 56 54 67 66 65 50
-------------------------------- 65 61 57 55 68 67 66 51
-------------------------------- 66 62 58 56 69 68 67 52
------------------------------o- 67 63 59 57 70 69 68 53
-------------------------------- 68 64 60 58 71 70 69 54
-------------------------------- 69 65 61 59 72 71 70 55
-----------------------------o-- 70 66 62 60 73 72 71 56
-------------------------------- 71 67 63 61 74 73 72 57
------------------------------o- 72 68 64 62 75 74 73 58
----------------------------o--- 73 69 65 63 76 75 74 59
-------------------------------- 74 70 66 64 77 76 75 60
-------------------------------- 75 71 67 65 78 77 76 61
---------------------------o---- 76 72 68 66 79 78 77 62
-------------------------------- 77 73 69 67 79 78 63
----------------------------o-o- 78 74 70 68 79 64
--------------------------o----- 79 75 71 69 65
-----------------------------oo- 76 72 70 66
-------------------------------- 77 73 71 67
-------------------------o------ 78 74 72 68
----------------------------o--- 79 75 73 69
--------------------------o-o--- 76 74 70
------------------------o------- 77 75 71
----------------------------o--- 78 76 72
-------------------------------- 79 77 73
-----------------------o----o--- 78 74
-------------------------------- 79 75
------------------------o-o----- 76
----------------------o--------- 77
-------------------------oo--o-- 78
-------------------------------- 79

Tab. 7-2  Ve teurs de perturbations publiés de type-I. La notation ≫i indique


que pour retrouver le ve teur de la référen e, il sut d'ee tuer une permutation
ir ulaire vers la gau he de i bits de ha un des 80 mots orrespondants.

110
7-3. Classi ation des ve teurs de perturbations

Yajima De Cannière Jutla


et al. et al. &
Ve teur [YIN08℄ [DCM07℄ Patthak
[JP05℄
Type-II
≫2 ≫2 Codeword2

oo-o---------------------------- 0
o------------------------------- 1
ooo----------------------------- 2
o-o----------------------------- 3
---o---------------------------- 4
o------------------------------- 5 0
ooo----------------------------- 6 1
--o----------------------------- 7 2
oo-o---------------------------- 8 3
o------------------------------- 9 4
ooo----------------------------- 10 5
o-o----------------------------- 11 0 6
---o---------------------------- 12 1 7
o------------------------------- 13 2 8
ooo----------------------------- 14 3 9
--o----------------------------- 15 4 10
oo------------------------------ 16 5 11
o------------------------------- 17 6 12
-oo----------------------------- 18 7 13
o------------------------------- 19 8 14
oo------------------------------ 20 9 15
o------------------------------- 21 10 16
o-o----------------------------- 22 11 17
o------------------------------- 23 12 18
ooo----------------------------- 24 13 19
-------------------------------- 25 14 20
. . . .
. . . .
. . . .

-------------------------------- 61 51 57
-------------------------------- 62 52 58
-------------------------------- 63 53 59
-------------------------------- 64 54 60
-------------------------------- 65 55 61
-------------------------------- 66 56 62
-------------------------------- 67 57 63
-------------------------------- 68 58 64
-------------------------------- 69 59 65
-------------------------------- 70 60 66
-------------------------------o 71 61 67
-------------------------------- 72 62 68
-------------------------------- 73 63 69
------------------------------o- 74 64 70
-------------------------------o 75 65 71
-------------------------------- 76 66 72
-----------------------------o-- 77 67 73
------------------------------o- 78 68 74
------------------------------o- 79 69 75
----------------------------o--- 70 76
-----------------------------o-- 71 77
-------------------------------- 72 78
---------------------------o--o- 73 79
----------------------------o--- 74
----------------------------o-o- 75
--------------------------o----- 76
---------------------------o-oo- 77
-------------------------------- 78
--------------------------o--o-o 79

Tab. 7-3  Ve teurs de perturbations publiés de type-II. La notation ≫i indique


que pour retrouver le ve teur de la référen e, il sut d'ee tuer une permutation
ir ulaire vers la gau he de i bits de ha un des 80 mots orrespondants.

111
Chapitre 7. Amélioration de la ara téristique linéaire

Ve teurs de perturbations Notation

Wang et al. CRYPTO 2005 [WYY05 ℄

58 pas I(43, 2)
80 pas I(49, 2)
Rijmen & Oswald CT-RSA 2005 [RO05℄

Codeword1 I(45, 1)
Codeword2 I(41, 1)
Codeword3 I(39, 1)
Jutla & Patthak ePrint 2005 [JP05℄

Codeword1 I(52, 0)
Codeword2 II(52, 0)
Codeword3 I(51, 0)
Pramstaller et al. IMA 2005 [PRR05℄ I(50, 2)
De Cannière & Re hberger ASIACRYPT 2006 [DCR06℄ I(35, 2)
De Cannière et al. SAC 2007 [DCM07℄ II(46, 2)
Yajima et al. ASIACCS 2008 [YIN08℄ II(56, 2)

Tab. 7-4  Nouvelle notation des ve teurs de perturbations publiés.

Bien que des ve teurs de perturbations d'une même lasse soient par dénition
équivalents, l'e a ité de es ve teurs peut varier dans de grandes proportions. Nous
dé rivons les fon tions de oût que nous avons dénies pour réaliser l'évaluation de
l'e a ité des ve teurs de perturbations dans la se tion suivante.

7-4 Fon tion d'évaluation


Dans le but de omparer l'e a ité de diérents ve teurs de perturbations, notre
algorithme prend omme paramètre une fon tion de oût. Une telle fon tion se doit,
pour un ve teur de perturbations donné, de reéter la omplexité d'une attaque
par ollision fondée sur e ve teur. Cependant, la omplexité de es attaques est
largement subordonnée à diérents fa teurs, et notamment aux te hniques d'a élé-
ration de re her he mises en oeuvre lors de l'attaque. De plus, l'expérien e montre
que les ve teurs de perturbations inuent sur le omportement des générateurs au-
tomatiques de ara téristiques non-linéaires. Dès lors, dénir une fon tion de oût
optimale semble être un obje tif parti ulièrement di ile.
Dans le adre d'une attaque pratique de re her he de ollision, nous pré onisons
d'utiliser notre algorithme dans le adre d'une appro he en deux étapes. La première
étape onsiste à dénir une ou plusieurs fon tions de oût fournissant une première
évaluation brute de l'e a ité d'un ve teur, an d'ee tuer un balayage rapide
de l'espa e de re her he et d'obtenir un ensemble de bons andidats potentiels. La
se onde étape onsiste à évaluer, en prenant en ompte tous les fa teurs inhérents
à ette attaque, les ve teurs de et ensemble pour hoisir le plus performant d'entre
eux. C'est l'appro he que nous avons mis en oeuvre ave Thomas Peyrin an de
produire une ollision pour la fon tion SHA-0 [MP08℄.

112
7-4. Fon tion d'évaluation

Nous allons à présent, dé rire les deux fon tions de oût que nous avons utilisées
lors de nos expérimentations.

7-4.1 Fon tions de oût


Nous avons hoisi de re her her des ve teurs de perturbations sus eptibles d'être
utilisés pour onstruire une ollision sur deux blo s pour la fon tion SHA-1 (80 pas).
Il est ependant tout à fait possible d'utiliser notre algorithme pour re her her des
ve teurs de perturbations pour des versions réduites. Il sut pour ela de dénir une
fon tion de oût en adéquation ave le nombre de pas voulu.

7-4.1.1 Rationale
Pour onstruire nos fon tions de oût, nous nous sommes appuyés sur un ertain
nombre d'hypothèses présentes dans la littérature.
 Nous avons hoisi de ommen er l'évaluation des ve teurs au pas 21. En eet,
les arti les de Wang et al. [WYY05b, WYY05 ℄ ont montré qu'il était possible
de trouver des modi ations de messages avan ées permettant de s'assurer du
bon omportement des ollisions lo ales au moins jusqu'à e pas.
 De la même façon que dans [DCM07℄, nous avons hoisi d'ignorer les ondi-
tions liées aux retenues pour les pas 79 et 80. En eet pour le premier blo
de la ollision, es onditions peuvent être gérées par la ara téristique non-
linéaire appliquée au se ond blo . De plus notre obje tif onsistant à obtenir
une estimation de l'e a ité d'un ve teur de perturbation donné, il ne nous
a pas semblé omplètement déraisonnable de ne pas prendre en ompte es
onditions.
 Nos deux fon tions de oût intègrent aussi les te hniques de ompression de
bits, dé rites dans [WYY05b℄ et [YIN08℄.
L'évaluation des ve teurs de perturbations andidats que nous avons hoisie repose
sur l'appro he probabiliste. La fon tion de oût 1 utilise les probabilités théoriques
de bon omportement des ollisions lo ales que l'on peut retrouver dans l'arti le de
Mendel et al. [MPR06℄. La fon tion de oût 2 utilise les probabilités données par les
tables B.1 et B.2 de l'annexe B de la thèse de Thomas Peyrin [Pey08℄.
Nous rappelons que es fon tions n'ont pas pour but de donner une évaluation
pré ise et dénitive de la omplexité d'une attaque par ollision ontre SHA-1. Leur
obje tif est de permettre de déterminer de façon grossière mais rapide quels sont
parmi tous les ve teurs andidats, les ve teurs sus eptibles d'être les plus perfor-
mants. En outre, nous soulignons le fait que la fon tion de oût ne onstitue qu'un
paramètre de l'algorithme et que elui- i est à même de fon tionner ave n'importe
quelle fon tion de oût.

7-4.1.2 Évaluation des ve teurs publiés


Nous avons réuni table 7-5 les diérentes évaluations, obtenues au moyen de nos
deux fon tions de oût, orrespondant aux ve teurs de perturbations présents dans
la littérature. Il est intéressant de remarquer que les évaluations obtenues sont très
pro hes des omplexités revendiquées lors des attaques par ollisions menées ontre
des versions réduites de SHA-1 [WYY05b, DCR06, DCM07℄. Ce qui semble montrer
que bien que nos fon tions de oût soient relativement grossières, elles reètent de

113
Chapitre 7. Amélioration de la ara téristique linéaire

Complexité Évaluation Évaluation


Ve teurs de perturbations revendiquée 1 2
log2 − log2 − log2

Wang et al. CRYPTO 2005 [WYY05 ℄

58 pas 33 35 35
80 pas 69 73 73

Rijmen & Oswald CT-RSA 2005 [RO05℄

80 pas
Codeword1 - 90 90
Codeword2 - 97 97
Codeword3 - 102 102

Jutla & Patthak ePrint 2005 [JP05℄

80 pas
Codeword1 - 70 76
Codeword2 - 65 69
Codeword3 - 71 76

Pramstaller et al. IMA 2005 [PRR05℄

80 pas - 73 73

De Cannière & Re hberger


ASIACRYPT 2006 [DCR06℄
64 pas 35 34 34
80 pas - 94 94

De Cannière et al. SAC 2007 [DCM07℄


70 pas 44 43 43
80 pas - 88 88

Yajima et al. ASIACCS 2008 [YIN08℄


80 pas 70 (72) CVCs 75 75

Tab. 7-5  Comparaison de l'évaluation, relativement aux fon tions de oûts que
nous avons hoisies, de l'e a ité des ve teurs de perturbations publiés. L'évaluation
1 (respe tivement 2) se fonde sur l'arti le de Mendel et al. (respe tivement la thèse
de Peyrin).

façon assez pertinente l'e a ité des ve teurs de perturbations. Nous notons aussi
que le ve teur de perturbations le plus performant, relativement aux fon tions de
oûts que nous avons hoisies, est le ve teur désigné sous le nom de Codeword2
dé rit pour la première fois par Jutla et Patthak dans [JP05℄.

7-4.1.3 Autre fon tion


Les deux fon tions de oût que nous avons employées sont des fon tions onser-
vatri es. Dans le papier ePrint [Man08℄ que nous avons proposé, nous avions déni
et utilisé une fon tion plus optimiste dont l'évaluation des ve teurs ommen e au
pas 25. En eet, dans [WYY05b℄, les auteurs exhibent des modi ations de message
avan ées permettant de ommen er l'évaluation de leur ve teur à partir de e pas.
Cependant, es modi ations de message ne sont pas indépendantes du ve teur de
perturbations : elles doivent être onstruites spé iquement. Par onséquent, il n'y
a pas de ertitude pour un ve teur de perturbations donné sur l'existen e de modi-

114
7-4. Fon tion d'évaluation

ations de message avan ées e a es. Cependant si l'on a epte l'hypothèse de leur
existen e, le meilleur ve teur de perturbations obtenu ave ette fon tion optimiste
est le ve teur noté II(49, 0). M Donald et al. ont présenté durant la Rump session
d'EUROCRYPT'09 une attaque par ollision fondée sur e ve teur.

7-4.2 De l'e a ité à la omplexité


Une fon tion de oût est destinée à évaluer l'e a ité d'un ve teur de perturba-
tions. Considérons à présent le lien entre ette évaluation de l'e a ité et la om-
plexité d'une attaque par ollision ontre SHA-1 fondée sur e ve teur.
On peut trouver dans la littérature prin ipalement trois appro hes utilisées pour
pro éder à une évaluation de la omplexité des attaques par ollision :
 le dé ompte de onditions [WYY05d, WYY05b, WYY05 , SKP07, MP08,
YIN08, YIN09℄,
 le al ul de probabilités [CJ98, BC04, BCJ05, MPR06℄,
 l'estimation du fa teur de travail [DCR06, DCM07, JP07℄.
Pour un ve teur de perturbations donné la omplexité des attaques est évaluée
à partir d'un ertain pas, soit en additionnant le nombre de onditions à remplir,
soit en multipliant les probabilités de bon omportement de haque ollision lo ale
orrespondant aux perturbations dénies par e ve teur. L'estimation du fa teur de
travail se fonde, quant à elle, sur le nombre moyen de noeuds d'un arbre devant être
visités an de trouver une paire de messages qui vérie une ertaine ara téristique
diérentielle. À es évaluations peuvent s'ajouter un ertain nombre de paramètres
qui dépendent essentiellement des te hniques d'a élération de re her he employées.
De plus, des analyses plus nes du omportement des ollisions lo ales peuvent, elles
aussi, inuen er l'évaluation de la omplexité.
Les fon tions de oût que nous avons hoisi de dénir reposent sur un al ul de
probabilités démarrant au pas 21, l'hypothèse sous-ja ente étant que l'on peut s'assu-
rer du bon omportement des ollisions lo ales du pas 16 au pas 20 indépendamment
du ve teur de perturbations. Il s'agit d'une hypothèse dis utable, mais relativement
ommune dans la littérature. De plus, omme nous l'avons déjà souligné auparavant,
le pro essus de génération de ara téristiques non-linéaires ainsi que des éventuelles
te hniques d'a élération de re her he peuvent présenter des omportements dié-
rents en fon tion du ve teur de perturbations onsidéré. Aussi, nous ne pouvons
pas revendiquer qu'il est possible de monter simplement et dire tement une attaque
par ollision ontre la fon tion SHA-1 à partir du meilleur ve teur trouvé par notre
algorithme.
Cependant, ela ne dégrade pas la valeur de l'algorithme que nous proposons ar
il peut être utilisé ave quelque fon tion de oût dénie pour reéter au mieux les
ontraintes spé iques liée à l'attaque.

115
Chapitre 7. Amélioration de la ara téristique linéaire

116
8

Évaluation Statistique du
omportement des ollisions
lo ales

Sommaire
8-1 Introdu tion . . . . . . . . . . . . . . . . . . . . . . . . 117
8-2 Pro édure expérimentale . . . . . . . . . . . . . . . . 118
8-3 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8-3.1 Collision lo ale isolée . . . . . . . . . . . . . . . . . . . 119
8-3.2 Collision lo ales adja entes . . . . . . . . . . . . . . . . 121
8-3.3 Collision lo ales onsé utives . . . . . . . . . . . . . . . 121
8-3.4 Collisions lo ales alternées . . . . . . . . . . . . . . . . 122
8-4 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . 124

8-1 Introdu tion


An d'évaluer la omplexité d'une attaque par ollision, l'hypothèse suivante est
généralement admise : les probabilités de bon omportement des ollisions lo ales
sont indépendantes. Selon ette hypothèse, la probabilité de bon omportement d'un
en hevêtrement de ollisions lo ales est onsidérée omme étant le produit des pro-
babilités de bon omportement des ollisions lo ales impliquées. Cette hypothèse est
aussi appliquée, sous une forme équivalente, pour le dé ompte de onditions. Cepen-
dant, dans l'arti le de Chabaud et Joux [CJ98℄ un omportement parti ulier, e que
nous avons dénommé as pathologique, est identié on ernant la fon tion IF . Deux
ollisions lo ales onsé utives dans les 15 premiers pas de la fon tion de mise à jour
des registres onduit à un hemin diérentiel impossible, qui né essite l'emploi d'une
ara téristique non-linéaire. Thomas Peyrin dé rit dans sa thèse [Pey08℄ un om-
portement similaire sus eptible d'être observé pour la fon tion M AJ . La solution
onsiste alors à s'assurer que les dire tions de deux ollisions lo ales apparaissant
entre les pas 36 et 55 soient opposées. En outre, la te hnique de ompression de
bit utilisée dans [WYY05b, YIN08, YIN09℄ permet d'augmenter les probabilités de
bon omportement de ollisions lo ales adja entes en hoisissant ave pré aution les
dire tions des diérentes ollisions lo ales impliquées. Ces exemples montrent que

117
Chapitre 8. Évaluation Statistique du omportement des ollisions lo ales

l'hypothèse d'indépendan e des ollisions lo ales ne se vérie pas dans un ertain


nombres de as de gure. C'est à partir de se onstat, que nous avons déni une
pro édure expérimentale et mené un ertain nombre d'expérimentations visant à
onfronter ette hypothèse d'indépendan e. Les résultats présentés dans e hapitre
seront publiés dans la pro haine édition du journal Design, Codes and Cryptography
[Man10℄.

8-2 Pro édure expérimentale


Dans le but de mesurer les probabilités de bon omportement d'en hevêtrements
de ollisions lo ales nous avons déni une pro édure expérimentale présentée dans
l'algorithme 5. Cette pro édure requiert quatre paramètres diérents utilisés pour
dé rire l'information né essaire pour onstruire les paires de messages andidates et
les traiter. Le premier paramètre S orrespond au nombre de pas qu'il est né es-
saire d'ee tuer pour arriver au bout de l'en hevêtrement de ollisions lo ales. Le
deuxième paramètre dénit e que nous nommons le patron de ollision lo ale. Le
patron orrespond à la des ription omplète de l'en hevêtrement de ollision lo ales :
 le nombre de ollisions lo ales,
 la position à laquelle elles sont insérées (la première ollision, en terme de
position de bit, est toujours insérée à la position de bit 0),
 le numéro du bit où est insérée haque ollision,
 la dire tion de haque ollision.
En e qui on erne la dire tion d'une ollision lo ale, nous utiliserons pour la dénir
la notion de signe positif ou négatif. Une ollision lo ale insérée sur une position de
bit b orrespond à la diérentielle :
 (+2b , −2b+5 , −2b , −2b−2 , −2b−2 , −2b−2 ) pour une ollision de signe positif
 (−2b , +2b+5 , +2b , +2b−2 , +2b−2 , +2b−2 ) pour une ollision de signe négatif.
Le troisième paramètre spé ie la fon tion de ronde utilisée et le dernier paramètre
impose le nombre de test à ee tuer pour l'expérien e.
Par exemple, onsidérons le as de deux ollisions lo ales onsé utives sur les
positions de bits 1 et 4, de signe positif et se déroulant toutes deux dans une ronde de
M AJ . Le nombre de pas S est xé à 7 : au pas 7, les séquen es de orre tions auront
étés intégralement appliquées et une ollision des registres devrait être observée. Le
paramètre f orrespondant à la fon tion de ronde est déni omme étant M AJ . Le
patron de ollision lo ale pour et en hevêtrement parti ulier est alors :

(+21 , −26 + 24 , −21 − 29 , −231 − 24 , −231 − 22 , −231 − 22 , −22 ).

Le nombre de test T est xé à 220 , e qui permet d'obtenir une pré ision relative de
0.01 pour le logarithme de la probabilité.
La pro édure basique d'expérimentation onsiste à tirer aléatoirement un état
initial pour les registres et à générer une paire de message aléatoire se onformant au
patron de ollision lo ale. Puis, haque message est utilisé pour al uler parallèlement
les nouveaux états des registres pour le nombre de pas S né essaire. Finalement, les
deux états nals sont omparés an de vérier si on retrouve ee tivement une ol-
lision. Cette expérien e est reproduite le nombre de fois T né essaire pour obtenir la
pré ision désirée. Pour un type de patron donné toutes les positions de bits possibles
sont testées.

118
8-3. Résultats

Algorithm 5 Mesure des probabilités de bon omportement de patrons de ollisions


lo ales
Require: nombre de pas S, patron de ollision lo ale, fon tion de ronde f, nombre
de tests T
for b = 0 to 31 do
for i = 1 to 3 do
mi ← 0
for t = 1 to T do
Tirer aléatoirement un état initial (A0 , A−1 , A−2 , A−3 , A−4 )
Tirer aléatoirement S valeurs de 32 bits et appliquer le patron de ollision
lo ale pour obtenir la paire de message W0 , . . . , WS−1 et W0′ , . . . , WS−1

Cal uler (A′1 , . . . , A′S ) selon la fon tion de mise à jour des
(A1 , . . . , AS ) et
registres ave la fon tion de ronde f
if (AS−4 ⊕ A′S−4 = AS−3 ⊕ A′S−3 = AS−2 ⊕ A′S−2 = AS−1 ⊕ A′S−1 =
AS ⊕ A′S = 0) then
mi ← mi + 1
end if
end for
end for
Pb ← (m1 + m2 + m3 )/(3 × T )
end for
return P0 , . . . , P31

Une fois ette pro édure dénie, nous avons testé le omportement de diérents
patrons de ollisions lo ales présents dans les ve teurs de perturbations de type-I et
de type-II.

8-3 Résultats
8-3.1 Collision lo ale isolée
Le premier patron de ollision lo ale que nous avons onsidéré est le as d'une
ollision lo ale isolée. Les diérentes probabilités de bon omportement que nous
avons mesurées sont listées dans le tableau 8-1. Les valeurs orrespondant aux pro-
babilités théoriques de bon omportement sont représentées entre parenthèses. La
notation [4.85,4.87℄ indique que les probabilités mesurées varient entre les valeurs
2−4.85 et 2−4.87 selon les diérentes positions de bit onsidérées. Ces résultats sont
ompatibles ave l'analyse fondée sur l'impa t des retenues proposée dans [MPR06℄.
Nous signalons ependant une erreur
3 ontenue dans l'arti le on ernant la proba-
bilité de bon omportement initiée à la position de bit 31 dans une ronde de M AJ .
Cette probabilité est égale à 2−4 et non 2−3 .
Nous pouvons observer que les valeurs mesurées sont égales aux probabilités
théoriques pour les positions de bit 1, 26 et 31. Les probabilités obtenues pour les
autres positions sont légèrement meilleures que les probabilité théoriques du fait de
l'eet de propagation des retenues. Cependant, et eet peut être détruit s'il est
amené à dépasser la position de bit 31, ar à ette position la retenue est ignorée

3
Cette erreur a aussi été remarquée par Thomas Peyrin dans sa thèse.

119
Chapitre 8. Évaluation Statistique du omportement des ollisions lo ales

(addition modulo 232 ). Les perturbations initiées sur les positions de bit 1, 26 ou
31 orrespondent, ou impliquent des orre tions relatives à des modi ations sur la
position de bit 31. Ce i est le fait des valeurs des permutations ir ulaires présentes
dans la formule de mise à jour des registres. Les ollisions lo ales initiées sur ses
positions de bit ne peuvent don pas béné ier de l'eet de propagation des retenues
qui améliore les probabilités sur les autres positions de bit. Pour la fon tion XOR la
probabilité de bon omportement en fon tion de la position de bit b, notée p(XOR, b)
est égale à :



2−4 + 2−6 for b=0

2−2 for b=1
p(XOR, b) = P27−b −4k
 k=1 2
 for b = 2, . . . , 26

2.2−4.(32−b) + P31−b 2−4k

for b = 27, . . . , 31
k=1

Pour la fon tion M AJ , ette probabilité est égale à :





 2−4 + 2−8 for b=0

2−4 for b=1
p(M AJ, b) = P27−b −4k
k=1 2 for b = 2, . . . , 26



P32−b 2−4k

for b = 27, . . . , 31
k=1

Patron -------------------------------o
Position de bit b 0 1 2, . . . , 25 26 27,28,29 30 31

Fon tion Signes Probabilités mesurées


de ronde − log2
+ 4.87 5.00 [4.85, 4.87℄ 5.00 4.86 4.83 4.01
IF − 4.87 5.00 [4.85, 4.87℄ 5.00 4.86 4.84 4.00
(5) (5) (5) (5) (5) (5) (4)

+ 3.68 2.00 [3.90, 3.92℄ 4.00 [3.90, 3.91℄ 3.83 3.00


XOR − 3.68 2.00 [3.90, 3.92℄ 4.00 3.91 3.83 3.00
(4) (2) (4) (4) (4) (4) (3)

+ 3.91 4.00 [3.90, 3.92℄ 4.00 [3.90, 3.91℄ 3.92 4.00


MAJ − 3.92 4.00 [3.90, 3.92℄ 4.00 3.91 3.91 4.00
(4) (4) (4) (4) (4) (4) (4)

Tab. 8-1  Probabilités de bon omportement mesurées pour une ollision lo ale
isolée se déroulant entièrement au sein d'une même fon tion de ronde. Les valeurs
présentées sont les moyennes observées sur 3 expérien es omprenant 220 tests ha-
une.

Nous avons présenté dans la table 8-1 les probabilités de bon omportement pour
la fon tion de ronde IF . Dans nos expérien es suivantes, nous avons hoisi d'ignorer
ette fon tion ar on attend de la ara téristique non-linéaire de prendre en main le
omportement des ollisions lo ales pour ette ronde.

120
8-3. Résultats

8-3.2 Collision lo ales adja entes


Nous avons mesuré les probabilités de bon omportement relatives à des olli-
sions lo ales adja entes. Ces expérimentations prennent en ompte l'ensemble des
as orrespondant à la ompression de bit simple dé rite dans l'arti le de Wang et
al. [WYY05b℄. Les probabilités mesurées sont détaillées dans le tableau 8-2. Nous
remarquons que le as de la fon tion de ronde XOR a été analysé de façon théorique
par Mendel et al. dans [MPR06℄. Les résultats que nous obtenons onrment leur
analyse. Le omportement de la fon tion M AJ est similaire à elui de la fon tion
XOR, et le prin ipe de la ompression de bit se vérie bien.
Nous rappelons que la ompression de bits onsiste à for er l'appli ation de l'eet
de propagation de la retenue (Carry Ee t ) en spé iant de façon délibérée les signes
des perturbations. Cet eet repose sur une simple propriété des puissan es de 2 :

+2i = −2i − 2i+1 − 2i+2 − · · · − 2i+(j−1) + 2i+j .


Une série de perturbations adja entes peut don être vue omme une unique per-
turbation positionnée à la même position de bit que la première des perturbations
impliquées, dès lors que les dire tions de es perturbations sont hoisies de façon
adéquate. La spé i ation de es signes peut se faire de façon simple en inuant
dire tement sur les bits des mots de message expansés, moyennant la perte d'un er-
tain nombre de degrés de liberté. Du point de vue de la propagation à l'état interne,
ette ollision lo ale ompressée se omporte ee tivement omme une seule ollision
lo ale. En eet l'égalité arithmétique garantit qu'ave une probabilité 1/2 (la même
valeur que la probabilité pour qu'il n'apparaisse pas de retenue dans dans le as d'une
ollision lo ale unique), la perturbation propagée au registre se bornera à la position
de bit de la première perturbation. Malen ontreusement, la ompression de bit n'est
possible que lorsque la propagation de la retenue n'est pas arrêté par l'addition mo-
dulo 232 . Combiné aux deux permutations ir ulaires présentes dans la fon tion de
mise à jour des registres, ela implique qu'il ne peut y avoir de ompression de bit
sur les positions 1 et 2, 26 et 27 ou 31 et 0.
Nous avons mené des expérimentations supplémentaires an de vérier le fon -
tionnement du prin ipe de ompression de bit à un nombre de ollisions lo ales
adja entes supérieur à deux : les résultats observés sont on luants.

8-3.3 Collision lo ales onsé utives


Le as des ollisions lo ales onsé utives présente un intérêt parti ulier ar il
orrespond aux as pathologiques déjà identiés dans la littérature. L'étude de e
type d'en hevêtrement de ollisions lo ales nous a permis d'une part de montrer
que le as pathologique identié pour la fon tion M AJ n'est onstitué que pour un
nombre restreint de positions de bit, et d'autre part de mettre à jour de nouveaux
as pathologiques.
Le tableau 8-3 liste les résultats obtenus pour deux ollisions lo ales positionnées
sur le même numéro de bit et démarrant lors de deux pas immédiatement onsé-
utifs. Nous rappelons que les seuls résultats publiés pré édemment pour e patron
parti ulier, on ernent les as pathologiques relatifs aux fon tions de ronde IF et
M AJ . Pour la fon tion M AJ , la solution proposée dans la littérature pour éviter
un hemin diérentiel impossible onsiste à imposer aux deux ollisions lo ales des
signes opposés.

121
Chapitre 8. Évaluation Statistique du omportement des ollisions lo ales

Patron -------------------------------oo
Position de bit b 0 1 2, . . . , 23 24 25 26 27 28 29 30

Fon tion Signes Probabilités mesurées


de ronde − log2
−− 6.00 5.91 [6.90, 6.91℄ 6.96 8.00 7.90 6.91 6.87 6.36 7.00
XOR ++ 6.00 5.91 [6.90, 6.90℄ 6.96 8.00 7.91 6.90 6.87 6.36 7.00
(6) (6) (8) (8) (8) (8) (8) (8) (8) (7)

−+ 3.68 5.91 [3.90, 3.91℄ 3.91 3.91 7.90 3.91 3.91 3.90 3.83
+− 3.68 5.90 [3.90, 3.91℄ 3.91 3.91 7.91 3.90 3.91 3.90 3.83
(4) (6) (4) (4) (4) (8) (4) (4) (4) (4)

−− 8.00 7.90 [6.90, 6.91℄ 6.96 7.99 7.90 6.91 6.91 6.95 8.00
MAJ ++ 8.00 7.91 [6.90, 6.91℄ 6.96 8.00 7.91 6.91 6.91 6.95 8.00
(8) (8) (8) (8) (8) (8) (8) (8) (8) (8)

−+ 3.91 7.91 [3.90, 3.91℄ 3.91 3.91 7.91 3.91 3.91 3.91 3.91
+− 3.91 7.91 [3.90, 3.91℄ 3.91 3.91 7.91 3.91 3.91 3.91 3.91
(4) (8) (4) (4) (4) (8) (4) (4) (4) (4)

Tab. 8-2  Probabilités de bon omportement de deux ollisions lo ales adja entes se
déroulant entièrement au sein d'une même fon tion de ronde. Les valeurs présentées
sont les moyennes observées sur 3 expérien es omprenant 224 tests ha une.

Nos expérien es montrent que même lorsque les signes sont égaux, l'existen e de
hemins diérentiels impossibles ne semble être établie que pour les positions de bit 1,
26 et 31. Pour les autres positions de bit, ertaines paires de message sont parvenues à
former une ollision, ave ependant une probabilité de bon omportement inférieure
(pro he de 2−10 ) à la probabilité théorique de bon omportement ave signes opposés
(2
−8 ). Lorsque les signes des ollisions lo ales sont ee tivement opposés, on peut
observer que les probabilités mesurées sont meilleures que les probabilités théoriques
(autour de 2−6 au lieu de 2−8 ).
Cette amélioration des probabilités théoriques est aussi présente pour la fon tion
de ronde XOR. À l'ex eption de la position de bit 1, et quelle que soit la ombinaison
de signes, les probabilités mesurées sont meilleures que prévues. Cela est parti uliè-
rement intéressant pour la position de bit 31. Pour e type d'en hevêtrement de
ollisions lo ales, on peut remarquer que la position de bit 1 n'est plus ex lusivement
elle qui donne la meilleure probabilité de bon omportement.

8-3.4 Collisions lo ales alternées


Le premier type de patron présentant un en hevêtrement de ollision lo ales
alternées que nous avons testé est onstitué de deux ollisions lo ales insérées à la
même position de bit et ommençant aux pas i et i + 2. Les résultats obtenus sont
rassemblés dans le tableau 8-4.
Pour la fon tion XOR, le omportement observé est onforme à e que nous at-
tendions. Cependant pour la fon tion M AJ , les probabilités mesurées sont nettement
inférieures aux probabilités théoriques. Il n'y a orrespondan e que pour des pertur-
bations de même dire tion insérées à la position de bit 1, et pour des perturbations
de dire tions opposées insérées à la position de bit 31. Pour la position de bit 1 ave

122
8-3. Résultats

Patron -------------------------------o
-------------------------------o
Position de bit b 0 1 2, . . . , 24 25 26 27,28,29 30 31

Fon tion Signes Probabilités mesurées


de ronde − log2
−− 5.91 4.00 [5.97, 5.98℄ 5.98 6.00 [5.97, 5.98℄ 5.91 4.00
XOR −+ 5.91 4.00 [5.97, 5.98℄ 5.98 6.00 5.98 5.91 4.00
+− 5.91 4.00 5.98 5.98 6.00 5.98 5.91 4.00
++ 5.91 4.00 [5.97, 5.98℄ 5.98 6.00 [5.97, 5.98℄ 5.91 4.00
(8) (4) (8) (8) (8) (8) (8) (6)

−− 10.01 > 24 [9.88, 9.92℄ 9.99 > 24 [9.91, 9.92℄ 9.99 > 24
MAJ ++ 10.00 > 24 [9.88, 9.92℄ 10.00 > 24 [9.90, 9.91℄ 10.01 > 24
(∞) (∞ ) (∞ ) (∞) (∞) (∞) (∞) (∞)
−+ 5.98 6.00 [5.97, 5.98℄ 5.98 6.00 5.98 5.98 6.00
+− 5.98 6.00 [5.97, 5.98℄ 5.98 6.00 5.98 5.98 6.00
(8) (8) (8) (8) (8) (8) (8) (8)

Tab. 8-3  Probabilités de bon omportement de deux ollisions lo ales onsé utives
(démarrant au pas i et i + 1) se déroulant entièrement au sein d'une même fon tion
de ronde. Les valeurs présentées sont les moyennes observées sur 3 expérien es om-
prenant 224 tests ha une. La notation "> 24" désigne le fait qu'au une ollision n'a
été trouvée lors des trois expérien es, la probabilité de bon omportement orres-
pondante est don stri tement inférieure à 2
−24 . La notation ∞ désigne un hemin
diérentiel théoriquement impossible.

des dire tions opposées, et la position de bit 31 ave une même dire tion, au une
ollision ne s'est jamais produite au ours des 3 expérien es omportant 224 essais
ha une. D'un point de vue statistique, ela peut signier que la probabilité d'ob-
tenir une ollision est inférieure à 2−25 , ou bien que nous sommes onfrontés à des
hemins diérentiels impossibles et don à de nouveaux as pathologiques. Le même
type de omportement peut être observé pour la position de bit 26, et e quelque soit
la onguration des dire tions des ollisions lo ales. Nous en déduisons qu'il s'agit
là d'un réel nouveau as pathologique. L'observation de es omportements n'a, à
notre onnaissan e, jamais fait l'objet d'une publi ation antérieure à notre arti le
[Man10℄.

Nous remarquons de plus, que la probabilité théorique n'est atteinte que dans
seulement 4 ongurations :

 pour la position de bit 1 lorsque les dire tions sont identiques,


 pour la position de bit 31 lorsque les dire tions sont opposées.

Ailleurs, la probabilité mesurée est pro he de 2−12 , quand la probabilité théorique


attendue est 2
−8 .

Nous avons onduit d'autres expérimentations pour 3 et 4 ollisions lo ales alter-


nées. Bien que nous ne présentions pas es résultats dans ette thèse, nous avons pu
observer de nombreuses autres anomalies pour es patrons.

123
Chapitre 8. Évaluation Statistique du omportement des ollisions lo ales

Patron -------------------------------o
--------------------------------
-------------------------------o
Position de bit b 0 1 2, . . . , 24 25 26 27,28,29 30 31

Fon tion Signes Probabilités mesurées


de ronde − log2
−− 7.36 4.00 [7.81, 7.82℄ 7.82 8.00 [7.81, 7.82℄ 7.66 6.00
XOR −+ 7.36 4.00 [7.79, 7.80℄ 7.83 8.00 [7.77, 7.81℄ 7.66 6.00
+− 7.35 4.00 [7.79, 7.81℄ 7.82 8.00 [7.78, 7.80℄ 7.66 6.00
++ 7.36 4.00 [7.81, 7.82℄ 7.82 8.00 [7.81, 7.82℄ 7.66 6.00
(8) (4) (8) (8) (8) (8) (8) (6)

−− 11.88 8.00 [11.77, 11.82℄ 11.91 > 24 [11.80, 11.82℄ 11.91 > 24
MAJ ++ 11.91 7.99 [11.79, 11.82℄ 11.90 > 24 [11.81, 11.82℄ 11.91 > 24
+− 11.89 > 24 [11.58, 11.62℄ 11.90 > 24 [11.60, 11.63℄ 11.93 8.00
−+ 11.92 > 24 [11.58, 11.63℄ 11.90 > 24 [11.58, 11.63℄ 11.89 8.00
(8) (8) (8) (8) (8) (8) (8) (8)

Tab. 8-4  Probabilités de bon omportement de deux ollisions lo ales alternées


(démarrant au pas i et i + 2) se déroulant entièrement au sein d'une même fon -
tion de ronde. Les valeurs présentées sont les moyennes observées sur 3 expérien es
omprenant 224 tests ha une. La notation "> 24" désigne le fait qu'au une olli-
sion n'a été trouvée lors des trois expérien es, la probabilité de bon omportement
orrespondante est don stri tement inférieure à 2−24 .

8-4 Con lusion


L'ensemble des ve teurs de perturbations utilisés dans les ryptanalyses qui ont
abouti à l'obtention de ollisions lo ales pour les fon tions SHA-0 et des versions
réduites de la fon tion SHA-1 on entrent leurs perturbations sur la position de bit
1. Ce hoix délibéré des ryptanalystes se fonde sur les probabilités théoriques de bon
omportement (ou les nombres de onditions) héritées des premières études menées
pour es fon tions. Les expérien es que nous avons onduites nous montrent que e
hoix ne peut plus être onsidéré omme le seul hoix possible. De fait la position de
bit 31 peut, dans ertain as, se révéler tout aussi intéressante lorsque des ollisions
lo ales sont en hevêtrées. De plus, nous avions remarqué au hapitre 5 se tion 5-3.4,
que l'instan iation des dire tions des ollisions lo ales se fait généralement (à l'ex-
eption du as pathologique de la fon tion M AJ ) de façon uniforme. Bien que le
hoix de ette instan iation ne fasse l'objet d'au un ommentaire dans es rypta-
nanlyses, les résultats que nous avons observés indiquent qu'il semble né essaire de le
justier au vu des omportements qui apparaissent lors d'instan iations diérentes.
Nos expérien es ont aussi permis de mettre à jour au moins un nouveau as patholo-
gique pour la fon tion M AJ et de montrer que le as pathologique rapporté pour la
première fois par Chabaud et Joux ne onstitue pas toujours un hemin diérentiel
impossible.

Finalement nous pensons, que l'hypothèse assez ommune dans la littérature,


qui onsiste à onsidérer les ollisions lo ales omme indépendantes demande à être
étudiée de façon approfondie. Nous ne sommes pas en mesure, à l'heure où nous

124
8-4. Con lusion

rédigeons e do ument, de présenter une étude apable d'expliquer les omporte-


ments que nous avons remarqués. Cependant, nous espérons pouvoir poursuivre nos
re her hes dans ette dire tion.

125
Chapitre 8. Évaluation Statistique du omportement des ollisions lo ales

126
Troisième partie

Con eption de nouvelles fon tions

127
9

Les fon tions XOR-Hash et FSB

Sommaire
9-1 La fon tion XOR-Hash . . . . . . . . . . . . . . . . . . 129
9-1.1 Travaux onnexes . . . . . . . . . . . . . . . . . . . . . 130
9-1.2 Des ription de XOR-Hash . . . . . . . . . . . . . . . . 132
9-1.3 Analyse de sé urité . . . . . . . . . . . . . . . . . . . . 136
9-1.4 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . 137
9-2 La fon tion FSB . . . . . . . . . . . . . . . . . . . . . . 138
9-2.1 Des ription . . . . . . . . . . . . . . . . . . . . . . . . . 138
9-2.2 Sé urité . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9-2.3 Con lusion . . . . . . . . . . . . . . . . . . . . . . . . . 139

9-1 La fon tion XOR-Hash


Nous dé rivons dans e hapitre une onstru tion de fon tion de ha hage rypto-
graphique itérative, munie d'une transformation de sortie et fondée sur une fon tion
de ompression onstruite à partir d'une fon tion à sens unique. La onstru tion que
nous proposons est de type  oquille vide (Empty Shell Constru tion ). L'obje tif
de e type de onstru tion est de fournir un mode opératoire utilisant une ou plu-
sieurs briques de base pour lesquelles un ertain nombre de propriétés sont exigées.
Sous l'hypothèse que es briques possèdent ee tivement les propriétés requises, la
onstru tion garantit un ertain niveau de sé urité relativement aux attaques onsi-
dérées.
La fon tion XOR-Hash est le fruit d'une ollaboration ave Ni olas Sendrier.
L'arti le que nous avons rédigé a fait l'objet d'une présentation publique en 2007
au Western European Workshop on Resear h in Cryptology, organisé à Bo hum en
Allemagne [MS07℄.
XOR-Hash repose sur l'utilisation d'une nouvelle fon tion de ompression fondée
sur une fon tion à sens unique f : {0, 1}r → {0, 1}r . La fon tion f est appliquée à la
variable de haînage et à un nombre maximum de t − 1 blo s de message. Dès lors
que t valeurs ont été traitées, elles sont ombinées au moyen d'un xor bit à bit an
de former la variable de haînage suivante. Nous utilisons l'algorithme de Merkle-
Damgård omme extenseur de domaine et appliquons une transformation de sortie
nale g.

129
Chapitre 9. Les fon tions XOR-Hash et FSB

En limitant le nombre t de valeurs ombinées, nous faisons reposer la sé urité de


notre onstru tion sur des problèmes di iles de théorie des odes et plus pré isé-
ment sur la di ulté de dé odage d'un ode linéaire aléatoire. Pour les paramètres
proposés, nous onsidérons que la meilleure attaque de dé odage est l'algorithme du
paradoxe des anniversaires généralisé de Wagner [Wag02℄. Selon ette onje ture,
nous obtenons une sé urité de r/(2 + log2 t) bits ontre les attaques par ollisions.
An d'obtenir une fon tion de ha hage de taille n bits ave n/2 bits de sé urité,
nous utilisons une transformation de sortie nale ave r bits d'entrée et une sortie
de n = 2r/(2 + log2 t) bits.

9-1.1 Travaux onnexes


Nous présentons dans ette se tion, les diérents travaux qui nous ont onduit à
proposer ette nouvelle onstru tion.

Famille de fon tions FSB. En 2005 [AFS05℄, Augot et al. ont présenté une fa-
mille de fon tions de ompression fondées sur la théorie des odes. Ces fon tions
utilisent une fon tion de syndrome régulier, onsistant à xorer un petit nombre t
des olonnes d'une matri e aléatoire donnée omme paramètre. Les résistan es aux
ollisions et au al ul d'anté édent de ette famille de fon tions de ompression se
fondent sur une rédu tion vers des problèmes di iles de théorie des odes. Les au-
teurs ont démontré que le dé odage de syndrome régulier ainsi que le dé odage de
syndrome régulier double sont des problèmes NP- omplets. Ces fon tions de om-
pression sont paramétrables et leurs paramètres sont déterminés respe tivement aux
deux meilleures attaques onnues qui sont l'algorithme du paradoxe des anniversaires
généralisé de Wagner [Wag02℄ et l'algorithme de dé odage par ensemble d'informa-
tion de Canteaut-Chabaud [CC98℄.

La fon tion de ha hage ryptographique FSB repose sur une instan e de ette
famille de fon tions de ompression, nous dé rirons la fon tion FSB dans le hapitre
suivant.

XOR-MAC. En 1995 [BGR95℄, Bellare et al. ont proposé de nouvelles méthodes


pour onstruire des odes d'authenti ation de message appelés s hémas XOR (XOR-
s hemes ). Ces s hémas reposent sur l'utilisation d'une fon tion pseudo-aléatoire
omme primitive. Une telle fon tion peut être onstruite à partir d'un s héma de
hirement par blo idéal ou à partir de la fon tion de ompression d'une fon tion
de ha hage ryptographique idéale. Le al ul du ode d'authenti ation d'un message
au moyen de l'algorithme XOR-MAC se déroule en trois étapes :

1. dé oupage du message en une olle tion de blo s,

2. appli ation de la fon tion pseudo-aléatoire à ha un des blo s, pour obtenir


une olle tion d'images pseudo-aléatoires,

3. xor bit à bit de l'ensemble de es images pour obtenir le MAC.

Bellare et al. ont prouvé que pour une famille sûre de fon tions pseudo-aléatoires,
les s hémas XOR-MAC fondés sur ette famille sont sûrs.

130
9-1. La fon tion XOR-Hash

Le paradigme de randomisation puis ombinaison. En 1997 [BM97℄, Bellare


et Mi ian io ont introduit un nouveau paradigme pour la on eption de fon tions
de ha hage résistantes aux ollisions. Le paradigme dit de randomisation puis om-
binaison (Randomize-then-Combine Paradigm ) est une appli ation aux fon tions de
ha hage des méthodes employées pour XOR-MAC.
Le message x est vu omme une séquen e de blo s x = x1 . . . xℓ . xi
Chaque blo
est traité via la fon tion de randomisation f pour produire une valeur aléatoire yi =
f (hii k xi ), où la notation hii désigne la représentation binaire du blo d'indi e i et la
notation k l'opération de on aténation. Puis, les valeurs aléatoires sont ombinées
au moyen de l'opérateur de  ombinaison ⊙. La valeur nale ha hée est alors h(x) =
y1 ⊙ y2 ⊙ · · · ⊙ yℓ . Une illustration de e paradigme se trouve Figure 9-1.

h1i k x1 h2i k x2 ... hℓi k xℓ

? ? ?
f f ... f

y1 XX y2  yℓ
XXX S 
XX 
XXXS 
XS
z w 9



?
Empreinte

Fig. 9-1  Paradigme de randomisation puis ombinaison. Le al ul de l'empreinte


orrespondant à un message x = x1 . . . xℓ se déroule en deux étapes : les blo s de
message sont randomisés au moyen de la fon tion f et du odage de leur indi e puis,
les valeurs obtenues sont ombinées pour produire l'empreinte.

L'avantage prin ipal de e type de onstru tion réside dans son ara tère in ré-
mental. Si l'empreinte d'un message x modié en x′ a déjà été al ulée, la nouvelle
empreinte orrespondant au

message x peut être obtenue de façon e a e. Plutt
que de re al uler entièrement ette empreinte, on peut mettre à jour l'empreinte
pré édente en un temps proportionnel au montant des modi ations apportées à x
pour obtenir x′ .
Bellare et Mi ian io ont proposé diérentes solutions fondées sur diérents opé-
rateurs de ombinaisons, trois de es solutions possèdent des rédu tions de sé urité.
Par exemple, la résistan e aux ollisions de la fon tion MuHASH, qui utilise une
multipli ation omme opérateur de ombinaison, peut se réduire à la résolution du
problème du logarithme dis ret sous l'hypothèse que la fon tion de randomisation
f est modélisée en tant que fon tion de ha hage idéale. L'opérateur de ombinaison
xor n'a pas été retenu par Bellare et Mi ian io. En eet, la variante XHASH s'est
révélée ne pas être sûre même si la fon tion f est un ora le aléatoire. Il existe une
attaque utilisant l'algèbre linéaire e a e pour des messages très longs.
Cependant, nous soutenons qu'une fon tion de ha hage fondée sur le xor omme

131
Chapitre 9. Les fon tions XOR-Hash et FSB

opérateur de ombinaison peut être sûre, tant que le nombre de ombinaisons est
inférieur ou égal à un paramètre de sé urité. La fon tion XOR-Hash est fondée sur
e paradigme.

Rumba20. En 2007 [Ber07a℄, une nouvelle onstru tion utilisant le prin ipe de [BM97℄
a été proposée. Bernstein a présenté lors du Workshop ECRYPT sur les fon tions
de ha hage ryptographiques la fon tion Rumba20. Cette fon tion de ompression
est fondée sur le paradigme de randomisation puis ombinaison ave un nombre de
ombinaisons xé à 4 xor bit à bit.
La randomisation est faite à l'aide de 4 diérentes instan es f1 , f2 , f3 et f4 du
s héma de hirement à ot Salsa20 [Ber07b℄. Chaque instan e fi est une expan-
sion de 384 bits vers 512 bits, fi : {0, 1}384 → {0, 1}512 . L'entrée de la fon tion de
ompression (la variable de haînage pré édente et le blo de message ourant) est
dé oupée en 4 sous-blo s (x1 , x2 , x3 , x4 ). La sortie de la fon tion de ompression est
égale à f1 (x1 ) ⊕ f2 (x2 ) ⊕ f3 (x3 ) ⊕ f4 (x4 ).
L'algorithme du paradoxe des anniversaires généralisé de Wagner est onsidéré
omme étant l'attaque la plus e a e ontre ette fon tion. Les arguments de sé urité
de Rumba20 reposent sur une estimation détaillée, dé rite dans l'arti le, du oût de
ette attaque.

9-1.2 Des ription de XOR-Hash


Nous présentons tout d'abord dans ette se tion, les onsidérations de on ep-
tion que nous avons prises en ompte pour onstruire notre s héma. Nous dé rivons
ensuite la fon tion XOR-Hash selon un point de vue algorithmique pour nalement
dis uter de son e a ité en terme de taux de ha hage.

9-1.2.1 Con eption


An d'obtenir une fon tion à la fois sûre et e a e, la on eption de notre pro-
position repose sur plusieurs onsidérations que nous dé rivons i i.

Paradigme de randomisation puis ombinaison. Les auteurs de l'arti le de


1997, se sont prin ipalement intéressés aux opérateurs de ombinaison. En eet,
Bellare et Mi ian io pré onisent d'utiliser une fon tion de ha hage standard omme
fon tion de randomisation, et basent leur analyse de sé urité sur le fait de modéliser
ette fon tion omme un ora le aléatoire.
Tout omme pour l'algorithme XOR-MAC, la fon tion que nous proposons utilise
une fon tion à sens-unique f : {0, 1}r → {0, 1}r pour la randomisation et le xor bit
à bit pour la ombinaison.

Constru tion hybride . La onstru tion hybride est une appro he intermédiaire
entre le paradigme de randomisation puis ombinaison et les onstru tions de fon -
tions de ompression lassiques. Le résultat de haque ombinaison est sto ké dans
un a umulateur H, pré-rempli ave la randomisation d'une valeur initiale IV . Le
paramètre de sé urité t onstitue le nombre maximum de valeurs randomisées qui
seront ombinées. L'idée fondamentale de la onstru tion hybride onsiste à nourrir
l'a umulateur H jusqu'à e que le paramètre de sé urité t soit atteint. Lorsque t−1

132
9-1. La fon tion XOR-Hash

ombinaisons ont été faites, la valeur ourante de l'a umulateur H est tronquée et
utilisée omme nouvelle valeur initiale H̃ . Pour des messages de taille multiple de
t − 1, le omportement de la onstru tion hybride est similaire à une onstru tion
itérative de type Merkle-Damgård.

Modèle d'attaques. Pour les fon tions de la famille FSB et la fon tion Rumba20,
on onsidère que la meilleure attaque onnue est l'algorithme du paradoxe des an-
niversaires généralisé de Wagner. Le prin ipe de onstru tion de XOR-Hash est si-
milaire, bien que diérent, à es deux propositions. Il semble don raisonnable de
onsidérer ette attaque omme la plus signi ative lors de l'évaluation de la sé u-
rité de XOR-Hash. Nous dis uterons des impératifs de sé urité relatifs à la fon tion
de randomisation f et à la fon tion de transformation nale g dans la se tion 9-1.3.

Transformation de sortie. Au vu des analyses de sé urité dé rites dans [AFS05℄


et [Ber07a℄, on peut déduire que dans le but de résister à l'attaque du paradoxe des
anniversaires généralisé, la taille de la variable de haînage doit être de l'ordre de
quelques entaines de bits. Dans le adre de XOR-Hash, nous avons dé idé d'utiliser
une transformation de sortie an de réduire la taille de l'empreinte. Cette trans-
formation de sortie g : {0, 1}r → {0, 1}n est une fon tion de ompression et don
n < r.

9-1.2.2 Constru tion


Nous détaillons la fon tion XOR-Hash selon un point de vue algorithmique dé rit
dans l'algorithme 6. Une illustration graphique reprenant ette des ription est aussi
proposée par la gure 9-2.
Soit m le message à ha her, nous supposons qu'il in lut un rembourrage standard.
Nous dé oupons e message rembourré en ℓ blo s, m = m1 m2 . . . mℓ , où haque blo
mi est de tailler − ⌈log2 t⌉. L'algorithme prend omme argument une variable de
haînage initiale IV de taille r − ⌈log 2 t⌉ ainsi que les ℓ blo s mi . De façon similaire à
l'algorithme XOR-MAC, et dans le but de se prémunir d'une attaque par permutation
de blo s, nous préxons haque valeur destinée à être randomisée par la fon tion f
par une représentation binaire de son indi e hji pour 0 ≤ j < t. L'algorithme se
déroule alors de la façon suivante :

1. La première étape onsiste à al uler la valeur initiale devant être sto kée dans
l'a umulateur : H = f (h0i k IV ).
2. Puis deux ompteurs sont initialisés : le ompteur i désigne le numéro du blo
de message ourant et le ompteur j le nombre de valeurs randomisées destinées
à être ombinées.

3. Pour haque blo de message :

(a) Si t valeurs ont déjà été ombinées : tronquer les r − ⌈log2 t⌉ bits les plus
à droite de H, les utiliser omme variable de haînage H̃ an de al uler
la nouvelle valeur initiale de l'a umulateur puis re ommen er un y le
de ombinaisons en posant j = 1.
(b) Combiner la valeur randomisée ourante f (hji k mi ) ave la valeur ou-
rante de l'a umulateur, et sto ker le résultat.

133
Chapitre 9. Les fon tions XOR-Hash et FSB

( ) In rémenter les ompteurs i et j.


4. Lorsque tous les blo s de message ont été traités, appliquer la transformation
de sortie g à la valeur ontenue par l'a umulateur H.
La sortie de l'algorithme g(H) onstitue l'empreinte du message.

Algorithm 6 XOR-Hash
Require: IV, m1 , . . . , mℓ ∈ {0, 1}r−⌈log2 t⌉
H ← f (h0i k IV )
i ← 1; j ← 1
while i ≤ ℓ do
if j = t then
H̃ ← hopr−⌈log2 t⌉ (H)
H ← f (h0i k H̃)
j←1
end if
H ← H ⊕ f (hji k mi )
i ← i + 1; j ← j + 1
end while
return g(H)
Il est important de noter que nous n'instantions pas les fon tions f et g. Le
prin ipe de notre onstru tion de fon tion de ha hage munie d'une transformation de
sortie onsiste d'une part à proposer une nouvelle fon tion de ompression fondée sur
une fon tion à sens unique, et d'autre part à évaluer la sé urité de notre onstru tion
relativement aux propriétés de ette fon tion de ompression et de la transformation
de sortie. Nous dis uterons dans la se tion 9-1.3 des impératifs de sé urité que nous
avons identié pour es deux fon tions.

9-1.2.3 Évaluation de l'e a ité


Taux de ha hage. La notion de taux de ha hage a été introduite en 1993 par
Preneel [Pre93℄, pour les fon tions de ha hage fondées sur des s hémas de hirement
par blo . Dans l'arti le [KL94℄, Knudsen et Lai ont déni le taux de ha hage omme
le nombre de blo s de message de taille m bits traités sur le nombre d'appels, en
hirement ou dé hirement, à un s héma de hirement par blo de taille m bits.
Cette dénition onstitue la mesure normalisée pour évaluer l'e a ité des fon tions
de ha hage fondées sur des s hémas de hirement par blo .
Bien qu'il soit possible de onstruire une fon tion à sens unique au moyen d'un
s héma de hirement par blo , dans notre onstru tion, nous n'exigeons pas for-
mellement ette propriété de la fon tion f. Cependant, nous dénissons le taux de
ha hage relativement à la fon tion à sens-unique f, omme le nombre de bits traités
par f sur le nombre de bits traités par la fon tion XOR-Hash que nous notons i i h.
Le taux de ha hage de notre onstru tion est alors :

bits traités par f tr


Hrf = = .
bits de message traités par h (t − 1)(r − ⌈log2 t⌉)
Nous remarquons que du fait de notre onstru tion hybride Hrf peut varier. Par
exemple, pour des messages de longueur inférieure ou égale à r − ⌈log2 t⌉, Hrf est

134
9-1. La fon tion XOR-Hash

h0i k IV h1i k m1 h2i k m2 ht − 1i k mt−1

? ? ? ?
f f f ... f

? ? ?
- +m - +m ... - +m
H

?
h0i k H̃ h1i k mt h2i k mt+1 hℓ mod ti k mℓ

? ? ? ?
f f f ... f

? ? ?
- +m - +m ... - +m
H
?
@
@ g
@
?
h(m)

Fig. 9-2  XOR-Hash - Des ription graphique.

égal à 2. An de simplier la omparaison ave des onstru tions itératives lassiques,
nous hoisissons de dénir le taux de ha hage de notre onstru tion omme pour une
fon tion de ompression ave un nombre xe t de ombinaisons.
Puisque r est de l'ordre de quelques entaines de bits et que t varie de 2 à 8, on
a (r − ⌈log2 t⌉) ≈ r . En onséquen e :

t
Hrf ≈ ,
t−1
e qui onstitue un taux de ha hage e a e.

Constru tion hybride. Dans la se tion relative aux onsidérations de design,


nous avons souligné le fait que dans le but de résister à l'attaque du paradoxe des
anniversaires généralisé, la taille de la variable de haînage se doit d'être de l'ordre
de quelques entaines de bits. Une telle onstru tion itérative munie d'une fon tion
de ompression fondée sur le paradigme de randomisation puis ombinaison peut dès
lors, être ine a e pour des messages ourts. Par exemple, les paramètres r = 640
et t=8 onduisent à une fon tion de ompression né essitant un blo de message
de taille supérieure ou égale à 4480 bits. La onstru tion hybride permet d'obtenir
une fon tion e iente y ompris pour des message ourts. Nous montrons de plus,
dans la se tion suivante, que ette onstru tion n'aaiblit pas le s héma. En eet, les

135
Chapitre 9. Les fon tions XOR-Hash et FSB

hypothèses sur lesquelles réside la sé urité de notre onstru tion prennent en ompte
le prin ipe de la onstru tion hybride.

9-1.3 Analyse de sé urité


Nous onsidérons dans ette se tion la sé urité de notre onstru tion. Nous dis-
utons tout d'abord des notions de fon tions de ha hage idéales et de fon tion de
ha hage sûres. Nous introduisons ensuite, les 6 problèmes sur lesquels reposent la
sé urité de XOR-Hash.

Fon tion de ha hage sûre et fon tion de ha hage idéale. Une fon tion de
ha hage idéale h produisant des empreintes de taille n bits se doit de vérier les pro-
priétés lassiques exigées des fon tions de ha hage ryptographiques. Les attaques
par re her he d'anté édent et de se ond anté édent doivent né essiter O(2n ) évalua-
tions de ette fon tion, O(2
n/2 ) évaluations pour une attaque par ollision. Nous re-
marquons que dans le livre référen e : Handbook of Applied Cryptography [MOV96℄,
la notion de fon tion de ha hage ryptographique sûre requiert seulement que es
attaques soient hors de portée d'un adversaire (Computationally Infeasible ). Bien
évidemment une fon tion de ha hage idéale onstitue une fon tion de ha hage sûre.
Cependant une fon tion de ha hage qui ne vérie pas de façon idéale les propriétés
de résistan e au al ul d'anté édent et de se ond anté édent, peut tout de même
onstituer une fon tion de ha hage sûre.
Ainsi l'obje tif de sé urité que nous nous xons est de produire une fon tion de
ha hage sûre. Le oût des attaques lassiques doit être au delà de la puissan e de
al ul d'un adversaire.

Problèmes. Dans le but d'estimer la sé urité de notre onstru tion, nous dénis-
sons une liste des problèmes que doit résoudre un attaquant an de mener à bien
une attaque ontre la fon tion XOR-Hash.

Problème 1 (t-sum preimage pour f ) Étant donné s ∈ {0, 1}r , trouver x1 , . . . , xl


distin ts appartenant à {0, 1}r ave 0<l≤t tels que f (x1 ) ⊕ . . . ⊕ f (xl ) = s.
Problème 2 (t-sum ollision pour f ) Trouver x1 , . . . , xl distin ts appartenant à
{0, 1}r ave 0 < l ≤ 2t tels que f (x1 ) ⊕ . . . ⊕ f (xl ) = 0.
Problème 3 (t-sum 2nd preimage pour f ) Étant donnés x1 , . . . , xl appartenant
à {0, 1}r ave l ≤ t, trouver x′1 , . . . , x′l′ distin ts appartenant à {0, 1}r ave
0 < l′ ≤ t tels que f (x1 ) ⊕ . . . ⊕ f (xl ) = f (x′1 ) ⊕ . . . ⊕ f (x′l′ ).
Problème 4 (preimage pour g) Étant donné y ∈ {0, 1}n , trouver x ∈ {0, 1}r tel
que g(x) = y .
Problème 5 Trouver s ∈ {0, 1}r et x1 , . . . , xl distin ts appartenant à {0, 1}r ave
0<l≤t tels que f (x1 ) ⊕ . . . ⊕ f (xl ) 6= s et g(f (x1 ) ⊕ . . . ⊕ f (xl )) = g(s).
Problème 6 Étant donné s ∈ {0, 1}r , trouver
x1 , . . . , xl distin ts appartenant à
{0, 1}r ave 0 < l ≤ t tels que f (x1 )⊕ . . .⊕ f (xl ) 6= s et g(f (x1 )⊕ . . .⊕ f (xl )) =
g(s).
Les Problèmes 1, 2 et 3 se réduisent à diérentes instan es des problèmes de
dé odage de syndrome et de dé odage de syndrome double sous l'hypothèse que
la fon tion f est une fon tion pseudo-aléatoire. En eet, résoudre es problèmes

136
9-1. La fon tion XOR-Hash

revient à dé oder un syndrome pour une matri e aléatoire de dimensions (r, 2r ). Ces
problèmes ont été traités dans l'arti le de Augot et al. [AFS05℄.
Le Problème 4 pose omme exigen e pour la fon tion g de résister au al ul
d'anté édent.
Les Problèmes 5 et 6 impliquent les deux fon tions f et g. Dans une ertaine
mesure, ils expriment une ertaine forme d'indépendan e entre f et de g :
 La résistan e au Problème 5 induit une résistan e aux ollisions pour g re-
lativement à f. Il ne sut pas à un attaquant de pouvoir trouver une olli-
sion aléatoire (indépendamment de f) pour g, pour être apable de asser le
s héma.
 La résistan e au Problème 6 induit une résistan e au al ul de se ond anté-
édent pour g relativement à f. Il ne sut pas à un attaquant de pouvoir
trouver un se ond anté édent aléatoire (indépendamment de f ) pour g, pour
être apable de asser le s héma.

Arguments de sé urité. On remarque fa ilement que si les fon tions f et g


sont des fon tions pseudo-aléatoires, la onstru tion que nous proposons est sûre. La
dénition des problèmes que nous présentons à pour but de spé ier les propriétés
minimales que nous exigeons de es fon tions pour garantir la sé urité du s héma.
Nous ne sommes pas parvenus à onstruire formellement des rédu tions de sé urité.
Cependant, nous onje turons que la sé urité de la fon tion XOR-Hash se réduit aux
hypothèses suivantes :

1. Nous onje turons que les résistan es aux attaques par ollisions, par al ul
d'anté édent et par al ul de se ond anté édent de notre fon tion de ha hage
se réduisent à l'un des six problèmes énumérés pré édemment.

2. Nous présumons que la meilleure attaque ontre les Problèmes 1, 2 et 3 est


l'algorithme du paradoxe des anniversaires généralisé de Wagner. Cette attaque

possède une omplexité au moins égale à O 2r/(1+log2 t) pour les Problèmes 1

et 3, et une omplexité au moins égale à O 2r/(2+log2 t) pour le Problème 2.
3. Nous présumons que g est telle que les Problèmes 4 et 6 sont au moins aussi
di iles que les Problèmes 1 à 3.

Sous es hypothèses, notre onstru tion fournit au moins r/(2 + log2 t) bits de
sé urité ontre les attaques par ollision. Nous hoisissons don en onséquen e le
paramètre n (la taille de la sortie de g) égal à 2r/(2+log2 t). Nous présentons table 9-1
quelques hoix de paramètres de sé urité sûrs pour la résistan e aux ollisions.

9-1.4 Con lusion


Nous avons présenté une nouvelle onstru tion de fon tion de ha hage ryptogra-
phique. La sé urité de ette onstru tion est liée à la di ulté, pour une fon tion à
sens-unique donnée f : {0, 1}r → {0, 1}r , à trouver un ensemble de valeurs x1 , . . . , xl
ave l ≤ 2t telles que la somme f (x1 ) ⊕ · · · ⊕ f (xl ) soit égale à une ertaine valeur ;
pour un paramètre t xé. Ce type de problème est apparenté à des problèmes de
théorie des odes réputés durs.
Nous envisageons de ontinuer à re her her une rédu tion formelle de sé urité
pour la fon tion XOR-Hash.

137
Chapitre 9. Les fon tions XOR-Hash et FSB

sé urité r t n taux de ha hage

280 240 2 160 ≈2


280 320 4 160 ≈ 4/3

2128 384 2 256 ≈2


2128 512 4 256 ≈ 4/3
2128 640 8 256 ≈ 8/7

2k k × (2 + ℓ) 2ℓ 2k ≈ t/(t − 1)

Tab. 9-1  Paramètres de sé urité résistants aux attaques par ollision pour la fon -
tion XOR-Hash.

9-2 La fon tion FSB


La première publi ation de la fon tion de ha hage FSB a été présentée en 2005
[AFS05℄. Les auteurs de ette publi ation ont ontinué à ollaborer sur ette fon tion
an d'en améliorer les performan es et les preuves de sé urité. Ce travail ontinu à
onduit à la version élaborée en réponse à la ompétition organisée par le NIST
en 2008 [AFG08℄, dont l'intégralité de la do umentation est disponible à l'adresse :
http ://www-ro [Link]/se ret/CBCrypto/[Link] ?pg=fsb.
Bien que notre ontribution à e pro essus soit des plus modeste, nous reprenons
i i les ara téristiques prin ipales de la fon tion FSB.

9-2.1 Des ription


La fon tion FSB (pour Fast Syndrome Based hash fun tion ) est une fon tion de
ha hage itérative utilisant l'algorithme de Merkle-Damgård en onjon tion ave une
fon tion de ompression prin ipale possédant un état interne large et une fon tion
de ompression se ondaire appliquée lors d'une itération nale.

La fon tion de ompression prin ipale prend omme argument une haîne de
bits de taille s et produit en sortie une haîne de bits de taille r. Elle utilise des
te hniques de théorie des odes pour al uler le syndrome d'un mot binaire, dérivé
du blo de message et de la variable de haînage en entrée, pour produire la nouvelle
variable de haînage. En pratique, la sortie de ette fon tion est onstituée du XOR
de permutations ir ulaires d'un ensemble de ve teurs prédénis. L'ensemble de tous
les ve teurs possibles onstitue les olonnes d'une matri e H de taille r × n. Le
pro essus interne à ette fon tion onsiste don à générer un mot binaire parti ulier
(appelé mot régulier) de longueur n et de poids de Hamming w puis à le multiplier
par la matri e H . Du point de vue de la théorie des odes, e mot de poids w peut être
interprété omme un motif d'erreur, et la multipli ation par la matri e H omme
le al ul du syndrome de ette erreur. La fon tion de ompression se ondaire est
onstruite à partir de la fon tion Whirlpool [BR00℄. Lors de la dernière itération
de la fon tion de ompression prin ipale, une variable de haînage de taille r bits
est obtenue. Cette variable est alors à son tour ompressée par l'appli ation de la
fon tion de ha hage Whirlpool pour produire un ha hé de taille 512 bits. Ce ha hé

138
9-2. La fon tion FSB

Dénomination Taille de Paramètres


de la version l'empreinte s r

F SB160 160 bits 1120 640

F SB224 224 bits 1568 896

F SB256 256 bits 1792 1024

F SB384 384 bits 2392 1472

F SB512 512 bits 3224 1984

Tab. 9-2  Paramètres pour les 5 versions de la fon tion de ha hage FSB.

est alors tronqué pour produire une empreinte pour le message orrespondant à la
taille désirée.
La fon tion de ha hage ryptographique FSB soumise au NIST se dé line en 5
versions que nous résumons dans le tableau 9-2.

9-2.2 Sé urité
Les meilleures attaques ontre la fon tion de ompression prin ipale sont bien
identiées et il est possible d'évaluer pré isément leur omplexité. Le tableau 9-3
donne les omplexités des diérentes attaques qui ont été prises en ompte lors de la
séle tion des paramètres pour la fon tion de ha hage FSB. Le hoix de l'utilisation de
l'algorithme de Merkle-Damgård en tant qu'extenseur de domaine et de la fon tion
Whirpool en tant que fon tion de ompression nale ont été fait dans le but de
préserver autant que possible la sé urité de la fon tion de ompression prin ipale. Si
nous notons CF ette fon tion de ompression et HF la fon tion de ha hage dans
son ensemble, nous avons :

1. pour la résistan e aux ollisions, l'algorithme de Merkle-Damgård garantit que


b bits de sé urité pour CF induisent b bits de sé urité pour HF ,
2. pour la résistan e au al ul d'anté édent, b bits de sé urité pour CF induisent
aussi b bits de sé urité pour HF ,
3. pour la résistan e au al ul de se ond anté édent, du fait de l'attaque générique
de Kelsey et S hneier [KS05℄, b bits de sé urité pour CF induisent seulement
b−k bits de sé urité pour HF .
Finalement, pour un paramètre n ∈ {160, 224, 256, 384, 512} et un message de
longueur au plus 2k , les meilleures attaques onnues ontre la fon tionF SBn sont
des attaques génériques ave les omplexités suivantes :
 re her he de ollisions : 2
n/2 ,
n
 re her he d'anté édent : 2 ,
 re her he de se ond anté édent : 2n−k ,

9-2.3 Con lusion


La fon tion de ha hage ryptographique FSB s'est révélée plus lente que la plu-
part de ses on urrentes à la ompétition SHA-3. De plus, la taille né essaire à sa

139
Chapitre 9. Les fon tions XOR-Hash et FSB

Collision Preimage 2nd Preimage

GBA ISD GBA ISD GBA ISD


(n, 2w, r) (n, 2w, r) (n, w, r) (n, w, r) (n − w, w, r) (n − w, w, r)

F SB160 2119.2 2100.3 2163.6 2211.1 2163.6 2211.1


F SB224 2166.9 2135.3 2229.0 2292.0 2229.0 2292.0
F SB256 2190.7 2153.0 2261.6 2330.8 2261.6 2330.8
F SB384 2281.0 2215.5 2391.5 2476.7 2391.5 2476.7
F SB512 2378.7 2285.6 2527.4 2687.8 2527.4 2687.8

Tab. 9-3  Complexité des meilleures attaques onnues ontre la fon tion de om-
pression prin ipale de FSB. La notation GBA indique l'algorithme du paradoxe des
anniversaires généralisé, la notation ISD indique l'algorithme de dé odage par en-
semble d'information.

des ription est de l'ordre de 2Mb, e qui peut onstituer un désavantage pour les
implémentations en hardware. Elle onstitue ependant, la fon tion de ha hage la
plus rapide pour laquelle il existe des rédu tions de sé urité stri tes vers un problème
algorithmique di ile.

140
Quatrième partie

Con lusions et perspe tives

141
10

Con lusions et perspe tives

Con lusions
La majorité des années de ette thèse a été onsa rée à l'étude des fon tions de
ha hage SHA-0 et SHA-1, et plus parti ulièrement aux ryptanalyses de es fon tions.
L'analyse de es ryptanalyses a né essité un fort investissement en terme d'énergie et
de temps ; et investissement à toutefois porté ses fruits. D'un point de vue pratique,
nous avons ave Thomas Peyrin publié en 2008 une attaque ontre la fon tion SHA-
0, qui reste à e jour la meilleure attaque par ollision publiée pour ette fon tion.
Con ernant la fon tion SHA-1, un travail plus théorique, entré sur la ara téristique
linéaire, a aboutit à une lassi ation des ve teurs de perturbations ainsi qu'à la mise
à jour de omportements non répertoriés de ertains en hevêtrements de ollisions
lo ales.
La se onde partie du travail mené l'a été sous la forme de la on eption ave
Ni olas Sendrier de la fon tion XOR-Hash. La fon tion proposée onstitue un modèle
de on eption de type oquille vide (Empty Shell Constru tion ), dont nous avons relié
la sé urité à un ertain nombre de problèmes que nous avons dénis. Nous avons été
de plus invité à ollaborer au pro essus qui à onduit à la proposition de la fon tion
de ha hage FSB en réponse à la ompétition organisée par le NIST.
Durant la dernière année de ette thèse, dans le adre de l'emploi d'un poste
d'ATER, nous avons ave l'équipe IA de l'université Paris 8 produit un arti le relatif
à la olorisation d'images segmentées a epté pour la onféren e SITIS 2010. Cette
in ursion dans le domaine de la synthèse d'image (bien éloigné de elui des fon tions
de ha hage ryptographiques) nous a permit de onstater que les ompéten es de re-
her he a quises durant ette thèse pouvaient être mises au servi e d'autres domaines
de l'informatique.

Perspe tives
Comme nous avons pu le détailler dans ette thèse, une attaque par ollision
ontre la fon tions SHA-1 né essite la mise en oeuvre de modèles, de te hniques et
d'outils variés. Le modèle de ollision lo ale introduit par Chabaud et Joux et la
onstru tion de ve teurs de perturbations onstitue sans doute la meilleure appro he
dont nous disposons. La génération de ara téristiques non-linéaires, bien que repré-
sentant une di ulté ertaine relativement à son implémentation en tant qu'outil

143
Chapitre 10. Con lusions et perspe tives

automatisé, est aujourd'hui une te hnique relativement bien maîtrisée. La te hnique


des blo s multiples est bien omprises, et les te hniques d'a élération de re her he,
modi ations de message et bits neutres, ont été formalisées et réunies dans le modèle
des attaques boomerang.
Cependant, nous ne possédons toujours pas de ollision pour l'intégralité des 80
pas de la fon tion SHA-1. En eet, la omplexité d'une telle attaque dépend nale-
ment de façon très dire te du ve teur de perturbations utilisé. Les meilleures attaques
pratiques dont nous disposons sont des attaques permettant d'obtenir des ollisions
pour des versions réduites à 70 et 73 pas, où les ve teurs de perturbations employés
sont optimisés spé iquement pour e nombre de pas. Par exemple, le ve teur utilisé
dans [DCM07℄ qui onduit à une ollision sur 70 pas pour une omplexité de 244
onduirait à une omplexité de 2
88 (supérieure au oût de l'attaque générique) pour
ouvrir les 10 pas restants. L'étude et la re her he de ve teurs de perturbations est
don d'un intérêt majeur pour l'obtention d'une ollision pour la fon tion SHA-1.
De plus, la majorité des analyses de omportement des ollisions lo ales qui sont
présentes dans la littérature reposent sur des hypothèses d'indépendan e. Cependant,
nombre de as pathologiques ont été mis à jour au long des diérentes ryptanalyses
menées. Parmi es as, ertains omme la ompression de bit ont permis d'améliorer
les performan es, d'autres omme les hemins diérentiels impossibles ont né essités
un traitement parti ulier. L'étude statistique du omportement des ollisions lo ales
met à jour l'existen e de nouveaux as pathologiques non répertoriés et onduit à
l'observation de dé alages entre les probabilités théoriques de bon omportement et
les probabilités mesurées. Ces faits onstituent une remise en ause de l'hypothèse
d'indépendan e dans un ertain nombre de as de gures. Une étude approfondie
de es phénomènes onduirait ertainement à améliorer notre ompréhension des
mé anismes de propagation des ollisions lo ales au sein des états des registres.
Les travaux que nous avons menés relativement à la génération de ve teurs de
perturbations ont ontribué à répondre à un ertain nombre de questions et de re-
marques présentes dans la littérature, sous la forme d'une lassi ation de es ve -
teurs. Mais l'analyse des en hevêtrement de ollisions lo ales soulève de nouvelles
questions et remet en ause des positions établies :
 Les diéren es observées sur les probabilités de bon omportement des olli-
sions lo ales ouvrent de nouvelles positions d'insertion : la position de bit 31
se révélant plus avantageuse dans ertaines ongurations.
 Le hoix d'instan iation uniforme des signes des ollisions lo ales pour un ve -
teur de perturbations demande à être justié (même si en pratique il fon tionne
orre tement pour la position de bit 2 ave les ve teurs utilisés dans la littéra-
ture) puisque il apparaît que pour ertains types d'en hevêtrement il onduit
à des hemins diérentiels impossibles.
Les pistes de re her he sur lesquelles nous souhaitons ontinuer à travailler onsistent
don à poursuivre l'analyse du omportement des en hevêtrements de ollisions lo-
ales an de onstruire un modèle à même d'expliquer es omportements et/ou d'en
tirer partie pour la ryptanalyse.
Nous avons aussi, en ollaboration ave Sunandan Chakraborty, travaillé sur un
outil formel pour la génération de ara téristiques non-linéaires. Nous envisageons
de ontinuer la mise au point de et outil an de mettre en oeuvre une re her he
ee tive de ollision pour les 80 pas de la fon tion SHA-1.

144
Bibliographie
[ABD09℄ E. Andreeva, C. Bouillaguet, O. Dunkelman, and J. Kelsey, Herding, se ond
preimage and trojan message atta ks beyond merkle-damgard. In M. J. Ja obson
Sele ted Areas in Cryptography - SAC
Jr., V. Rijmen and R. Safavi-Naini editors,
2009, Le ture Notes in Computer S ien e 5867, pages 393-414. Springer Verlag,
2009.

[ABF08℄ E. Andreeva, C. Bouillaguet, P.-A. Fouque, J. J. Ho h, J. Kelsey, A. Shamir


and S. Zimmer. Se ond preimage atta ks on dithered hash fun tions. In N. P.
Smart editor, Advan es in Cryptology - EUROCRYPT 2008, Le ture Notes in
Computer S ien e 4965, pages 270-288. Springer Verlag, 2008.
[ANP07℄ E. Andreeva, G. Neven, B. Preneel and T. Shrimpton, Seven-Property-
Preserving Iterated Hashing : ROX. In K. Kurosawa editor, Advan es in Cryp-
tology - ASIACRYPT 2007, Le ture Notes in Computer S ien e 4833, pages
130-146. Springer Verlag, 2007.

[AFS05℄ D. Augot, M. Finiasz and N. Sendrier, A Family of Fast Syndrome Based


Cryptographi Progress
Hash Fun tions. In E. Dawson and S. Vaudenay editors,
in Cryptology - MYCRYPT 2005, Le ture Notes in Computer S ien e 3715,
pages 64-83. Springer Verlag, 2005.

[AFG08℄ D. Augot, M. Finiasz, P. Gaborit, S. Manuel and N. Sen-


drier, Fast Syndrome-Based hash fun tion. Available at http ://www-
ro [Link]/se ret/CBCrypto/[Link] ?pg=fsb. 2008.

[ADL08℄ Y. Arbitman, G. Dogon, V. Lyubashevsky, D. Mi ian io, C. Peikert


and A. Rosen, SWIFFTX : A Proposal for the SHA-3 Standard Available at
http ://[Link] [Link]/ alon/PAPERS/latti es/swiink]. 2008.

[BR00℄ P. Barreto and V. Rijmen, The Whirlpool Hashing Fun tion. Available
at http ://[Link]. [Link]/informati a/paulobarreto/[Link].
First version in 2000 revised in May 2003.

[BGR95℄ M. Bellare, R. Guerin and P. Rogaway, XOR MACs : New Methods for Mes-
sage Authenti ation Using Finite Pseudorandom Fun tions. In D. Coppersmith
editor,Advan es in Cryptology - CRYPTO 1995, Le ture Notes in Computer
S ien e 963, pages 15-20. Springer Verlag, 1995.
[BM97℄ M. Bellare and D. Mi ian io, A New Paradigm for Collision-free Hashing :
Advan es in Cryptology
In rementality at Redu ed Cost. In W. Fumy editor,
- EUROCRYPT 1997, Le ture Notes in Computer S ien e 963, pages 15-20.
Springer Verlag, 1997.

[BR06℄ M. Bellare and T. Ristenpart, Multi-Property-Preserving Hash Domain Ex-


tension and the EMD Transform. In X. Lai and K. Chen editors, Advan es in

145
Bibliographie

Cryptology - ASIACRYPT 2006, Le ture Notes in Computer S ien e 4284, pages


229-314. Springer Verlag, 2006.

[BR93℄ M. Bellare and P. Rogaway, Random Ora les are Pra ti al : A paradigm for
Designing E ient Proto ols. ACM Conferen e on Computer and Communi a-
tions Se urity 1993, pages 62-73. ACM, 1993.

[Ber07a℄ D. J. Bernstein, The Salsa20 Family of Stream Ciphers. Available at


http :// [Link]/[Link]#salsafamily. 2007.

[Ber07b℄ D. J. Bernstein, What Output Size Resists Collisions in a XOR of Inde-


pendent Expansions ? In pro eedings of ECRYPT Hash Workshop 2007, pages
66-75. 2007.

[Ber92℄ T. A. Berson, Dierential Cryptanalysis Mod 232 with Appli ations to MD5.
In R. A. Rueppel editor, Advan es in Cryptology - EUROCRYPT 1992, Le ture
Notes in Computer S ien e 658, pages 71-80. Springer Verlag, 1993.
[BDP06℄ G. Bertoni, J. Daemen, M. Peeters and G. Van Ass he, Cryptographi
Sponges. Available at http ://[Link]/. 2006.

[BDP08a℄ G. Bertoni, J. Daemen, M. Peeters and G. Van Ass he, On the Indieren-
tiability of the Sponge Constru tion. In N. P. Smart editor, Advan es in Cryp-
tology - EUROCRYPT 2008, Le ture Notes in Computer S ien e 4965, pages
181-197. Springer Verlag, 2008.

[BDP08b℄ G. Bertoni, J. Daemen, M. Peeters and G. Van Ass he, KECCAK. Avai-
lable at http ://ke [Link]/. 2008.

[BC04℄ E. Biham and R. Chen, Near-Collisions of SHA-0. In M. K. Franklin editor,


Advan es in Cryptology - CRYPTO 2004, Le ture Notes in Computer S ien e
3152, pages 290-305. Springer Verlag, 2004.
[BCJ05℄ E. Biham, R. Chen, A. Joux, P. Carribault, C. Lemuet and W. Jalby, Col-
Advan es in Cryp-
lisions of SHA-0 and Redu ed SHA-1. In R. Cramer editor,
tology - EUROCRYPT 2005, Le ture Notes in Computer S ien e 3494, pages
36-57. Springer Verlag, 2005.

[BD06℄ E. Biham and O. Dunkelman, A Framework for Iterative Hash Fun tions :
HAIFA. In pro eedings of Se ond NIST Cryptographi Hash Workshop. Available
at http :// sr .[Link]/groups/ST/hash/se ond_workshop.html. 2006.
[BS90℄ E. Biham, A. Shamir, Dierential Cryptanalysis of DES-like Cryptosystems.
In A. Menezes and S. A. Vansto editors, Advan es in Cryptology - CRYPTO
1990, Le ture Notes in Computer S ien e 537, pages 2-21. Springer Verlag, 1991.
[BS91a℄ E. Biham, A. Shamir, Dierential Cryptanalysis of Feal and N-Hash. In D.
W. Davies editor,Advan es in Cryptology - EUROCRYPT 1991, Le ture Notes
in Computer S ien e 547, pages 1-16. Springer Verlag, 1991.
[BS91b℄ E. Biham, A. Shamir, Dierential Cryptanalysis of Snefru, Khafre, REDOC-
II, LOKI and Lu ifer. In J. Feigenbaum editor, Advan es in Cryptology -
CRYPTO 1991, Le ture Notes in Computer S ien e 576, pages 156-171. Sprin-
ger Verlag, 1992.

[BRS02℄ J. Bla k, P. Rogaway and T. Shrimpton, Bla k-Box Analysis of the Blo k-
Cipher-Based Hash Fun tion Constru tions from PGV. In M. Yung editor, Ad-
van es in Cryptology - CRYPTO 2002, Le ture Notes in Computer S ien e 2442,
pages 320-335. Springer Verlag, 2002.

146
[BCC08℄ E. Bresson, A. Canteaut, B. Chevallier-Mames, C. Clavier, T. Fuhr,
A. Gouget, T. I art, J. Misarsky, M. Naya-Plasen ia, P. Paillier, T. Por-
nin, J. Reinhard, C. Thuillet and M. Videau, SHABAL. Available at
http ://[Link]. om/. 2008.

[BAC08℄ D. R. L. Brown, A. Antipa, M. Campagna and R.


Struik, ECOH : the Ellipti Curve Only Hash Available at
http ://[Link]/uploads/a/a5/E [Link]. 2008.

[CGH98℄ R. Canetti, O. Goldrei h and S. Halevi, The random ora le methodology,


revisited. STOC'1998, pages 209-218. ACM, 1998.

[CC98℄ A. Canteaut and F. Chabaud, New Algorithm for Finding Minimum-Weight


Words in a Linear Code : Appli ation to M Elie e's Cryptosystem and to
Narrow-Sense BCH Codes of Length 511. IEEE Transa tions on Information
Theory, 44(1), pages 376-378. 1998.

[CJ98℄ F. Chabaud and A. Joux, Dierential Collisions in SHA-0. In H. Kraw zyk


editor,Advan es in Cryptology - CRYPTO 1998, Le ture Notes in Computer
S ien e 1462, pages 56-71. Springer Verlag, 1998.
[CJ98℄ S. Contini, A. K. Lenstra and R. Steinfeld, VSH, an E ient and Provable
Advan es in Cryp-
Collision-Resistant Hash Fun tion. In S. Vaudenay editor,
tology - EUROCRYPT 2006, Le ture Notes in Computer S ien e 4004, pages
165-182. Springer Verlag, 2006.

[CPM90℄ D. Coppersmith, S. Pilpel, C. H. Meyer, S. M. Matyas, M. M. Hyden,


J. Oseas, B. Bra htl and M S hilling, Data Authenti ation Using Modi ation
Dete tion Codes Based on a Publi One Way En ryption Fun tion. U.S. Patent
No. 4,908,861, Filed August 28, 1987. 1990

[CDM05℄ J. S. Coron, Y. Dodis, C. Malinaud and P. Puniya, Merkle-Damgard Re-


Advan es in
visited : How to Constru t a Hash Fun tion. In V. Shoup editor,
Cryptology - CRYPTO 2005, Le ture Notes in Computer S ien e 3621, pages
430-448. Springer-Verlag, 2005.

[Dam89℄ I. Damgard, A Design Prin iple for Hash Fun tions. In G. Brassard editor,
Advan es in Cryptology - CRYPTO 1989, Le ture Notes in Computer S ien e
435, pages 416-427. Springer Verlag, 1990.
[Dea99℄ R. D. Dean, Formal Aspe ts of Mobile Code Se urity. PhD thesis, Prin-
eton University. Available at http ://www. [Link] [Link]/sip/pub/ddean-
dissertation.php3. 1999.

[DBB91℄ B. den Boer and A. Bosselaers, An Atta k on the Last Two Rounds of MD4.
In J. Feigenbaum editor, Advan es in Cryptology - CRYPTO 1991, Le ture Notes
in Computer S ien e 765, pages 293-304. Springer Verlag, 1992.
[DBB93℄ B. den Boer and A. Bosselaers, Collisions for the Compression Fun tion
Advan es in Cryptology - EUROCRYPT 1993,
of MD5. In T. Helleseth editor,
Le ture Notes in Computer S ien e 765, pages 293-304. Springer Verlag, 1994.
[DCM07℄ C. De Cannière, F. Mendel and C. Re hberger, Collisions for 70-step SHA-
1 : On the Full Cost of Collision Sear h. In C. Adams, A. Miri and M. J. Wiener
editors,Sele ted Areas in Cryptography - SAC 2007, Le ture Notes in Computer
S ien e 4876, pages 56-73. Springer-Verlag, 2007.

147
Bibliographie

[DCR06℄ C. De Canière and C. Re hberger, Finding SHA-1 Chara teristi s : General


Results and Appli ations. In X. Lai and K. Chen editors, Advan es in Crypto-
logy - ASIACRYPT 2006, Le ture Notes in Computer S ien e 4284, pages 1-20.
Springer Verlag, 2006.

[DCR08℄ C. De Canière and C. Re hberger, Preimages for Redu ed SHA-0 and SHA-
Advan es in Cryptology - CRYPT0 2008, Le ture Notes
1. In D. Wagner editor,
in Computer S ien e 5157, pages 179-202. Springer Verlag, 2008.
[DH76℄ W. Die and M. E. Hellman. New Dire tions in Cryptography. IEEE Tran-
sa tions on Information Theory, IT-22(6), pages 644-654. 1976.
[Dob96a℄ H. Dobbertin, Cryptanalysis of MD4. In D. Gollmann editor, Fast Software
En ryption - FSE 1996, Le ture Notes in Computer S ien e 1039, pages 53-69.
Springer-Verlag, 1996.

[Dob96b℄ H. Dobbertin, Cryptanalysis of MD5 ompress. In Rump Ses-


sion of Advan es in Cryptology - EUROCRYPT 1996. Available at
ftp ://[Link] urity. om/pub/ ryptobytes/ [Link]. 1996.
[FIPS-AES℄ National Institute of Standards and Te hnology, FIPS 187 : Advan ed
En ryption Standard. Available at http :// sr .[Link]. 2001.

[FIPS-DES℄ National Institute of Standards and Te hnology, FIPS 46-3 : Data En-
ryption Standard. Available at http :// sr .[Link]. 1999.

[FIPS-SHA0℄ National Institute of Standards and Te hnology, FIPS 180 : Se ure


Hash Standard. Available at http :// sr .[Link]. 1993.

[FIPS-SHA1℄ National Institute of Standards and Te hnology, FIPS 180-1 : Se ure


Hash Standard. Available at http :// sr .[Link]. 1995.

[FIPS-SHA2a℄ National Institute of Standards and Te hnology, FIPS 180-2 : Se ure


Hash Standard. Available at http :// sr .[Link]. 2002.

[FIPS-SHA2b℄ National Institute of Standards and Te hnology, FIPS 180-2 : Se ure


Hash Standard - Change noti e 1. Available at http :// sr .[Link]. 2004.

[FIPS-SHA3℄ National Institute of Standards and Te hnology, FIPS 180-3 : Se ure


Hash Standard. Available at http :// sr .[Link].
[Gre10℄ E. A. Gre hnikov, Collisions for 72-step and 73-step SHA-1 : Improvements
in the Method of Chara teristi s Cryptology ePrint Ar hive, Report 2010/413.
Available at http ://[Link] [Link]/2010/413. 2010.
[HN04℄ H. Handsu h and D. Na a he, SHACAL. NESSIE book, Final Re-
port of European proje t IST-1999-12324 Available at https :// o-
si .[Link]/nessie/[Link]. 2004.

[Jou04℄ A. Joux, Multi- ollisions in Iterated Hash Fun tions. Appli ation to Cas a-
ded Constru tions. In M. Franklin editor, Advan es in Cryptology - CRYPTO
2004, Le ture Notes in Computer S ien e 3152, pages 306-316. Springer-Verlag,
2004.

[JP07℄ A. Joux and T. Peyrin, Hash Fun tions and the (Amplied) Boomerang At-
Advan es in Cryptology - CRYPTO 2007, Le ture
ta k. In A. Menezes editor,
Notes in Computer S ien e 4622, pages 244-263. Springer-Verlag, 2007.
[JP05℄ C.S. Jutla and A. C. Patthak, A Mat hing Lower Bound on the Minimum
Weight of SHA-1 Expansion Code. Cryptology ePrint Ar hive, Report 2005/266.
Available at http ://[Link] [Link]/2005/266. 2005.

148
[KKS00℄ J. Kelsey, T. Khono and B. S hneier, Amplied Boomerang Atta ks Against
Redu ed-Round MARS and Serpent. In B. S hneier editor, Fast Software En-
ryption - FSE 2000, Le ture Notes in Computer S ien e 1978, pages 75-93.
Springer Verlag, 2001.

[KS05℄ J. Kelsey and B. S hneier, Se ond Preimages on n-Bit Hash Fun tions for
2n Work. In R. Cramer editor, Advan es in Cryptology - EURO-
Mu h Less than
CRYPT 2005, Le ture Notes in Computer S ien e 3494, pages 474-490. Springer
Verlag, 2005.

[KK06℄ J. Kelsey and T. Khono, Herding Hash Fun tions and the Nostradamus
Atta k. In S. Vaudenay editor,Advan es in Cryptology - EUROCRYPT 2006,
Le ture Notes in Computer S ien e 4004, pages 183-200. Springer Verlag, 2006.
[KL94℄ L. R. Knudsen and X. Lai, New Atta ks on All Double Blo k Length Hash
Ad-
Fun tions of Hash Rate 1, In luding the Parallel-DM. In A. De Santis editor,
van es in Cryptology - EUROCRYPT 1994, Le ture Notes in Computer S ien e
950, pages 410-418. Springer Verlag, 1994.
[KP96℄ L. R. Knudsen and B. Preneel, Hash Fun tions Based on Blo k Ciphers
and Quaternary Codes. In K. Kim and T. Matsumoto editors, Advan es in
Cryptology - ASIACRYPT 1996, Le ture Notes in Computer S ien e 1163, pages
77-90. Springer Verlag, 1996.

[KP97℄ L. R. Knudsen and B. Preneel, Fast and Se ure Hashing Based on Codes.
Advan es in Cryptology - CRYPTO 1997, Le ture
In B. S. Kalinski Jr. editor,
Notes in Computer S ien e 1294, pages 485-498. Springer Verlag, 1997.
[KP02℄ L. R. Knudsen and B. Preneel, Constru tion of Se ure and Fast Hash Fun -
tions Using Nonbinary Error-Corre ting Codes. IEEE Transa tions on Informa-
tion Theory, 48(9), pages 2524-2539. 2002.

[LM92℄ X. Lai and J. L. Massey, Hash Fun tions Based on Blo k Ciphers. In R. A.
Advan es in Cryptology - EUROCRYPT 1992, Le ture Notes in
Rueppel editor,
Computer S ien e 658, pages 55-70. Springer Verlag, 1992.
[Leo88℄ J.S. Leon, A Probabilisti Algorithm for Computing the Minimum Weight
of Large Error-Corre ting Codes. IEEE Transa tions on Information Theory,
34(5), pages 1354-1359. 1988.

[Lu 05℄ S. Lu ks, A Failure-Friendly Design Prin iple for Hash Fun tions. In B.
K. Roy editor,Advan es in Cryptology - ASIACRYPT 2005, Le ture Notes in
Computer S ien e 3788, pages 474-494. Springer Verlag, 2005.
[Man06℄ S. Manuel, Cryptanalyses diérentielles de SHA-0. Mémoire pour
l'obtention du Mastère Re her he, Mathématiques Appli ations au Co-
dage et à la Cryptologie. Université Paris8. Available at http ://www-
ro [Link]/se ret/[Link]. 2008.

[Man08℄ S. Manuel, Classi ation and Generation of Disturban e Ve tors for Colli-
sion Atta ks against SHA-1. Cryptology ePrint Ar hive, Report 2008/469. Avai-
lable at http ://[Link] [Link]/2008/469. 2008.
[Man09℄ S. Manuel, Classi ation and Generation of Disturban e Ve tors for Colli-
sion Atta ks against SHA-1. In A. Kolosha, E. Rosnes and M. Parker editors,
International Workshop on Coding and Cryptography - WCC 2009, pages 224-
235. 2009.

149
Bibliographie

[Man10℄ S. Manuel, Classi ation and Generation of Disturban e Ve tors for Col-
lision Atta ks against SHA-1. To appear inDesign, Codes and Cryptography -
DCC 2010. 2010.

[MP08℄ S. Manuel and T. Peyrin, Collisions on SHA-0 in one hour. In K. Nyberg,


editor, Fast Software En ryption - FSE 2008, Le ture Notes in Computer S ien e
5086, pages 16-35. Springer-Verlag, 2008.

[MS07℄ S. Manuel and N. Sendrier, XOR-Hash : A Hash Fun tion Based on XOR.
Western European Workshop on Resear h in Cryptology - WEWoRC 2007. 2007.
[MP05℄ K. Matusiewi z and J. Pieprzyk, Finding Good Dierential Patterns for
Atta ks on SHA-1. In O. Ytrehus editor, International Workshop on Coding
and Cryptography - WCC 2005, Le ture Notes in Computer S ien e 3969, pages
164-177. Springer-Verlag, 2005.

[MRH04℄ U. Maurer, R. Renner, and C. Holenstein, Indierentiability, Impossibility


Results on Redu tions, and Appli ations to the Random Ora le Methodology. In
M. Naor editor, Theory of Cryptography - TCC 2004, Le ture Notes in Computer
S ien e 2951, pages 21-39. Springer Verlag, 2004.

[MPR06℄ F. Mendel, N. Pramstaller, C. Re hberger and V. Rijmen, The Impa t Of


Carries on the Complexity of Collision Atta ks on SHA-1. In M. J. B. Robshaw
editor, Fast Software En ryption - FSE 2006, Le ture Notes in Computer S ien e
4047, pages 278-292. Springer Verlag, 2006.

[MRR07℄ F. Mendel, C. Re hberger and V. Rijmen, Update on SHA-1. In


Rump Session of Advan es in Cryptology - CRYPTO 2007. Available at
http ://rump2007. [Link]/09-re [Link]. 2007.

[MOV96℄ A. J. Menezes, P. C. Van Oors hot and S.A. Vanstone, Handbook of Ap-
plied Cryptography. CRC Press, 1996.

[Mer79a℄ R. C. Merkle, Se re y, Authenti ation, and Publi Key Systems. PhD the-
sis, Stanford University. 1979.

[Mer79b℄ R.C. Merkle, Method of providing digital signatures. U.S. Patent No.
4,309,569. 1980.

[Mer89℄ R.C. Merkle, One Way Hash Fun tion and DES. In G. Brassard editor,
Advan es in Cryptology - CRYPTO 1989, Le ture Notes in Computer S ien e
435, pages 428-446. Springer Verlag, 1989.
[Mer90℄ R.C. Merkle, A Fast Software One-Way Hash Fun tion. Journal of Crypto-
logy, 3(1), pages 43-58. Springer Verlag, 1990.

[MS88℄ C. H. Meyer and M. S hilling, Se ure program load with manipulation de-
te tion ode. Se uri om 88, pages 111-130. SEDEP, 1988.

[MOI90℄ S. Miyagu hi, K. Ohta, and M. Iwata, 128-bit hash fun tion (N-hash). NTT
Review, 2(6), pages 128-132. Springer Verlag, 1990.

[NSS06℄ Y. Naito, Y. Sasaki, T. Shimoyama, J. Yajima, N. Kunihiro and K. Otha,


Improved Collision Sear h for SHA-0. In X. Lai and K. Chen editors, Advan es
in Cryptology - ASIACRYPT 2006, Le ture Notes in Computer S ien e 4284,
pages 21-36. Springer-Verlag, 2006.

[Nil02℄ J. B. Nielsen, Separating Random Ora le Proofs from Complexity Theoreti


Proofs : The Non ommitting En ryption Case. In M. Yung editor, Advan es in

150
Cryptology - CRYPT0 2002, Le ture Notes in Computer S ien e 2442, pages
111-126. Springer-Verlag, 2002.

[Pey08℄ T. Peyrin, Analyse de fon tions de ha hage ryptographiques. PhD


thesis, Université de Versailles Saint-Quentin-en-Yvelines. Available at
http ://[Link]. om/site/thomaspeyrin/resear h. 2008.

[PGM06℄ T. Peyrin, H. Gilbert, F. Muller and M. J. B. Robshaw, Combining Com-


pression Fun tions and Blo k Cipher-Based Hash Fun tions. In X. Lai and K.
Chen editors, Advan es in Cryptology - ASIACRYPT 2006, Le ture Notes in
Computer S ien e 4284, pages 315-331. Springer Verlag, 2006.
[PRR05℄ N. Pramstaller, C. Re hberger and V. Rijmen. Exploiting Coding Theory
for Collision Atta ks on SHA-1. In N.P. Smart editor, Cryptography and Coding
2005, Le ture Notes in Computer S ien e 3796, pages 78-95. Springer-Verlag,
2005.

[Pre93℄ B. Preneel, Analysis and Design of Cryptographi Hash Fun -


tions, PhD thesis, Katholieke Universiteit Leuven. Available at
https ://www. osi .[Link]/publi ations/ 1993.

[PB95℄ B. Preneel and A. Bosselaers, RIPE, Integrity Primitives for Se ure Infor-
Final Report of RACE Integrity Primitives Evaluation (RIPE-
mation Systems.
RACE 1040), Le ture Notes in Computer S ien e 107. Springer Verlag, 1995.
[PGV93℄ B. Preneel, R. Govaerts and J. Vandewalle, Hash Fun tions Based on Blo k
Approa h. In D. R. Stinson editor, Advan es in Crypto-
Ciphers : A Syntheti
logy - CRYPTO 1993, Le ture Notes in Computer S ien e 773, pages 368-378.
Springer Verlag, 1993.

[PVO96℄ B. Preneel and P. C. van Oors hot, On the Se urity of Two MAC Algo-
Advan es in Cryptology - EUROCRYPTO 1996,
rithms. In U. M. Maurer editor,
Le ture Notes in Computer S ien e 1070, pages 19-32. Springer Verlag, 1996.
[Rab78℄ M. O. Rabin, Digitalized signatures. In R. Lipton and R. DeMillo editors,
Foundations of Se ure Computations, pages 155-168. A ademi Press, 1978.

[RSY10℄ M. R. Reyhanitabar, W. Susilo and Yi Mu, Enhan ed Se urity Notions


for Dedi ated-Key Hash Fun tions : Denitions and Relationships. In S. Hong
and T. Iwata editors, Fast Software En ryption - FSE 2010, Le ture Notes in
Computer S ien e 6147, pages 192-211. Springer Verlag, 2010.
[RO05℄ V. Rijmen and E. Oswald, Update on SHA-1. In A. J. Menezes editor,The
Cryptographers'Tra k at the RSA onferen e - CT-RSA 2005, Le ture Notes in
Computer S ien e 3376, pages 58-71. Springer-Verlag, 2005.
[RFC-MD2℄ J. Linn, RFC 1115 : Priva y Enhan ement for Internet Ele tro-
ni Mail : Part III  Algorithms, Modes, and Identiers Available at
http ://[Link]/rf /rf [Link]. 1989.

[RFC-MD4℄ R. L. Rivest, RFC 1186 : The MD4 Message-Digest Algorithm. Available


at http ://[Link]/rf /rf [Link]. 1990.

[RFC-MD5℄ R. L. Rivest, RFC 1321 : The MD5 Message-Digest Algorithm. Available


at http ://[Link]/rf /rf [Link]. 1992.

[RAB08℄ R. Rivest, B. Agre, D. V. Bailey, C. Crut held, Y. Dodis, K. E. Fleming, A.


Khan, J. Krishnamurthy, Y. Lin, L. Reyzin, E. Shen, J. Sukha, D. Sutherland, E.

151
Bibliographie

Tromer and Y. L. Yin, MD6. Available at http ://groups. [Link]/ is/md6/.


2008.

[Rog95℄ P. Rogaway, Bu ket Hashing and its Appli ation to Fast Message Authen-
ti ation. In D. Coppersmith editor,Advan es in Cryptology - CRYPTO 1995,
Le ture Notes in Computer S ien e 963, pages 29-42. Springer Verlag, 1995.
Progress
[Rog06℄ P. Rogaway, Formalizing Human Ignoran e. In P. Q. Nguyen editor,
in Cryptology - VIETCRYPT 06, Le ture Notes in Computer S ien e 4341,
pages 211-228. Springer Verlag, 2006.

[RS04℄ P. Rogaway and T. Shrimpton, Cryptographi Hash-Fun tion Basi s : Deni-


tions, Impli ations and Separations for Preimage Resistan e, Se ond-Preimage
Resistan e and Collision Resistan e. In B. K. Roy and W. Meier editors, Fast
Software En ryption - FSE 2004, Le ture Notes in Computer S ien e 3017, pages
371-388. Springer Verlag, 2004.

[SKP07℄ M. Sugita, M. Kawazoe, L. Perret and H. Imai, Algebrai Cryptanalysis of


58-Round SHA-1. In A. Biryukov editor, Fast Software En ryption - FSE 2007,
Le ture Notes in Computer S ien e 4593, pages 349-365. Springer-Verlag, 2007.

[Wag99℄ D. Wagner, The Boomerang Atta k. In L. R . Knudsen editor, Fast Software


En ryption - FSE 1999, Le ture Notes in Computer S ien e 1636, pages 156-170.
Springer-Verlag, 1999.

[Wag02℄ D. Wagner, A Generalized Birthday Problem. In M. Yung editor, Advan es


in Cryptology - CRYPTO 2002, Le ture Notes in Computer S ien e 2442, pages
288-303. Springer Verlag, 2002.

[Wan97℄ X. Wang, The Collision Atta k on SHA-0. Previously available at


http ://[Link] .edu. n. 1997.

[Wan98℄ X. Wang, The Improved Collision Atta k on SHA-0. Previously available


at http ://[Link] .edu. n. 1998.

[WFL04℄ X. Wang, D. Feng, X. Lai and H. Yu, Collisions for Hash Fun tions MD4,
MD5, HAVA-128 and RIPEMD. Cryptology ePrint Ar hive, Report 2004/199.
Available at http ://[Link] [Link]/2004/[Link]. 2004.
[WLF05℄ X. Wang, X. Lai, D. Feng, H. Chen and X. Yu, Crytanalysis of the Hash
Fun tions MD4 and RIPEMD. In R. Cramer editor,Advan es in Cryptology
- EUROCRYPT 2005, Le ture Notes in Computer S ien e 3494, pages 1-18.
Springer Verlag, 2005.

[WY05℄ X. Wang and H. Yu, How to break MD5 and other hash fun tions. In R.
Cramer editor, Advan es in Cryptology - EUROCRYPT 2005, Le ture Notes in
Computer S ien e 3494, pages 19-35. Springer Verlag, 2005.
[WYY05a℄ X. Wang, A. C. Yao and F. Yao, Cryptanalysis on SHA-1. In pro eedings
of NIST Cryptographi Hash Workshop. Available at http :// sr .[Link]. 2005.

[WYY05b℄ X. Wang, X. L. Yin and H. Yu, Finding Collisions in the Full SHA-1.
Advan es in Cryptology - CRYPTO 2005, Le ture Notes in
In V. Shoup editor,
Computer S ien e 3621, pages 17-36. Springer Verlag, 2005.
[WYY05 ℄ X. Wang, X. L. Yin and H. Yu, New Collision Sear h for SHA-1. In Rump
Session of Advan es in Cryptology - CRYPTO 2005. 2005.

152
[WYY05d℄ X. Wang, H. Yu and X. L. Yin, E ient Collision Sear h Atta ks on
SHA-0. In V. Shoup editor, Advan es in Cryptology - CRYPTO 2005, Le ture
Notes in Computer S ien e 3621, pages 1-16. Springer Verlag, 2005.
[YSN07℄ J. Yajima, Y. Sasaki, Y. Naito, T. Iwasaki, T. Shimoyama, N. Kunihiro,
and K. Ohta, A new strategy for nding a dierential path of sha-1. Information
Se urity and Priva y - ISP 2007, Le ture Notes in Computer S ien e 4586 pages
45-58. Springer Verlag, 2007.

[YIN08℄ J. Yajima and T. Iwasaki and Y. Naito and Y. Sasaki and T. Shimoyama
and N. Kunihiro and K. Ohta, A Stri t Evaluation Method on the Number
of Conditions for the SHA-1 Collision Sear h. In M. Abe and V. Gligor edi-
tors,ACM Symposium on Information, Computer and Communi ation Se urity
- ASIACCS 2008, pages 10-20. ACM, 2008.
[YIN09℄ J. Yajima and T. Iwasaki and Y. Naito and Y. Sasaki and T. Shimoyama
and T. Peyrin and N. Kunihiro and K. Ohta, A Stri t Evaluation Method on
the Number of Conditions for the SHA-1 Collision Sear h. IEICE Trans. Fun-
damentals E92-A(1), pages 87-95. IEICE, 2009.

153
Bibliographie

154
Table des gures

1-1 Prin ipe du ha hage. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1-2 Cette gure illustre les diérents obje tifs d'un adversaire souhaitant
mettre en défaut les propriétés de résistan e aux ollisions, de ré-
sistan e au al ul d'anté édent et de résistan e au al ul de se ond
anté édent. Les parties grisées orrespondent aux éléments qui sont
imposés et les points d'interrogation gurent les messages que doit
produire l'adversaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2-1 Ha hage itératif. Le message est dé oupé en éléments de taille xe qui
sont traités itérativement. . . . . . . . . . . . . . . . . . . . . . . . . 14

2-2 Modes opératoires de Davies-Meyer, Matyas-Meyer-Oseas et Miyagu hi-


Preneel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2-3 Algorithme de Merkle-Damgard. . . . . . . . . . . . . . . . . . . . . 19

2-4 Éponges ryptographiques. . . . . . . . . . . . . . . . . . . . . . . . . 23

2-5 Arbres de Merkle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2-6 Prin ipe de l'attaque des multi- ollisions. . . . . . . . . . . . . . . . . 27

2-7 Attaque de Kelsey et Shneier. . . . . . . . . . . . . . . . . . . . . . . 28

2-8 Attaque de Kelsey et Kohno. . . . . . . . . . . . . . . . . . . . . . . 29

2-9 Modèle de l'indiérentiabilité. Les boîtes grisées représentent des pri-


mitives idéales, les boîtes vides des algorithmes. . . . . . . . . . . . . 30

3-1 Fon tion de mise à jour des registres ommune à SHA-0 et SHA-1. . 35

5-1 Notations utilisées dans [DCR06℄ pour représenter les diérents états
possibles pour un ouple de bits x et x′ . . . . . . . . . . . . . . . . . 58

5-2 Cara téristique linéaire orrespondant à une ollision lo ale initiée au


pas i et à la position j = 1. La olonne de droite représente les dié-
rents états des mots de message expansés. Elle rend ompte du fait que
la ollision insérée est de dire tion des endante selon la terminologie
de [CJ98℄, de signe négatif selon la terminologie asso iée à la diéren e
binaire signée. La olonne de gau he représente les diérents états du
registre A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5-3 Ve teur de perturbations de Chabaud et Joux [CJ98℄. . . . . . . . . 61

5-4 Ve teurs de perturbations de Biham et al. [BCJ05℄. . . . . . . . . . 61

5-5 Ve teur de perturbations de Wang et al. [WYY05d℄. . . . . . . . . . 62

5-6 Ve teur de perturbations de Manuel et Peyrin [MP08℄. . . . . . . . . 62

155
Table des gures

5-7 Illustration de la diusion des positions des ollisions lo ales pour la


fon tion SHA-1. Cette gure orrespond à l'insertion d'une unique
perturbation sur le premier bit du premier mot du message. . . . . . 63

5-8 Quasi- ollision et pseudo- ollision. . . . . . . . . . . . . . . . . . . . 74

5-9 Te hnique des blo s multiples : ollision sur 2 blo s. . . . . . . . . . 75

5-10 Prin ipe de mise en oeuvre de la te hnique des blo s multiples utilisée
par Biham et al. dans [BCJ05℄. . . . . . . . . . . . . . . . . . . . . . 76

5-11 Te hnique des blo s multiples utilisée en pratique pour la re her he


de ollisions pour les fon tions SHA-0 et SHA-1. . . . . . . . . . . . 77

5-12 Illustration du point de vue des diéren es de la ollision pour SHA-0


présentée dans [WYY05d℄. . . . . . . . . . . . . . . . . . . . . . . . . 78

5-13 Attaque boomerang et attaque boomerang ampliée pour les s hémas


de hirement par blo . Le sens des è hes indique le sens hire-
ment/dé hirement. . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5-14 Attaque boomerang ampliée appliquée aux fon tions SHA-0 et SHA-
1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

6-1 Cara téristique orrespondant à une ollision lo ale non-linéaire initiée


au pas i et de diérentielle ∆ =< 21 , 26 , 0, 0, 0, 231 >. La olonne de
droite représente les diérents états des mots de message expansés. La
olonne de gau he représente les diérents états du registre A et pré-
ise les ontraintes né essaires pour que la ollision lo ale non-linéaire
soit vériée. Un  - indique qu'il n'y a pas de ontrainte, une lettre
indique une valeur binaire et une lettre surlignée son omplément. . 92

6-2 Premières étapes de l'expansion de message asso iée à la diérentielle


auxiliaire AP1 . La ollision lo ale non-linéaire est initiée au pas 7
j j+30
(W6 ). La première diéren e in ontrlée apparaît pas 20 (W19 ). . 94

6-3 Cara téristique asso iée à la diérentielle auxiliaire AP1 positionnée


sur la position de bit j = 1. Cette diérentielle possède une seule
ollision lo ale non-linéaire de la forme ∆ =< 2j , 2j+5 , 0, 0, 0, 2j+30 >
initiée au pas 7. La olonne de droite représente les diérents états
des mots de message expansés. La olonne de gau he représente les
diérents états du registre A et pré ise les ontraintes né essaires pour
que la ollision lo ale non-linéaire soit vériée. Un  - indique qu'il n'y
a pas de ontrainte, une lettre indique une valeur binaire et une lettre
surlignée son omplément. . . . . . . . . . . . . . . . . . . . . . . . 94

6-4 Premières étapes de l'expansion de message asso iée à la diérentielle


auxiliaire AP2 . Les ollisions lo ales non-linéaires sont initiées aux pas
j j j
1, 3 et 11 (W0 , W2 , W10 ). La première diéren e in ontrlée apparaît
j
pas 25 (W24 ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

156
6-5 Cara téristique asso iée à la diérentielle auxiliaire AP2 positionnée
sur la position de bit j = 1. Cette diérentielle possède une ollision
lo ale non-linéaire de la forme ∆ =< 2j , 2j+5 , 0, 2j+30 , 2j+30 , 2j+30 >
initiée au pas 1, et deux ollisions lo ales non-linéaires de la forme
∆ =< 2j , 2j+5 , 0, 0, 2j+30 , 2j+30 > initiées aux pas 3 et 11. La olonne
de droite représente les diérents états des mots de message expan-
sés. La olonne de gau he représente les diérents états du registre A
et pré ise les ontraintes né essaires pour que la ollision lo ale non-
linéaire soit vériée. Un  - indique qu'il n'y a pas de ontrainte, une
lettre indique une valeur binaire et une lettre surlignée son omplé-
ment. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

7-1 Message expansé étendu. . . . . . . . . . . . . . . . . . . . . . . . . . 104


7-2 Dans le ompromis du Re tangle Range, le poids de la fenêtre d'in-
formation est inférieur ou égal à 32, mais les perturbations ne sont
autorisées que sur les positions 0 et 1. Dans le ompromis de notre al-
gorithme, le poids de la fenêtre d'information est limité à la valeur du
paramètre w, mais les perturbations sont autorisées sur les positions
0, . . . , 31. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

9-1 Paradigme de randomisation puis ombinaison. Le al ul de l'em-


preinte orrespondant à un message x = x1 . . . xℓ se déroule en deux
étapes : les blo s de message sont randomisés au moyen de la fon tion
f et du odage de leur indi e puis, les valeurs obtenues sont ombinées
pour produire l'empreinte. . . . . . . . . . . . . . . . . . . . . . . . 131
9-2 XOR-Hash - Des ription graphique. . . . . . . . . . . . . . . . . . . 135

157
Table des gures

158
Liste des tableaux

1-1 Tableau de orrespondan e entre les propriétés des fon tions de ha-
hage ryptographiques et les domaines d'utilisation. Les notations
Col, P re, Sec et P RF désignent respe tivement la résistan e aux
ollisions, au al ul d'anté édent, au al ul de se ond anté édent et
le ara tère pseudo-aléatoire. La présen e d'une roix indique le fait
qu'un adversaire mettant en défaut la propriété orrespondante peut
être dire tement utilisé pour invalider l'utilisation de la fon tion dans
le domaine. Les domaines de l'authenti ation de message et des pro-
to oles d'engagement ne sont pas présent dans e tableau ar les pro-
priétés qui leur orrespondent varient en fon tion des onstru tions
utilisées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

3-1 Valeurs d'initialisation utilisées dans SHA-0 et SHA-1. . . . . . . . . 34

3-2 Fon tions booléènes et onstantes utilisées dans SHA-0 et SHA-1. . . 35

4-1 Probabilités théoriques de bon omportement (nombre de onditions


à vérier) pour une ollision lo ale isolée ommençant et se terminant
au sein d'une même ronde. La gure utilisée à droite de la notation
Type représente une ollision lo ale isolée. La numérotation 0, 1,
2, . . . 30, 31 indique la position à laquelle la perturbation initiale est
inje tée. Les probabilités sont données sous la forme de l'opposé de
leur logarithme en base 2. Les hires entre parenthèses donnent le
nombre de onditions à vérier. . . . . . . . . . . . . . . . . . . . . . 52

5-1 Conditions sur les bits de l'état interne orrespondant à la ara téris-
tique non-linéaire utilisée dans [WYY05d℄. La notation a (respe tive-
ment ā) indique que la valeur du bit orrespondant est égale (respe -
tivement opposée) à la valeur du même bit du registre immédiatement
pré édent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5-2 Exemple de hemin diérentiel obtenu à l'aide d'un outil automatisé


de génération de ara téristique non-linéaire. Le ontenu du tableau
orrespond à la première partie (pas 1 à 40) du hemin diérentiel du
premier blo utilisé par l'attaque publié dans [MP08℄. . . . . . . . . . 71

5-3 Exemple de hemin diérentiel obtenu à l'aide d'un outil automatisé


de génération de ara téristique non-linéaire. Le ontenu du tableau
orrespond à la se onde partie (pas 41 à 80) du hemin diérentiel du
premier blo utilisé par l'attaque publié dans [MP08℄. . . . . . . . . . 72

159
Liste des tableaux

6-1 Nouveau ve teur de perturbations pour SHA-0, ave le nombre de


onditions pour haque pas (les onditions des 16 premiers ne sont
pas prises en ompte). . . . . . . . . . . . . . . . . . . . . . . . . . . 91

6-2 Type des diérentielles auxiliaires utilisées lors de la ryptanalyse et


leurs positions respe tives. . . . . . . . . . . . . . . . . . . . . . . . . 96

6-3 Chemin diérentiel omplet pour le premier blo , pas 1 à 40. . . . . 98

6-4 Chemin diérentiel omplet pour le premier blo , pas 41 à 80. . . . . 99

6-5 Chemin diérentiel omplet pour le se ond blo , pas 1 à 40. . . . . . 100

6-6 Chemin diérentiel omplet pour le se ond blo , pas 41 à 80. . . . . 101

6-7 Exemple d'une paire de messages pour une ollision sur 2 blo s :
H(M1 , M2 ) = H(M1′ , M2′ ) = A2 ||B2 ||C2 ||D2 ||E2 , obtenue onformé-
ment au hemin diérentiel présenté dans les tableaux 6-3, 6-4, 6-5 et
6-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

7-1 Fenêtres d'information onduisant aux ve teurs de perturbations les


plus e a es. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7-2 Ve teurs de perturbations publiés de type-I. La notation ≫ i indique


que pour retrouver le ve teur de la référen e, il sut d'ee tuer une
permutation ir ulaire vers la gau he de i bits de ha un des 80 mots
orrespondants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7-3 Ve teurs de perturbations publiés de type-II. La notation ≫ i indique


que pour retrouver le ve teur de la référen e, il sut d'ee tuer une
permutation ir ulaire vers la gau he de i bits de ha un des 80 mots
orrespondants. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7-4 Nouvelle notation des ve teurs de perturbations publiés. . . . . . . . 112

7-5 Comparaison de l'évaluation, relativement aux fon tions de oûts que


nous avons hoisies, de l'e a ité des ve teurs de perturbations pu-
bliés. L'évaluation 1 (respe tivement 2) se fonde sur l'arti le de Mendel
et al. (respe tivement la thèse de Peyrin). . . . . . . . . . . . . . . . 114

8-1 Probabilités de bon omportement mesurées pour une ollision lo ale


isolée se déroulant entièrement au sein d'une même fon tion de ronde.
Les valeurs présentées sont les moyennes observées sur 3 expérien es
omprenant 220 tests ha une. . . . . . . . . . . . . . . . . . . . . . . 120

8-2 Probabilités de bon omportement de deux ollisions lo ales adja-


entes se déroulant entièrement au sein d'une même fon tion de ronde.
Les valeurs présentées sont les moyennes observées sur 3 expérien es
omprenant 224 tests ha une. . . . . . . . . . . . . . . . . . . . . . . 122

8-3 Probabilités de bon omportement de deux ollisions lo ales onsé-


utives (démarrant au pas i et i + 1) se déroulant entièrement au
sein d'une même fon tion de ronde. Les valeurs présentées sont les
moyennes observées sur 3 expérien es omprenant 224 tests ha une.
La notation "> 24" désigne le fait qu'au une ollision n'a été trouvée
lors des trois expérien es, la probabilité de bon omportement or-
respondante est don stri tement inférieure à 2−24 . La notation ∞
désigne un hemin diérentiel théoriquement impossible. . . . . . . . 123

160
8-4 Probabilités de bon omportement de deux ollisions lo ales alternées
(démarrant au pas i et i + 2) se déroulant entièrement au sein d'une
même fon tion de ronde. Les valeurs présentées sont les moyennes
observées sur 3 expérien es omprenant 224 tests ha une. La notation
"> 24" désigne le fait qu'au une ollision n'a été trouvée lors des trois
expérien es, la probabilité de bon omportement orrespondante est
don stri tement inférieure à 2
−24 . . . . . . . . . . . . . . . . . . . . 124

9-1 Paramètres de sé urité résistants aux attaques par ollision pour la


fon tion XOR-Hash. . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
9-2 Paramètres pour les 5 versions de la fon tion de ha hage FSB. . . . . 139
9-3 Complexité des meilleures attaques onnues ontre la fon tion de om-
pression prin ipale de FSB. La notation GBA indique l'algorithme du
paradoxe des anniversaires généralisé, la notation ISD indique l'algo-
rithme de dé odage par ensemble d'information. . . . . . . . . . . . . 140

161
Liste des tableaux

162
Bibliographie

Arti le de journal
[DCC 2010℄ S. Manuel, Classi ation and Generation of Disturban e Ve tors for Col-
lision Atta ks against SHA-1. Á paraître dans Design, Codes and Cryptography
- DCC 2010. 2010.

Colloques ave omité de séle tion et a tes


[SITIS 2010℄ C. Sauvaget, S. Manuel, JN. Vittaut, J. Suarez et V. Boyer, Segmented
Images Colorization Using Harmony. À paraître dans les a tes de Signal Image
Te hnology and Internet Based Systems - SITIS 2010. 2010

[WCC 2009℄ S. Manuel, Classi ation and Generation of Disturban e Ve tors for
Collision Atta ks against SHA-1. Parus dans les a tes de International Workshop
on Coding and Cryptography - WCC 2009. 2009.

[FSE 2008℄ S. Manuel et T. Peyrin, Collisions on SHA-0 in one hour. Éditeur K. Ny-
berg, Fast Software En ryption - FSE 2008, Le ture Notes in Computer S ien e
5086, pages 16-35. Springer-Verlag, 2008.

Colloques ave omité de séle tion sans a tes


[WEWoRC 2007℄ S. Manuel et N. Sendrier, XOR-Hash : A Hash Fun tion Based
on XOR. Western European Workshop on Resear h in Cryptology - WEWoRC
2007.

Colloques sans omité de séle tion


[C2 2009℄ S. Manuel, Attaques par ollision ontre SHA-1. Journées Codage et Cryp-
tographie - C2 2009
[C2 2008℄ S. Manuel, Produire une ollision pour SHA-0 en une heure. Journées
Codage et Cryptographie - C2 2008

163
Bibliographie

Autre publi ation


[FSB℄ D. Augot, M. Finiasz, P. Gaborit, S. Manuel and N. Sendrier,
Fast Syndrome-Based hash fun tion. Disponible à l'adresse http ://www-
ro [Link]/se ret/CBCrypto/[Link] ?pg=fsb. 2008.

164
Résumé
Une fon tion de ha hage est une fon tion prenant omme argument un élément de taille
arbitraire nie et renvoyant un élément de longueur xée. Il existe diérents types de fon -
tions de ha hage qui orrespondent à autant de domaines d'utilisation. Parmi es fon tions,
les fon tions de ha hage ryptographiques se distinguent par la variété des missions qui leur
sont onées et par l'exigen e qui leur est faîte de respe ter de nombreux impératifs de sé u-
rité. Les fon tions de ha hage ryptographiques les plus utilisées en pratiques appartiennent
à la famille MD-SHA, dont les membres les plus onnus sont les fon tions MD5 et SHA-1.
Durant es dernières années, de nouvelles te hniques de rytptanalyses ont fait leur appari-
tion. Ces te hniques, bien que très omplexes, se sont montrés si e a es qu'elles ont onduit
à l'abandon de l'utilisation des fon tions MD5 et SHA-1, et à l'ouverture d'une ompétition
internationale pour le développement d'un nouvel algorithme de ha hage ryptographique.
Les travaux de re her he que nous avons menés dans le adre de ette thèse s'ins rivent
à la fois dans une démar he d'analyse et de on eption. Nous étudions les nouvelles avan ées
dans la ryptanalyse des fon tions de ha hage, et plus parti ulièrement leurs mise en oeuvre
dans le adre des fon tions SHA-0 et SHA-1. Nous présentons à e titre la meilleure attaque
pratique onnue à e jour ontre SHA-0 et proposons la première lassi ation des ve teurs de
perturbations utilisés par les attaques par ollision ontre la fon tion SHA-1. Nous abordons
ensuite la on eption de nouvelle fon tions par le biais des fon tion XOR-Hash et FSB.

Mots- lés: ryptographie, fon tions de ha hage, ryptanalyse, SHA, XOR-Hash, FSB

Abstra t
A hash fun tion is a fun tion taking as argument an element of nite arbitrary
length and returning an element of xed length. There are dierent types of hash fun tions
that orrespond to elds of use. Among these fun tions, ryptographi hash fun tions are
distinguished by the variety of missions assigned to them and requiring them to meet many
se urity requirements. Cryptographi hash fun tions ommonly used in pra ti es belong
to the MD-SHA family, whose most-known members are MD5 and SHA-1. In re ent years,
new rytptanalysis te hniques have emerged. These te hniques, although very omplex, have
proved so su essful that it led to the abandonment of the use of MD5 and SHA-1, and to the
openning of an international ompetition to develop a new ryptographi hash algorithm.
The resear h we ondu ted as part of this thesis stand in both pro ess analysis and
design. We study the new advan es in the ryptanalysis of hash fun tions, parti ularly
their implementation within the fun tions SHA-0 and SHA-1. We present as su h the best
pra ti al atta k known against SHA-0 and propose the rst lassi ation of disturban es
ve tors used by ollision atta ks against SHA-1. We then dis uss the design of new fun tions
through XOR-Hash and FSB.

Keywords: Cryptography, Hash Fun tions, Cryptanalysis, SHA, XOR-Hash, FSB

165
166
167

Vous aimerez peut-être aussi