f
x1
x2
xt
xt+1
H0
H1
H2
Ht
f
f
f
h(x)
Fig.2-3 Algorithmede Merkle-Damgard.
Algorithm 2 Méta-méthode deMerkle-Damgård ENTRÉE:une fon tionde ompression
f : {0, 1}
n× {0, 1}r
−→ {0, 1}n
résistante aux ollisions.
SORTIE:unefon tion deha hage
h : {0, 1}
∗
−→ {0, 1}n
résistanteaux ollisions.
Dé ouper un message
x
de tailleb
bits en blo sx1, x2, . . . , xt
de tailler
bits en ajoutant desbits0aubloxt
siné essaire,etdénirunblo supplémentairext+1
, destiné à ontenir le odage de lalongueur dumessage.H0
= 0n
{n
bits à 0}i = 1
while
i ≤ t + 1
doHi
= f (Hi−1k xi)
end while
L'empreinte du message
x
est alorsh(x) = Ht+1= f (Htk xt+1)
.Lesvariables
Hi
sontappeléesvariablesde haînage,etlavariableH0
estqualiée de valeurinitiale (InitialValue).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 odage de la longueur détermine lataille maximale desmessages(2
b
bits). Deplus, lavaleur initialeest xéelors de laspé i ationde lafon 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 delafon tion de ompression. Ande 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 unedénitionformelle delarésistan eaux ollisionsetdémontrerrigoureusement le théorèmede Merkle-Damgård.
Ondénit unefamille de fon tionsde ha hage par une famillede fon tions
H : K × D → R,
où
K
estl'ensembledes lés,D
estl'ensemblededénitionetR
l'ensembled'arrivée. Pourune léparti ulièrek ∈ K
,lafon tionhK
: D → R
estdéniepourtoutM ∈ D
parhk(M ) = h(k, M )
.Il s'agitde l'instan edeh
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 unalgorithme probabiliste prenant en entrée unparamètre de sé uritén
et produisant en sortieune lék
.2. Il existe un polynme
ℓ
tel queh
prend en entrée une lék
et une haîne de bitsx ∈ {0, 1}
∗
et produit ensortieune haînede bits
hk(x) ∈ {0, 1}
ℓ(n)
. Si
hk
estdénie seulementpourdes entréesx ∈ {0, 1}
ℓ′(n)
et
ℓ
′(n) > ℓ(n)
,alorsnous dirons que
(Θ, h)
est une famillede fon tions de ompression prenant enentrée des haînes debits detailleℓ
′(n)
.
Pour une famille de fon tions de ha hage
H = (Θ, h)
, un adversaireA
et un para- mètredesé uritén
,nousdénissons l'expérien esuivante :Algorithm 3 Expérien ede re her he de ollision
CollA,H(n)
1.Une lék
estgénérée à partir del'algorithmeΘ(n)
.2.Étantdonnée
k
,l'adversaireA
produitdeuxmessagesx
etx
′
(dansle asd'une fon tion de ompression, on demande deplus 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′
ethk(x) = hk(x
′)
. Dans e as nous disons que
A
a produit une ollision pour l'instan ehk
.Nousdénissons à présent larésistan eaux ollisionsde lafaçon suivante: Propriété 2.1 (Résistan e aux ollisions (famille))
toutadversaire probabiliste
A
polynomialentemps,il existe unefon tion négligeableg
telle queP r[CollA,H(n) = 1] ≤ g(n)
Nous pouvons dèslorsénon er lethéorème deMerkle-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 soitF = (Θ, f )
la famillede fon tions de ompression utilisée. Si la famille de fon tions de ompressionF
est résistante aux ollisions, alors la familleH
est résistante aux ollisions.Preuve. Nous ommençons par prouver que pour tout
k
, une ollisions pourhk
onduit àune ollisionpourfk
.Soitx
etx
′
deux haînes de bitsde longueur
b
etb
′
telles que
hk(x) = hk(x
′)
.Nous devons onsidérer deux as
b 6= b
′
etb = b
′
. Casb 6= b
′
:Dans e as, la dernièreétape du al ulde
hk(x)
estHt+1
= fk(Htk xt+1)
et la dernière étape du al ul dehk(x
′)
estH
′
t+1
= fk(Ht′′
k x′t′+1)
. Et ommehk(x) = hk(x′)
ona :fk(Htk xt+1) = fk(Ht′′
k x′t′+1).
Cependant,b 6= b
′
d'oùxt+16= x
′
t′+1
etdon :Htk xt+1
etH
′
t′
k x′t′+1
sont deux haînes de bits diérentes qui forment une ollisionpourfk
.Cas
b = b
′
:
Notons toutd'abord que si
b = b
′
alorsxt+1
= x
′
t+1
.Commex 6= x
′
etb = b
′
, il existe au moins un indi ei
pour lequelxi
6= x
′
i
. Soiti
∗
≤ t + 1
l'indi e le plusélevé pourlequel
Hi∗−1
k xi∗
6= H
′
i∗−1k x′i∗
. Sii
∗= t + 1
alorsHtk xt+16= H
′
t
k x′t+1
sont deux haînes de bits diérentes quiforment une ollisionpourfk
ar:fk(Htk xt+1) = Ht+1= hk(x) = hk(x′) = Ht+1′
= fk(Ht′
k xt+1).
Si
i
∗≤ t
alors lefaitque
i
∗
soit l'indi e le plusélevé implique que
Hi∗
= H
′
i∗
. En onséquen e,Hi∗−1
k xi∗
6= H
′
i∗−1k x′i∗
sontdeux haînesdebitsdiérentes quiforment une ollisionpourfk
.Don étantdonnéune ollisionpour
hk
,nouspouvonsextraireune ollisionpourfk
, lairement en temps polynomial. Nous étendons à présent e résultat pour donner une rédu tionde sé urité.Soit
A
unadversairepourl'expérien edere her hede ollisionCollA,H(n)
.Nous onstruisons un adversaireA
′
pour l'expérien e
CollA,F(n)
à partir de ladénition suivante :Lorsqueleparamètrek
estdonnéà l'adversaireA
′
, elui- iesttransmisà l'adversaire
A
.Nousré upéronsle ouple(x, x
′)
fournitpar
A
.Six 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 tenude ladénitionde l'expérien edere her he de ollision que l'adversaireA
′
réussi à produire une ollision exa tement lorsque l'adversaire
A
réussi. Onadon :Il en dé oule que si la famille
F
est résistante aux ollisions, alors la familleH
est résistante aux ollisions.Ilestimportantdenoterquelaré iproquede ethéorèmeestfausse.Ilesttoutà faitpossibled'envisagerl'existen edefon tionsdeha hagerésistantesaux ollisions onstruites à partir de fon tions de ompression qui ne soient pas résistantes aux ollisionsetdont ledomaine est étenduave l'algorithmede 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 à lastru ture itérative de l'algorithme de Merkle-Damgård. Soit une fon tion de ha- hage
h
,utilisantl'algorithmedeMerkle-Damgård ommeextenseurdedomaine.La onnaissan e de l'empreinteh(M )
d'un messageM
qui après appli ation du rem- bourrage donneX = X1, . . . , Xt
,peutêtre utiliséepour onstruire l'empreinted'un message parti ulierM
′
= X||N
, où
N
est quel onque. En eet, ette empreinteh(M )
onstitue la sortie de la dernière itération de la fon tion de ompressionf
:h(M ) = f (Ht−1, Xt)
. On peut don al uler la valeur deh(M
′)
en prenant
h(M )
ommenouvelle valeurinitiale.Cettepropriété invalide l'utilisation del'algorithme deMerkle-Damgård pour la onstru tion d'unMAC-préxe [PVO96℄. Deplus, ette propriété permet de distin- guertrivialement lafon tion
h
d'unora le aléatoire.L'attaquepar extensionne onstituepaslaseule vulnérabilitédel'algorithmede Merkle-Damgård.Lase tion2-5.2présenteun ertainsnombresdevulnérabilitésqui s'appliquent à etalgorithme.
2-3.2 Autres extenseurs de domaine
Pour palier auxvulné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 pourrésisterauxattaquesdemulti- ollisions.Ces onstru tions onsistent essentiel- lement à augmenter lataille de la variable de haînage. Le systèmeHAIFA [BD06 ℄ de Biham et Dunkelman onsiste à ajouter un sel (Salt) et un ompteur à haque itérationdelafon tionde ompression. Cespropositionsontpourobje tifde rendre les onstru tions itératives résistantes aux nouvelles attaques génériques apparues depuislaproposition de l'algorithmede Merkle-Damgård.
Une autre dire tion de re her he, plus théorique, onsiste à proposer desexten- seursdedomainesus eptiblesde préserverleplusgrandnombrepossibledeproprié- tésdelafon tionde ompression.LespropositionsEMD[BR06℄etROX[ANP07℄en sont desexemples,pour lesquelsles auteurs ont démontré les qualitésdeleurs algo- rithmes.Cependant anderédigerdespreuvesformelles, espropositionssefondent nonpassuruneuniquefon tionde ompressionmaissurunefamille defon tionsde ompressions.
Éponges ryptographiques (Cryptographi Sponges). Les onstru tions de typeéponges ryptographiquesontétéintroduitesen2006parBertonietal.[BDP06℄. L'obje tif a hé de es onstru tions est de fournir une fon tion de ha hage aussi pro he quepossibled'unora le aléatoire.Il s'agitd'une onstru tion itérative,mais