Hachage
Hachage
Hachage
Sébastien VARRETTE
Plan
4 Signatures électroniques
Taille
fixe
Fonction
de
hachage n bits
empreinte
Intérêt cryptographique
Notion de collision
Definition (Collision)
On parle de collision entre x et x ′ lorsque
x 6= x ′
H(x) = H(x ′ )
x y = H(x)
difficile
y = H(x)
x’ difficile
Résistance à la collision
difficile de trouver x et x ′ tels que H(x) = H(x ′ ).
n
2 2 calculs de hash requis pour trouver un couple (x, x ′ )
x
difficile
y = H(x)
x’
Remarque :
résistance aux collisions =⇒ résistance à la seconde préimage
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions Principe
Construction de fonctions de hachage Propriétés des fonction de hachage
Contrôle d’intégrité et MAC Paradoxe des anniversaires
Signatures électroniques Classification fonctionnelle
∞
X xj
e −x = 1 − x + (−1)j
j!
j=2
−x
∀x ∈ R, e ≥1−x
i i
=⇒ ∀i ∈ [1, k − 1], e − n ≥1−
n
k−1 k−1
Y
Y
− ni
i (k−1)k
e ≥ 1− ⇐⇒ e − 2n ≥ pk
n
i=1 i=1
(k−1)k
⇐⇒ 1 − pk ≥ 1 − e − 2n
(k−1)k
Bilan : pour avoir 1 − pk > α, il suffit d’avoir 1 − e − 2n > α!
Retour en terminale
Pour 0 < α < 1 et k > 1 :
(k−1)k (k−1)k
1 − e− 2n > α ⇐⇒ e − 2n < 1 − α
(k − 1)k
⇐⇒ − < ln(1 − α)
2n
(k − 1)k 1
⇐⇒ > ln
2n 1−α
2 1
=⇒ k > (k − 1)k > 2n ln
1−α
r
1
√
Bilan : 1 − pk > α =⇒ k > 2n ln 1−α = O( n)
1
n = 365, α = 2 =⇒ k > 22, 49 : k = 23
n = 365, α = 99% =⇒ k > 57, 98 : k=58
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions Principe
Construction de fonctions de hachage Propriétés des fonction de hachage
Contrôle d’intégrité et MAC Paradoxe des anniversaires
Signatures électroniques Classification fonctionnelle
Application : répudiation
envoyer M et soutenir avoir envoyer M̃
Classification fonctionnelle
1
Modification Detection Code
2
Message Authentification Code
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions Construction de Merkle-Damgård
Construction de fonctions de hachage Construction de la fonction de compression
Contrôle d’intégrité et MAC Etude de quelques exemples de fonctions de hachage
Signatures électroniques Billan sur les résistance aux collisions
Construction de Merkle-Damgård
n bits
n bits
h h
i!1 i
h h h h
IV H(M)
(de taille n) (de taille n)
Theorem (Merkle-Damgård)
Si h est résistante aux collisions, alors H l’est aussi !
Construction de Davies-Meyer
b bits
)i
K
hi = EMi (hi−1 ) ⊕ hi−1
x E K(x) n bits
n bits
h E h
i!1 i
Construction de Matyas-Meyer-Oseas
b bits
Mi
g : fonction d’adaptation à la
h taille de clé
g
K hi = Eg (hi−1 ) (Mi ) ⊕ Mi
n bits
n bits
h x E K(x)
i!1 E h
i
Construction de Miyaguchi-Preneel
b bits
Mi
g : fonction d’adaptation à la
h taille de clé
g
K hi = Eg (hi−1 ) (Mi ) ⊕ hi−1 ⊕ Mi
n bits
n bits
h x E K(x)
i!1 E h
i
1991 MD5
1993 SHA
1994 SHA!1
1996 RIPEMD!128,160
1999 Whirlpool!0
2003 SHA!224
2004 Whirlpool
Whirlpool
Fonction de hachage recommandée par NESSIE (2004)
Basé sur la construction de Miyaguchi-Preneel
avec E = W ≈ Rijndael (à la base de AES)
Rijndael W
Taille Bloc 128, 160, 192, 224 ou 256 512
Nb rondes 10, 11, 12, 13 ou 14 10
Polynome de x 8 +x 4 +x 3 +x +1 (0x11B) x 8 + x 4 + x 3 + x 2 + 1 (0x11D)
réduction sur F256
Origine de la S-Box t : a −→ a−1 sur F256 structure récursive
Origine des polynômes x i sur F256 entrées successives de la S-Box
constantes de ronde
Contrôle d’intégrité
Message M Message M’
blablabbla blablabbla
Canal non sécurisé blablabbla
blablabbla Fonction H(M’)
blablabbla blablabbla de
blablabbla blablabbla
Hachage
10110...10
H(M) = H(M’) ?
Fonction H(M) H(M)
de
Hachage
10110...10 10110...10
Message M Message M’ H(M’)
10110...10
blablabbla E D blablabbla
blablabbla blablabbla
blablabbla Fonction
blablabbla
blablabbla blablabbla de
Hachage
clé K
HK (M) = HK (M’) ?
Message M Message M’
clé K
blablabbla blablabbla
blablabbla Canal non sécurisé blablabbla
blablabbla blablabbla
blablabbla blablabbla MAC
E E E CBC_MACK (M)
M1 M2 Mk
Signatures électroniques
blablabbla
blablabbla
ALICE Algorithme de
Vérification de la signature
Signature valide
ou
Signature non valide
utilise la clé publique Ke d’Alice
Extraction
ALICE
Document
blablabbla
blablabbla
Fonction
de
et la fonction de chiffrement E
Hachage
EKe (s(M)) = hM =? H(M)
Seule Alice a pu générer s(M)
Signature RSA
Signature El Gamal
En effet,
−1 (h −a.r )
Ar r s ≡ g a.r .g kk M
mod p
hM
≡ g mod p
˜
Si le document est authentique : hM = h˜M ⇒ g hM ≡ g hM mod p
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions Principes
Construction de fonctions de hachage Signature RSA
Contrôle d’intégrité et MAC Signature El Gamal
Signatures électroniques Le standard DSA
Le standard DSA