Principes & Définitions
Construction de fonctions de hachage
Contrôle d’intégrité et MAC
Signatures électroniques
Fonctions de Hachage et Signatures Electroniques
Sébastien VARRETTE
Université du Luxembourg - Laboratoire LACS, LUXEMBOURG
CNRS/INPG/INRIA/UJF - Laboratoire LIG-IMAG
[email protected] http://www-id.imag.fr/~svarrett/
Cours ”Cryptographie & Securité Réseau” Master Info
Université de Yaoundé
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Construction de fonctions de hachage
Contrôle d’intégrité et MAC
Signatures électroniques
Quelques références bibliographiques. . . (avant que j’oublie)
Menezes A. J., Vanstone S. A. and Oorschot P.
C. V., Handbook of Applied Cryptography,
Computer Sciences Applied Mathematics Engineering, CRC
Press, Inc., 1st edition, 1996,
http://www.cacr.math.uwaterloo.ca/hac/
Schneier B., ”Cryptographie Appliquée”,
Vuibert, Wiley and International Thomson Publishing, NY,
2nd edition, 1997.
http://www.schneier.com/book-applied.html
Stinson D.R, Cryptography : Theory and Practice,
Chapman & Hall/CRC Press, 2nd edition, 2002.
http://www.cacr.math.uwaterloo.ca/~dstinson/CTAP2/CTAP2.html
Ebrahimi T., Leprévost F. and Warusfeld Ed.,
Cryptographie et Securité des systèmes et réseaux,
Hermes/Lavoisier,
http://www-id.imag.fr/~svarrett/book_secu_mult.html
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Construction de fonctions de hachage
Contrôle d’intégrité et MAC
Signatures électroniques
Plan
1 Principes & Définitions
2 Construction de fonctions de hachage
3 Contrôle d’intégrité et MAC
4 Signatures électroniques
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
Notion de fonction de hachage
Definition (Fonction de Hachage)
Une fonction de hachage H : {0, 1}∗ −→ {0, 1}n
facilement calculable
qui transforme une chaı̂ne binaire de taille quelconque t en
une chaine binaire de taille fixe n
La chaı̂ne y = H(x) obtenue est appelée empreinte de hachage.
En général, t > n : des collisions sont inévitables !
Taille
quelconque
Chaine d’entrée
Taille
fixe
Fonction
de
hachage n bits
empreinte
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
Intérêt cryptographique
Primitive cryptographique très importante !
Schemas de signature (PSS)
Schémas de chiffrement (OAEP)
Intégrité de documents
Message Authentication Code (MACs)
Facilement calculable
Compression
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
Notion de collision
Definition (Collision)
On parle de collision entre x et x ′ lorsque
x 6= x ′
H(x) = H(x ′ )
Il y a forcément des collisions !
Si y = H(x), alors :
x est appelé préimage de y
Rappel : y est l’empreinte de x
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
Propriétés des fonction de hachage
De base : compression et facilité de calcul.
Résistance à la préimage
Etant donné y : difficile de trouver x / y = H(x)
Etant donné y : 2n calculs de hash requis pour trouver x
y donné
x y = H(x)
difficile
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
Propriétés des fonction de hachage (2)
Résistance à la seconde préimage
Etant donné x : difficile de trouver x ′ 6= x / H(x) = H(x ′ )
Etant donné x : 2n calculs de hash requis pour trouver x ′
x donné
y = H(x)
x’ difficile
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
Propriétés des fonction de hachage (3)
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’
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
Definition (Fonction de Hachage à Sens Unique)
Fonction de hachage à sens uniquea :
résistance à la préimage
résistance à la seconde préimage.
a
One-Way Hash Function
Definition (Fonction de Hachage résistante aux collisions)
Fonction de hachage résistante aux collisionsa :
résistance à la seconde préimage
résistance aux collisions
a
Collision Resistant Hash Function
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
Paradoxe des anniversaires
Paradoxe des anniversaires
Dans une assemblée de 23 personnes, la probabilité qu’au-moins 2
d’entre-elles aient leur anniversaire le même joura est égale à 21 .
a
en ne tenant pas compte de l’année de naissance
Problème sous jacent :
Fonction de hachage H : {0, 1}t −→ {0, 1}m avec t > m.
On pose : n = 2m = |{0, 1}m |
k messages {xi }1≤i≤k aléatoires (k << n)
Question : quelles est la probabilité pour obtenir une collisions
à partir des messages xi ?
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
Paradoxe des anniversaires (2)
Hypothèse : les zi = H(xi ) sont aléatoires
But : calculer pk = prob que les {zi }1≤i≤k soient tous 6=
k = 2 : p2 = n−1
n (n − 1 possiblilités dans le choix de z2 )
k = 3 : p3 = n−1n
n−2
n
..
.
pk = n−1
n−3
· · · n−k+1
n n n
k−1
Y
i
pk = 1−
n
i=1
=⇒ prob qu’il y ait au moins
une collision :
1 − pk = 1 − k−1 i
Q
i=1 1 − n
1
Comment simplifier pour déterminer k tel que 1 − pk > 2 ?
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
L’astuce sioux :-)
∞
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 > α!
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
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
Attaque de Yuval (attaque anniversaire)
Soit H : {0, 1}∗ −→ {0, 1}m une fonction de hachage.
Input : M message initial ; M̃ message corrompu
Output : M ′ ≈ M et M̃ ′ ≈ M̃ tels que H(M ′ ) = H(M̃ ′ )
m
1 générer 2 2 modifications mineures de M notées M ′
pour chacune, calculer H(M ′ ) et les stocker dans une table T
2 générer des M̃ ′ , modifications mineures de M̃ jusqu’à ce qu’un
H(M̃ ′ ) soit dans T (collision)
Application : répudiation
envoyer M et soutenir avoir envoyer M̃
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
Ce qu’il faut retenir du paradoxe des anniversaires
Concernant les fonctions de hachage
Soit H la fonction de hachage H : {0, 1}∗ −→ {0, 1}m
La recherche brutale de collisions
m à plus d’une chance sur 2
d’aboutir après seulement O 2 2 essais !
Remarque : on est sûr d’aboutir après O (2m ) essais
Concernant les algorithmes de chiffrement
Soit E un algorithme de chiffrement et K ∈ {0, 1}m une clé
La recherche brutale de la clé dans le chiffrement EK (M) par
une attaque à texte clair connu
maplus d’une chance sur 2
d’aboutir après seulement O 2 2 essais !
Remarque : on est sûr d’aboutir après O (2m ) essais
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
Classification fonctionnelle
1 Codes de détection de modifications1 (MDC)
utilisent des fonctions de hachage ”sans clé ” publiques
Unkeyed Hash Functions
vérifient l’intégrite d’une chaı̂ne binaire transmise sur un canal
2 Codes d’authentification de messages2 (MAC)
utilisent des fonctions de hachage ”avec clé ”
Keyed Hash Function
vérifient l’intégrité d’une chaı̂ne binaire transmise sur un canal
authentifient la source d’une donnée
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 fonctions de hachage
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
Se base sur une fonction de compression h
h : {0, 1}b × {0, 1}n −→ {0, 1}n
b bits
n bits
n bits
h h
i!1 i
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 (2)
Application au calcul de H(M) :
Application d’un padding à M pour avoir |M| = k.b bits
Découpage du message M en blocs de taille b
M = M1 M2 . . . Mk−1 Mk avec |Mi | = b ∀i ∈ [1, k]
Itération de la fonction h (IV : Initial Value) :
M1 M2 Mk |M|
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 !
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 la fonction de compression
”From scratch” : cf MD5,SHA-1 etc...
A base d’un chiffrement à clé secrète par bloc E :
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
Résistance à la préimage : attaque de Drew Dean en 1999
exploitant la définition de point fixe sur cette construction
=⇒ fonctions de hachage moins robustes.
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 la fonction de compression (2)
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
améliorée par Miyaguchi-Preneel.
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 la fonction de compression (3)
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
Variante renforcée de la construction de Matyas-Meyer-Oseas
Particulièrement robuste d’un point de vue cryptographique
[Black, Rogaway et Shrimpton]
Utilisé dans la fonction de hachage Whirlpool
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
Historique des principales fonctions de hachages
1990 MD4 Extended!MD4
1991 MD5
1992 HAVAL RIPEMD
1993 SHA
1994 SHA!1
1996 RIPEMD!128,160
1999 Whirlpool!0
2002 SHA!256,384,512 Whirlpool!T
2003 SHA!224
2004 Whirlpool
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
La fonction de compression de MD5
Proposé par Rivest en 1991
Blocs de b=512 bits, sortie de n=128 bits
16 sous-blocs Mi de 32 bits
64 constantes fixées Ki
64 rondes sur 4 sous-blocs de 32 bits A,B,C,D
4 × 16 sous-rondes où F prend les valeurs :
1 F = (B AND C ) OR (B̄ AND D)
2 F = (D AND B) OR (D̄ AND C )
3 F =B ⊕C ⊕D
4 F = C ⊕ (B OR D̄))
Sécurité de MD5 face aux collisions
Force brute : O(264 ) (attaque anniversaire)
MAIS collisions en O(242 ) [Wang04] puis O(230 )[Sasaki05]
MD5 n’est plus considéré comme sûr aujourd’hui
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
La fonction de compression de SHA-1
Publié dans FIPS PUB 180-1 par NIST en 1995
Blocs de b=512 bits, sortie de n=160 bits
16 sous-blocs Mi de 32 bits
Etendus en 80 nouveaux blocs Wt
4 constantes fixées Kt
80 rondes sur 5 sous-blocs de 32 bits A,B,C,D,E
4 × 20 sous-rondes où F prend les valeurs :
1 F = (B AND C ) OR (B̄ AND D)
2 F =B ⊕C ⊕D
3 F = (B AND C ) ⊕ (B AND D) ⊕ (C AND D)
4 F =B ⊕C ⊕D
Sécurité de SHA-1 face aux collisions
Force brute : O(280 ) (attaque anniversaire)
MAIS collisions possibles en O(263 ) [Wang05]
Encore largement utilisé (signature, prot. anti-copie XBOX)
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
La fonction de compression de SHA-256
Publié dans FIPS PUB 180-2 en 2000
Basé sur le chiffrement à clé secrète par bloc SHACAL-2
Blocs de b=512 bits, sortie de n=256 bits
16 sous-blocs Mi de 32 bits
Etendus en 64 nouveaux blocs Wt
64 constantes fixées Kt
64 rondes sur 8 sous-blocs de 32 bits
Sécurité de SHA-256
Force brute : O(2128 ) (attaque anniversaire)
Pas d’attaque connues pour le moment
(to be continued)
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
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
Blocs de b=512 bits, sortie de n=512 bits
10 rondes
Sécurité de Whirlpool
Force brute : O(2256 ) (attaque anniversaire)
Pas d’attaque connues pour le moment
(to be continued)
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
Bilan sur les fonctions de hachage connues
Fonction Empreinte Complexité Résistance aux collisions Compléxité
requise de l’attaque
MD5 128 bits O(264 ) Cassé [Sasaki&al.05] O(230 )
SHA-1 160 bits O(280 ) Cassé (Crypto05 - Wang&al.]) O(263 )
HAVAL 256 bits O(2128 ) Cassé (Asiacrypt’04) O(210 )
SHA-256 256 bits O(2128 ) Sûr
Whirlpool 512 bits O(2256 ) Sûr
La résistance aux collision n’est pas toujours suffisante !
D’autres propriétés de sécurité peuvent être requises !
Résistance aux collisions proches
֒→ Résistance aux collisions (x, x ′ ) ou d(H(x), H(x ′ )) faible
Résistance aux pseudo-collisions
֒→ Résistance aux collisions lorsque des IV peuvent différer
Pseudo-randomness
֒→ rendre difficile distinction entre H et une fonction aléatoire
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Contrôle d’intégrité et MAC
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Contrôle d’intégrité
Comment garantir l’intégrité des données sur un canal non sûr ?
Méthode 1 : en utilisant un canal sécurisé :
Transmettre le message sur le canal non fiable
Transmettre le checksum sur le canal sûr
Vérifier que le hachage du message recu correspond
Fonction H(M) Canal sécurisé
de
Hachage
10110...10 H(M) = H(M’) ?
Message M Message M’
blablabbla blablabbla
Canal non sécurisé blablabbla
blablabbla Fonction H(M’)
blablabbla blablabbla de
blablabbla blablabbla
Hachage
10110...10
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Contrôle d’intégrité (2)
Méthode 2 : en utilisant une fonction de chiffrement E
chiffrer le message et le checksum avec E
transmettre le contenu chiffré
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
Canal non sécurisé
Méthode 3 : utiliser un MAC
transmettre le message et le checksum
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Definition (Message Authentification Code - MAC)
Fonction de hachage à sens unique paramétrée par une clé K
(x1 , HK (x1 ))
(x2 , HK (x2 ))
∀K inconnu et .. , il est ”impossible”a de
.
(xi , HK (xi ))
calculer une paire (x, HK (x)) avec x ∈ / {x1 , x2 , ..., xi }
On note HK (x) l’empreinte de x.
a
en temps raisonnable
Seul celui qui possède K peut calculer/vérifier l’empreinte :
1 Alice et Bob partagent une clé K
2 Alice envoit à Bob un message M et r = HK (M)
3 Bob vérifie que le r reçu est bien égal à HK (M̃) pour M̃ reçu
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
A quoi sert un MAC ?
Intégrité : Tous les possesseurs de K peuvent vérifier que M
n’a pas été modifié puisqu’il correspond à r
Authentification si la clef n’est distribuée qu’à deux personnes
Seuls Alice et Bob peuvent calculer HK (M)
clé K
HK (M) = HK (M’) ?
HK (M) HK (M) HK (M’)
MAC
10110...10 10110...10 10110...10
Message M Message M’
clé K
blablabbla blablabbla
blablabbla Canal non sécurisé blablabbla
blablabbla blablabbla
blablabbla blablabbla MAC
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Construction d’un MAC
1 A partir d’un chiffrement à clé secrète par blocs E
utilisé en mode CBC ou CFB
l’empreinte est le dernier bloc chiffré
ex : CBC-MAC-AES
K
E E E CBC_MACK (M)
M1 M2 Mk
AES : 275 Mb/s sur PIII 500 MHz
CBC-MAC-AES : 234 Mb/s sur PIII 500 MHz
2 A partir d’une fonction de hachage à sens unique H.
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Construction à partir d’une fonction de hachage
NE PAS UTILISER (sur construction de Merkle-Damgard) :
HK (M) = H(K • M)
HK (M) = H(M) avec IV = K
Pourquoi ?
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Construction à partir d’une fonction de hachage
NE PAS UTILISER (sur construction de Merkle-Damgard) :
HK (M) = H(K • M)
HK (M) = H(M) avec IV = K
Pourquoi ?
֒→ On peut ajouter ce que l’on veut à la fin !
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Construction à partir d’une fonction de hachage
NE PAS UTILISER (sur construction de Merkle-Damgard) :
HK (M) = H(K • M)
HK (M) = H(M) avec IV = K
Pourquoi ?
֒→ On peut ajouter ce que l’on veut à la fin !
HK (M) = H(M • K ) Pourquoi ?
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Construction à partir d’une fonction de hachage
NE PAS UTILISER (sur construction de Merkle-Damgard) :
HK (M) = H(K • M)
HK (M) = H(M) avec IV = K
Pourquoi ?
֒→ On peut ajouter ce que l’on veut à la fin !
HK (M) = H(M • K ) Pourquoi ?
֒→ Une collision sur H fournit un MAC valide !
H(x) = H(x ′ ) =⇒ H(x • K ) = H(x ′ • K )
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques
Principes & Définitions
Contrôle d’intégrité
Construction de fonctions de hachage
Principe
Contrôle d’intégrité et MAC
Construction d’un MAC
Signatures électroniques
Construction à partir d’une fonction de hachage
NE PAS UTILISER (sur construction de Merkle-Damgard) :
HK (M) = H(K • M)
HK (M) = H(M) avec IV = K
Pourquoi ?
֒→ On peut ajouter ce que l’on veut à la fin !
HK (M) = H(M • K ) Pourquoi ?
֒→ Une collision sur H fournit un MAC valide !
H(x) = H(x ′ ) =⇒ H(x • K ) = H(x ′ • K )
Préférer les constructions suivantes :
Enveloppe : H(K1 • M · K2 )
NMAC : HK1 (HK2 (M))
HMAC : H[K ⊕ pad1 • H ((K ⊕ pad2 ) • M)]
Hybride : HK1 (x • K2 )
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
Signatures électroniques
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
Notion de signature électronique
But des signatures manuscrites :
prouver l’identité de leur auteur et/ou
l’accord du signataire avec le contenu du document
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
Notion de signature électronique
But des signatures manuscrites :
prouver l’identité de leur auteur et/ou
l’accord du signataire avec le contenu du document
La signature éléctronique dépend du signataire et du document !
Propriétés d’une signature éléctronique
Authentique : convainc le destinataire que le signataire a
délibérément signé un document
Infalsifiable
Non réutilisable : attachée à un document donné
Inaltérable : toute modification du document est détectable
Non reniable : le signataire ne peut répudier le document
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
Notion de signature électronique (2)
Intégrité + Authentification + Non-répudiation
Parallèle avec les classes d’algorithmes de chiffrement :
les MAC sont symétriques
les signatures sont asymétriques
Réalisation pratique :
Cryptosystèmes à clef secrète (et arbitre)
Cryptosystèmes à clef publique + fonction de hachage
On préfère en effet signer le hachage d’un document !
Taille fixe suffisamment petite pour être utilisée efficacement
par un cryptosystème à clé publique
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
Notion de signature électronique (3)
Protocole de signature électronique sûr :
Impossible de falsifier la signature s(M) d’un document M
sans connaitre la clef secrète K (resp. Kd )
même en disposant de signatures d’autres documents.
Attention : impossibilité pratique
Il existe d’autres conditions nécessaires de sécurité !
relève davantage des architectures de sécurité des
cryptosystèmes à clef publiques (PKI) ou du secret entourant
la clé secrète.
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
Idée générale des signatures électroniques (4)
Signature utilisant un cryptosystème à clef publique :
Alice signe M en utilisant :
Document Fonction de signature Document signé hM = H(M) le hachage de M
blablabbla
blablabbla
Fonction Algorithme blablabbla
blablabbla
sa clé secrète Kd .
de de
Hachage Signature ALICE
la fonction de déchiffrement D.
Résultat : s(M) = DKd (hM )
Génération d’une paire
de clés Clé privée
Document signé : [M, s(M)]
Alice
Clé publique
Vérification de [M, s(M)] :
Document signé Fonction de vérification
Réponse
Signature
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)
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
Signature RSA
Génération des paramètres
Identique à la génération des clefs de RSA !
Alice choisit au hasard deux nombres premiers p et q.
Alice calcule n = p.q
Indicatrice d’Euler : ϕ(n) = (p − 1)(q − 1)
Alice choisit au hasard un entier e (impair) tel que
1 < e < ϕ(n) et pgcd(e, ϕ(n)) = 1
Alice calcule alors l’entier d tel que e.d ≡ 1 mod ϕ(n).
Clef publique : (n, e)
Clef secrète : d
On suppose disposer d’une fonction de hachage à sens unique H
connue publiquement.
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
Signature RSA (2)
Génération d’une signature RSA
Alice souhaite signer un document M
Alice calcule hM = H(M) (on suppose 0 ≤ hM < n)
Signature de M : s(M) = (hM )d mod n
Le document signé est alors [M, s(M)].
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
Signature RSA (3)
Vérification d’une signature RSA
Bob reçoit un document signé [M̃, s(M)] d’Alice.
Ce document est potentiellement altéré/illégitime
Il récupère la clé publique d’Alice (n, e)
Il calcule h˜M = H(M̃)
Il vérifie l’identité : s(M)e ≡ h˜M mod n
En effet : s(M)e ≡ (hM )e.d mod n ≡ hM mod n = hM et si le
document est authentique : hM = h˜M .
La sécurité est donc celle du cryptosystème RSA.
Présentation simpliste et en l’état sujette à des attaques
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
Signature El Gamal
Génération des paramètres
Alice choisit :
un nombre premier p
g une racine primitive modulo p.
un entier a ∈ {1, . . . , p − 2} au hasard
Elle calcule alors A = g a mod p.
Clef publique : (p, g , A).
Clef secrète : a.
On suppose disposer d’une fonction de hachage à sens unique H
connue publiquement.
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
Signature El Gamal (2)
Génération d’une signature El Gamal
Alice souhaite signer un document M
Alice calcule hM = H(M) (on suppose 0 ≤ hM < p)
Elle choisit au hasard un entier k ∈ [1, p − 2] tel que
pgcd(k, p − 1) = 1 (=⇒ k −1 ∈ Zp−1 existe).
Signature de M : s(M) = (r , s) avec
(
r = g k mod p
s = k −1 (hM − a.r ) mod (p − 1)
Le document signé est alors [M, s(M)].
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
Signature El Gamal (3)
Vérification d’une signature El Gamal
Bob reçoit un document signé [M̃, s(M)] d’Alice.
Rappel : s(M) = (r , s)
Ce document est potentiellement altéré/illégitime
Il récupère la clé publique d’Alice (p, g , A)
Il calcule h˜M = H(M̃)
˜
Il vérifie l’identité : Ar r s ≡ g hM mod p
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
Sécurité des signatures El Gamal
Sécurité intimement liée à DLP dans F∗p
Résolution de DLP dans F∗p
=⇒ possibilité de calculer a à partir de A
=⇒ possibilité d’impersonaliser Alice
Attention au choix des paramètres.
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
Génération des paramètres
Alice génère un nb premier q de 160 bits (2159 ≤ q < 2160 )
Elle génère un nb premier p de 512 à 1024 bits vérifiant :
(
∃t ∈ [0, 8] / 2511+64t < p < 2512+64t
(1)
q|(p − 1)
Soit g̃ une racine primitive modulo p
Un générateur du sous-groupe de F∗p d’ordre q est alors
p−1
g = g̃ q mod p
(1) assure que F∗p possède un sous-groupe d’ordre q
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 (2)
Génération des paramètres (suite)
Une fois choisis (p, q, g ) :
Alice choisit a ∈ {1, . . . , q − 1}
Elle calcule A = g a mod p
Clef publique : (p, q, g , A).
Clef secrète : a
Le problème du logarithme discret sous-jacent se passe dans le
groupe d’ordre q.
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 (3)
Génération d’une signature DSA
Alice souhaite signer un document M :
Alice calcule hM = H(M) (on suppose 1 ≤ hM < q − 1)
Elle choisit un entier k ∈ {1, . . . , q − 1}
Signature de M : s(M) = (r , s) avec
(
r = (g k mod p) mod q
s = k −1 (hM + a.r ) mod q
Le document signé est alors [M, s(M)].
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 (4)
Vérification d’une signature DSA
Bob reçoit un document signé [M̃, s(M) = (r , s)] d’Alice.
Il récupère la clé publique d’Alice (p, q, g , A)
Il vérifie que les formats sont respectés : 1 ≤ r , s ≤ q − 1
Il calcule h˜M = H(M̃)
Il vérifie l’identité :
h −1 −1 i
˜
r ≡ g s hM mod q . Ars mod q
mod p mod q.
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
Ce qu’il reste à voir...
Comment récupérer et être sûr d’une clé publique ?
En effet, Oscar peut se faire passer pour le destinataire !
Il faut un moyen de prouver la correspondance entre une clé
publique et une personne !
Solution : Architecture PKI !
Utilisation de la cryptographie pour sécuriser les
infrastructures et leurs accès
Kerberos
Systèmes hybrides : PGP/SSH
Legislation française sur la cryptologie
Programmation sécurisée
Sébastien VARRETTE Fonctions de Hachage et Signatures Electroniques