log discret, elgamal et hachage - i3s.unice.frbmartin/5-cs.pdflogarithme discret chiffre...
TRANSCRIPT
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Log discret, ElGamal et hachage
Bruno MARTIN,Université de Nice - Sophia Antipolis
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 1
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Un autre problème difficile : DLP
(DLP) de y en base g :problème de logarithme discret DLPInstance : g , y ∈ G , groupe fini
Question : trouver x tel que g x ≡ y dans G .
ou, pour p un grand premier, g un générateur de G = Z?p, g x ≡ y
mod p et x = logg (y) mod p.
Plus généralement, tout élément y ∈ G possède un logarithmediscret en base g si et seulement si G est cyclique de générateur g .
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 2
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Exemple
Soit G = Z?7 un groupe cyclique. Pour le logarithme en base 2,
seuls 1, 2 et 4 possèdent un logarithme discret. En base g=3, onobtient le tableau suivant :
nombre y 1 2 3 4 5 6logarithme 6 2 1 4 5 3
Par exemple pour nombre = 1 et log = 6. Cela signifie quelog3 1 = 6, ce qu’on vérifie par 36 mod 7 = 1.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 3
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Calcul du logarithme discret – Shanks
S’applique à tout groupe fini G .Complexité en temps O(
√|G | log |G |) en espace O(
√|G |)
Idée : construire deux listes de puissances de g :une liste de petits pas {g i : i = 0..d
√ne − 1} avec n = |G |
une liste de pas de géant{
y(
g−d√
nej)
: j = 0..d√
ne}
.
Puis trouver un terme commun aux 2 listes. Ainsi,
g i0 = y(g−j0d√
ne) et m = i0 + j0d√
ne
Calcul du log. discret de groupes de faible cardinalité facile,opération difficile quand le cardinal de G croît.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 4
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Exemple
On travaille dans Z×113 =< 3 > d’ordre n = 112 ;
√n = r = 11.
Quel est le log. discret de y = 57 en base g = 3 ?Liste (non ordonnée) des petits pas, forme (exposant, valeur) :
B = {(0, 1), (1, 3), (2, 9), (3, 27), (4, 81),(5, 17), (6, 51), (7, 40), (8, 7), (9, 21), (10, 63)}
Liste (non ordonnée) des pas de géant, forme (exposant, valeur) :
L = {(0, 57), (1, 29), (2, 100), (3, 37), (4, 112), (5, 55), (6, 26),(7, 39), (8, 2), (9, 3), (10, 61), (11, 35)}
3 commun aux 2 listes, i0 = 1 dans B et j0 = 9 dans L. Log.discret : x = i0 + r .j0 = 100. Vérification : g x mod 113 = 57.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 5
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Shanks
Algorithme :Entrée : n le cardinal de G ,g et y ∈ GSortie : logarithme discret de y en base g dans G . r := d
√ne
Construire la liste B := {g i : i = 0..d√
ne − 1}Construire la liste L := {y(g−d
√nej) : j = 0..d
√ne}
Trier les listes B et L selon un ordre sur les g i et les g−rj .Trouver i0 et j0 tel que : g i0 = yg−rj0 .RETURN(i0 + j0r).Preuve :Pour r = d
√ne, on a :
Construction des listes : r + 1 + r opérations de groupes : O(r)Tri des listes : O(r log(r))Recherche d’un même élément dans deux listes triées : O(log(r)) �
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 6
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Plan
1 Logarithme discret
2 Chiffre d’ElGamal
3 HachageParadoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
4 Utilité des fonctions de hachageVérification de mots de passeComparaison par hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 7
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Le chiffre d’ElGamal [1]
Repose sur le problème du logarithme discret.
1 choisir p premier t.q. DLP est dur dans Zp?
2 choisir α ∈ Zp? un élément primitif
3 choisir 2 ≤ a < p − 1, la clé privée4 calculer β ≡ αa mod p5 clé publique : p, α, β.
Chiffrer : E : (x , k) 7→ (y1 = αk mod p, y2 = xβk mod p)pour k aléatoire secret de Z?
p et x ∈ ZpDéchiffrer : (y1, y2) 7→ y2(y1
a)−1 mod p
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 8
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Fonctionnement
E : (x , k) 7→ (y1 = αk mod p, y2 = xβk mod p)
k aléatoire secret de Z?p.
Clair « masqué » par βk .Valeur de αk transmise comme partie du chiffré comme y1.
Bob, avec sk a, calcule βk = αak . Comme β = αa, il calcule(αk)a = βk . Reste à multiplier y2 par (βk)−1 mod p = x .
Observons que le crypto est deux fois plus long que le clair.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 9
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Exemple
Soit p = 2579, α = 2 a = 765. β = 2765 mod 2579 = 949.Alice veut transmettre x = 1299 à Bob.Elle choisit k ∈ Z?
p = 853 et calcule ( mod 2579) :
y1 = 2853 = 435 y2 = 1299.(949)853 = 2396
Bob reçoit (435, 2396) et connait a = 765. Il calcule (y1)a
mod p = 435765 mod 2579 = 2424, cherche l’inverse mod p parEuclide étendu : (2424, 2579) = −599.2424 + 563.2579 = 1⇔(βk)−1 = −599 = 1980.Puis il calcule 2396.1980 mod 2579 = 1299.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 10
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Difficulté du logarithme discret
G = 〈g〉 d’ordre p − 1, ∀y ∈ G ,∃!x : g x = y (on note x = logg y)DLP : donnés g , y , calculer x dans G .
G algo polytime : entrée 1n retourne G = 〈g〉 d’ordre p − 1.Expérience DLogA,G(n) :
lance G(1n) pour avoir (G , p, g) (générateur de groupe)y u← GA reçoit (G , p, g , y) et retourne xrésultat expérience 1 si g x = y sinon 0
Définition (Hypothèse DH)Le pb du log discret est difficile pour G si pour tout algo A PPT, ilexiste negl : Pr(DLogA,G(n) = 1) ≤ negl(n)
Les problèmes CDH et DDH permettent de construire de bons G
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 11
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Computational Diffie Hellman CDH
〈g〉 = G y1, y2 ∈ G DHg (y1, y2)∆= g logg y1 logg y2
y1 = g x y2 = g z ⇒ DHg (y1, y2) = g xz = (y1)z = (y2)
x
CDH = calculer DHg (y1, y2) pour y1, y2 choisis au hasard
Si DLP relatif à G facile, CDH aussiSi log discret difficile, CDH difficile ?
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 12
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Decisional Diffie Hellman DDH
DDH revient à distinguer DHg (y1, y2) d’un élément aléatoire de G :pour y1, y2
u← G et y ′ une solution, DDH revient à décider siy ′ = DHg (y1, y2) ou si y ′ u← G .
DéfinitionDDH est difficile relativement à G si, pour tout algo D PPT, ilexiste negl. tq
|Pr(D(G , p, g , g x , g y , g z)=1)−Pr(D(G , p, g , g x , g y , g xy )=1)| ≤ negl(n)
pour G(1n) qui renvoie (G , p, g) et x , y , z u← Zp
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 13
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Lemme utile
Le multiple d’un élément y tiré uniformément est unif. distribué.Ou, y ′ ne contient pas d’information sur m.
LemmeG groupe fini, m ∈ G qcq. Les distrib. de probabilité relatives à :
y u← G et y ′ := m · yy ′ u← G
sont identiques. Autrement dit, ∀y ∈ G , Pr(m · y = y) = 1/]G
y ∈ G qcq. Alors Pr(m · y = y) = Pr(y = m−1 · y).Comme y u← G , la proba. pour que y soit un élément donné de Gest 1/]G
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 14
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
ElGamal (rappel)
Le chiffre d’ElGamal Π est :Gen :1n 7→ G(1n) 7→ (G , p, g), a u← Z?
p, β := ga ;pk = (G , p, g , β) et sk = (G , p, g , a)
E : reçoit (pk, m) ; k u← Z?p ; renvoie c = (y1, y2) = (gk , mβk)
D : reçoit sk et c = (y1, y2) ; renvoie m := y2(ya1 )−1
ThéorèmeSi DDH est difficile pour G, ElGamal est IND-CPA.
Comparer fonctionnement de Π à celui de Π′ qui ressemblesyntaxiquement à Π en remplaçant toutes ses sorties par des VA.
On montre IND-EAV plutôt que IND-CPA (équivalent).
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 15
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
IND-EAV : PubKEAVA,Π ≡PubKCPA
A,Π
1 Gen(1n) produit (pk, sk)
2 A reçoit pk et retourne m0, m1 ∈ M(pk) de même long.3 b u← {0, 1} ; c ← Epk(mb) et envoyer c à A4 A retourne un bit b′
5 A réussit l’expérience (i.e. renvoie 1) ssi b = b′
DéfinitionΠ est CPA-sûr si, pour tout adversaire A PPT, il existe negl(.) tq :
Pr(PubKCPAA,Π = 1) ≤ 1
2+ negl(n)
On pose : ε(n) = Pr(PubKEAVA,Π (n) = 1) qu’il faut évaluer.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 16
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Le chiffre Π′, pas déchiffrable mais convenable pour A
Gen’ =Gen rend pk = (G , p, g , β) et sk = (G , p, g , a)
E : donné (pk, m) ; y , z u← Z?p ; rend c = (y1, y2) = (g y , mg z)
Par le lemme :y2 unif. distribué sur G et indépendant de my1 est unif. distribué et indépendant de m.
On ne tire pas d’information sur m à partir de c :
Pr(PubKEAVA,Π′(n) = 1) =
12
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 17
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Algo D PPT qui résout DDH relativement à G
D reçoit pk et c :(G , p, g , g x = β, g y = y1, g3 = y2) avec
g3 =
{g xy
g z où x , y , z u← Z?p.
pk := (G , p, g , g x = β) et appelle A pour obtenir m0, m1
b u← {0, 1} ; y1 := g y et y2 := mbg3
donne (y1, y2) à A qui renvoie b′
résultat expérience 1 si b′ = b sinon 0
Deux comportements possibles pour D selon g3
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 18
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
g3 = g z A, appelé par D fonctionnera c ds PubKEAVA,Π′(n) sur
un chiffré de la forme (g y , mg z). Donc
Pr(D(pk, g y , g z) = 1) = Pr(PubKEAVA,Π′ (n) = 1) = 1/2
g3 = g xy A, appelé par D fonctionnera c ds PubKEAVA,Π (n) sur
un chiffré de la forme (g y , m(g x)y ). Donc
Pr(D(pk, g y , g xy ) = 1) = Pr(PubKEAVA,Π (n) = 1) = ε(n)
par hyp. DDH difficile pour G donc ∃ negl. tq negl(n)≥∣∣∣∣ Pr(D(pk, g y , g z) = 1)−Pr(D(pk, g y , g xy ) = 1)
∣∣∣∣ = |1/2− ε(n)| ⇒ ε(n) ≤ 1/2 + negl(n)
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 19
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Partage des paramètres
Dans la définition d’ElGamal, on demande aux sujets de lancer Gpour engendrer G , p, g . En pratique, ces paramètres sont souventengendrés une fois pour toutes.P.e. un admin système peut fixer ces paramètre pour un paramètrede sécurité donné n et tout le monde peut partager ces valeurs.
Dans un BSD sous /etc/moduli. Demander man moduli
DESCRIPTION The /etc/moduli file contains primenumbers and generators for use by sshd in theDiffie-Hellman Group Exchange key exchange method.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 20
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Plan
1 Logarithme discret
2 Chiffre d’ElGamal
3 HachageParadoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
4 Utilité des fonctions de hachageVérification de mots de passeComparaison par hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 21
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Classification
MDC ou MIC (message integrity code) à IV=0fonctions de hachage à sens unique (OWHF)fonctions de hachage résistantes aux collisions (CRHF)
MACassure authentification et intégritéIV6=0
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 22
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Conditions à satisfaire
Une fonction de hachage h calcule
z = h(m)
où m message de taille arbitraire et z empreinte de taille fixe.h à sens unique, i.e.
h(m) rapide à calculer à partir de mz difficile à inverser.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 23
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Résistance aux collisions
collision : 2 mots distincts (x , x ′) tels que h(x) = h(x ′).h est
faiblement résistante aux collisions si, pour x donné, il estdifficile de calculer une collision.fortement résistante aux collisions s’il est difficile decalculer la moindre collision (x , x ′).préimage-résistante si, donné z , il est difficile de trouver unx tq h(x) = z2e préimage-résistante si, donnés h, x et z = h(x), il estdifficile de trouver un x ′ tq x 6= x ′ et h(x) = h(x ′)
Difficile = sécurité calculatoire (sait-on faire mieux ?)
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 24
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Relations entre les propriétes de résistance
1 résistance aux collisions ⇒ 2e préimage-résistance2 résistance aux collisions ne garantit pas la préimage résistance3 pour MAC hk ; hk pour des attaques CPA doit être à la fois :
2e préimage-résistante et résistante aux collisionspréimage-résistante
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 25
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Formalisation d’une fonction de hachage
DéfinitionUne fonction de hachage est la donnée de 2 algos PPT (Gen, h)qui satisfont :
Gen est un algo PPT reçevant 1n et produisant s utile pourchoisir une fonction de hachage au sein d’une famille∃` polynôme tq hs sur l’entrée x ∈ {0, 1}? fourniths(x) ∈ {0, 1}`(n) où n est la valeur du paramètre de sécuritéimplicite dans s
Si hs n’est définie que pour des entrée x ∈ {0, 1}`′(n) pour`′(n) > `(n), (Gen, h) est une fonction de hachage à longueur fixéesur des entrées de taille `′(n) (fonction de compression).
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 26
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Formalisation de la sécurité
Définition (Expérience de recherche de collisions Hash-collA,Π(n))1 Engendrer s par Gen(1n)2 l’adversaire A reçoit s et construit x , x ′. Si Π est une fonction
de compression d’entrées de taille `′(n), x , x ′ ∈ {0, 1}`′(n)
3 la sortie de l’expérience est 1 ssi x 6= x ′ et hs(x) = hs(x ′).Dans ce cas, A a trouvé une collision.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 27
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Formalisation de la résistance aux collisions
DéfinitionUne fonction de hachage Π = (Gen,h) est résistante aux collisionssi pour tout adversaire A PPT, il existe une fonction negl tq
Pr(Hash-collA,Π(n)) ≤ negl(n)
C’est la plus forte condition de sécurité qu’on puisse demander àune fonction de hachage.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 28
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Attaques
contre MDC :OWHF : donné z , trouver x tq h(x) = z .CRHF : trouver deux entrées x 6= x ′ tq h(x) = h(x ′) (attaquedes anniversaires).
contre MAC :sans connaître k, donnés (xi , h(xi )), calculer x , hk(x)), x 6= xiKPA, CPA, . . .falsification sélective et existentielle
(beaucoup plus de résultats de sécurité prouvée)
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 29
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Objectifs de sécurité
Type de H Conception sécurité AdversaireOWHF préimage-res 2n trouve préimage
2-préimage-res 2n trouve 2e préimageCRHF rés. collisions 2n/2 trouve collisionMAC key non-recovery 2n trouve clé MAC
sécurité calc. min{2n, 2](k)} trouve nouv. MAC.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 30
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Quelques attaques de base
tentatives répétées : une fonction de hachage de long. n a unerobustesse idéale si elle satisfait les bornes sup. de OWHF etCRHFrecherche exhaustive de clé MAC (KPA) demande 2]k
opérationsdeviner MAC demande 2n opérationsprécalcul d’empreintes http://gdataonline.com/
parallélisation pour 2epréimage
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 31
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Attaque par force brute
En O(|D|) sur h : {0, 1}k ×D → {0, 1}n tq (D, <) = (D1, . . . Dd).
Algorithme
x1U← D ; y := hk(x1)
pour i := 1 . . . d fairesi (hk(Di ) = y ∧ x1 6= Di ) alors
retourne x1, Difsi
retourne echec
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 32
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Paradoxe des anniversaires
Donnée : B = (b1, . . . , bk) ∈ {1, 2, . . . , n}k .Problème : Proba p qu’il existe au moins 2 élts identiques de B ?
1− p = q = 1(
1− 1n
) (1− 2
n
). . .
(1− k − 1
n
)=
k−1∏i=1
(1− i
n
)1 proba de tirer b1 ;
(1− 1
n
)proba de tirer b2 6= b1 car P(b2 = b1) = 1
n ;(1− i
n
)proba de tirer bi 6= b1, . . . , bi−1
Comme 1− x ≤ e−x : q ≤∏k−1
i=1 e−in = e−
1n
Pk−1i=1 i = e−
(k−1)k2n .
Passage au logarithme : 2n ln q = −(k − 1)k ⇔ 2n ln 1q ∝ k2
Pour p > 12 , k ≥
√2n ln 2 et k ∝ O(
√n) car
√2 ln 2 = 1, 17
Exemple : n = 365, k = 23 personnes. (n = 12, k = 5).Utilité : dimensionner la longueur n de l’empreinte d’une fonction dehachage pour éviter les collisions.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 33
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Attaque basée sur le paradoxe de h : {0, 1}? → {0, 1}n
Calculer et trier des couples (x , h(x)) pour détecter des collisions.Combien de couples pour en trouver 2 identiques parmi 2n à p > 1/2 ?Hyp : les images par h suivent une distribution uniforme.Pour k entrées on a p > 1/2 d’avoir une collision avec k ∝ O(
√2n) ≈ 2
n2
n 50 100 150 200k 25 50 75 100
En calculant > 2n/2 empreintes, on a une collision avec proba > 1/2.Pour que h soit CR, on choisit n pour que le calcul de 2n/2 images par hsoit irréaliste. A ce jour, n ≥ 128 voire même n ≥ 160.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 34
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Fonctions de hachage efficaces
Les plus courantes :
nom bits tours×étapes vitesse relativeMD5 128 4×16 1SHA 160 4×20 0,28
A quoi servent-elles et comment sont-elles construites ?
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 35
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Hachage par compression
Dans la plupart des algos, on découpe m en n blocs et on effectue :
MD5 MD5 MD5
bloc 1
valeurinitiale
bloc 2 bloc n
valeurhachée
message
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 36
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Construire une fonction de hachage cryptographique
A partir d’un chiffre symétrique ek , construire une fonction decompression :
g : {0, 1}m → {0, 1}n pour m, n ∈ N, m > n
Etendre la fonction de compression en fonction de hachage :
h : {0, 1}? → {0, 1}n pour n ∈ N
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 37
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Construction d’une fonction de compression
A partir de ek : {0, 1}n × {0, 1}n → {0, 1}non construit une fonction de compression
g : {0, 1}n × {0, 1}n → {0, 1}n pour n ∈ N
Le chiffre est utilisée soit directement s’il est résistant auxcollisions soit en le ńperturbantż un peu plus comme p.e.
g(k, x) = ek(x)⊕ xg(k, x) = ek(x)⊕ x ⊕ kg(k, x) = ek(x ⊕ k)⊕ xg(k, x) = ek(x ⊕ k)⊕ x ⊕ k
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 38
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Construction d’une fonction de hachage (Merkle)
Soit r = m − n > 1. On construit h : {0, 1}? → {0, 1}n à partir deg : {0, 1}m → {0, 1}n (compression).Soit x ∈ {0, 1}? et ` sa longueur en binaire.
compléter x avec des "0" : u = 0ix t.q. |u| ≡ 0 mod rcompléter ` avec des "0" : y = 0j` t.q. |y |≡0 mod r−1découper y en blocs de r − 1 bits et ajouter un "1" au débutde chacun des blocs pour former le mot vconstruire w = u0r v composé de t blocs de longueur r .
Exempler = 4, x = 11101, ` = 101. On forme u = 0001 1101, v = 1101.
w = 0001 1101 0000 1101 = w1w2w3w4 (t = 4)
H déf. inductive : H0 = 0n ; Hi = g(Hi−1wi ), 1 ≤ i ≤ t, h(x) = HtBruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 39
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Propositionh est résistante aux collisions si g l’est aussi.
Soit (x , x ′) une collision de h, on construit une collision de g .(x , x ′) = (w1 . . . wt , w ′
1 . . . w ′t) obtenues de H0, . . . , Ht et H ′
0, . . . , H ′t′ .
On suppose t ≤ t ′. Puisque (x , x ′) est une collision de h, Ht = H ′t′ .
Hyp : ∃i , 0 ≤ i < t tq Ht−i = H ′t′−i et Ht−i−1 6= H ′
t′−i−1. AlorsHt−i−1wt−i 6= H ′
t′−i−1w ′t′−i et
g(Ht−i−1wt−i )=Ht−i =H ′t′−i =g(H ′
t′−i−1w ′t′−i ) collision de g .
Hyp : Ht−i = H ′t′−i pour 0 ≤ i ≤ t. Alors, ∃i , 0 ≤ i < t t.q.
wt−i 6= w ′t′−i soit pcq |w | 6= |w ′| soit pcq w 6= w ′ (sinon h
serait sans collision). Alors,g(Ht−i−1wt−i ) = Ht−i = H ′
t′−i = g(H ′t′−i−1w ′
t′−i ) etHt−i−1wt−i 6= H ′
t′−i−1w ′t′−i .
Dobbertin a montré que g de MD5 n’est pas robuste aux collisions.Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 40
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Plan
1 Logarithme discret
2 Chiffre d’ElGamal
3 HachageParadoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
4 Utilité des fonctions de hachageVérification de mots de passeComparaison par hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 41
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Fonctionnement MD5
MD5 suit la construction MD et sa sécurité est équivalente à cellede sa fonction de compression MD5c qui produit 128 bitsd’empreinte avec en entrée :
CV : 128 bits de valeur de chaînage = cv0, cv1, cv2, cv3
bloc M de 512 bitsSur un message M = M0M1 . . . Mk découpé en blocs de 512 bits,MD5(m) est calculé inductivement par Hi+1 = MD5c(Hi , Mi ) pour1 ≤ i ≤ k avec MD5(M)=Hk+1
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 42
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
MD5cPar 64 valeurs d’étapes intermédiaires Qi 0 ≤ i < 64 (4 tours de 16étapes) tq :
Ti := Φ(Qi−1, Qi−2, Qi−3) + Qi−4 + wi + yjQi := Qi−1 + (Ti << si )Q4 := cv0, Q3 := cv3, Q2 := cv2, Q1 := cv1
si et yi ctes dépendant de l’étape, wi le iebloc de l’expansion initiale dumessage (pour 0 ≤ i < 64, wi = mj pour un certain 0 ≤ j < 16).L’opération + est mod 232 et x << y décalage circulaire x de ypositions à gauche. Initialisation CV cte.
Φi (x , y , z) = F (x , y , z) = (x ∧ y) ∨ (¬x ∧ z) 0 ≤ i < 16Φi (x , y , z) = G (x , y , z) = (x ∧ z) ∨ (y ∧ ¬z) 16 ≤ i < 32Φi (x , y , z) = H(x , y , z) = x ⊕ y ⊕ z 32 ≤ i < 48Φi (x , y , z) = I (x , y , z) = y ⊕ (x ⊕ ¬z) 48 ≤ i < 64
A la fin, MD5c calcule :
cv ′0 := cv0 + Q60, cv ′1 := cv1 + Q63, cv ′2 := cv2 + Q62, cv ′3 := cv3 + Q61
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 43
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Attaque de Wang et al [4]
δ0 = (0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0, 215, 0, 0, 231, 0)δ1 = (0, 0, 0, 0, 231, 0, 0, 0, 0, 0, 0,−215, 0, 0, 231, 0)
M := M0M1 de 1024 bits. Pour chaque M, soit M ′0 = M0 + δ0
(idem pour M ′1) et M ′ := M ′
0M ′1 (additions mod 232).
L’attaque de [4] décrit un algorithme efficace pour trouver de telsM tq MD5(M)=MD5(M ′) en pistant les différences dans lesvaleurs étapes intermédiaires par une attaque différentiellegénéralisée.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 44
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Si Qi (resp Q ′i ) est la sortie de la ie étape du calcul de M (resp
M ′), Wang produit 128 valeurs (64 par bloc) ai tq si leur méthodetrouve une collision, Q ′
i − Qi = ai pour tous les Qi calculéspendant MD5c(M0) et MD5c(M ′
0) et Q ′i − Qi = ai+64 pour les Qi
calculés pendant MD5c(M1) et MD5c(M ′1). Ce sont les différentiels
des valeurs ai . Elle donne 4 valeurs supplémentaires qui fixent lesdifférentiels pour les CV ie les sorties intermédiares des fonctionsde compression ou les sorties de MD5c(M0) et MD5c(M ′
0).L’article ne décrit pas la manière de trouver les ai . Cependant, ilsdécrivent comment trouver efficacement de tels M en posant lesconditions sur les Qi . Si ces conditions sont satisfaites, alors lesdifférentiels occurrent avec forte proba. Les détails ont été ensuitedécrits par plusieurs autres chercheurs.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 45
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Recherche de collisions
Algorithme
tant que non collision fairechercher M qui satisfait la plupart des conditions sur Qi(germes tirés aléatoirement puis méthodes dét.)calcul Qi , Q ′
i pour vérifier la correction des différentielscollision := (différentiels-validés == vrai)
ftqretourne M
algo exécuté pour chaque bloc de M. Trouve d’abord un bloc M0qui satisfait les différentiels puis un bloc M1.Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 46
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Notes bibliographiques
Beaucoup d’améliorations de cette attaque !Klima [2] a construit un premier algorithme améliorantl’attaque de Wang et al. et l’a amélioré : http://cryptography.hyperlink.cz/MD5_collisions.html
Joscak http://cryptography.hyperlink.cz/2006/diplomka.pdf :mémoire de master (algèbre) avec étude de la complexité desattaquesStevens http://www.win.tue.nl/hashclash/ freewares etmémoire de master (p.e. pour des collisions X509)et il y en a encore d’autres (attaques en qques minutes)
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 47
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Paradoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
Et maintenant ?
Avenir du hachage :MD5 : no futureSHA-0 : collisions touvéesSHA-1 ; recherche collisions en 269 ; recherche collisions(over), http://boincstats.com/page/project_news.php?pr=sha1NIST : nouveau concours pour fonctions de hachagehttp://csrc.nist.gov/groups/ST/hash/index.html ;paramètres demandés (deadline était 20081031 !) :
conception : famille de fonctions de 224, 256, 384 et 512 bitsde sortiecompatible avec les standards cryptographiquessécurité : CR, OW, autres critères de résistanceefficace : au moins aussi rapide que SHA-256
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 48
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Plan
1 Logarithme discret
2 Chiffre d’ElGamal
3 HachageParadoxe des anniversairesConstruction de Merkle-DamgardAttaques contre MD5
4 Utilité des fonctions de hachageVérification de mots de passeComparaison par hachage
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 49
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Utilisation
mécanisme de base dans les protocoles cryptographiquesoutil essentiel pour des applications
cryptographiqueset autres...
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 50
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Vérification de mots de passe
mdp de A est p et le serveur mémorise p = h(p)
A→ B : p sur canal sûr ; B vérifie h(p) = p
sûr tq Eve qui obtiendrait p ne peut retrouver p (OWHF)attaques possibles par dictionnaire.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 51
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Identification & authentification
identification procédé qui permet de vérifier l’identité d’une entité.authentification similaire ; permet à une entité d’accéder à uneressource (comme un compte internet). L’authentification ne metpas nécéssairement en jeu l’identification d’une entité. Elledétermine si l’entité est autorisée à accomplir une certaine tâche.Principales différencesPour l’identification, le vérificateur teste l’information présentée enfonction de toutes les entités connues ; pour l’authentification, il faut quel’information soit vérifiée par une seule entité précédemment identifiée.L’identification doit identifier de manière unique une entité,l’authentification ne requiert pas l’unicité.Exemple : une personne qui se connecte à un compte partagé n’est pasidentifiée de façon unique mais en connaissant le mot de passe partagé,elle est authentifiée comme un utilisateur du compte.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 52
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Mots de passe jetables de Lamport [3]
Application du hachage pour le service de contrôle d’accès.Accès distant : identification par login/ mot de passe. Un piratepeut découvrir le mot de passe de l’utilisateur de trois manièresdifférentes :
en accédant aux informations contenues au sein du système,par exemple en accédant au fichier des mots de passe ;en interceptant l’envoi du mot de passe par l’utilisateur parl’espionnage de la ligne de connexion ou par un programmed’espionnage sur l’ordinateur de l’utilisateur ;par la divulgation du mot de passe de l’utilisateur si ce derniera choisi un mot de passe qu’il est facile de deviner.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 53
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Remèdes
conserver les mots de passe chiffrés. C’est ce qui est réalisé àl’heure actuelle dans la plupart des systèmes.ne pas utiliser un unique mot de passe mais une suite de motsde passe. Méthode utilisée dans les systèmes à mot de passejetables (OTP : One time passwords) comme S/Key, Opie ouencore LogDaemon en faisant appel à une fonction de hachagecryptographique.De plus en plus appel à des systèmes biométriques(empreintes vocales, digitales ou rétiniennes).
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 54
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Fonctionnement des OTP
pi=hN-i(s)
pN=h0(s)=s
p1=hN-1(s)
hN(s)
hN-i+1(s)=h(pi)
h(s)
connu dusystème
fourni parl'utilisateur
loginitérationde h
1
0
iN-i
N
N-1
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 55
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Fonctionnement des OTP
On fixe N nombre maximal de connexions et s secret initial. Lesystème et l’utilisateur partagent soit une fonction à sens uniquesoit une fonction de hachage cryptographique h.Le ie mot de passe pi est hN−i (s). La suite des N mots de passede connexion fournis par l’utilisateur est :
hN−1(s), hN−2(s), . . . , h(h(h(s))), h(h(s)), h(s), s
et celle du système pour identifier l’utilisateur par :
hN(s), hN−1(s), . . . , h(h(h(s))), h(h(s)), h(s)
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 56
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Fonctionnement des OTP
Connexion i/N ; connus du système : hN−i+1 et i n◦ de connexion.
Demande de connexionSystème envoie un défi : numéro de connexion, iutilisateur utilise h en fonction de s, N et i :calcule pi = hN−i (s) et le transmet au système
Vérification système reçoit pi = hN−i (s), calculeh(pi ) = h(hN−i (s)) = hN−i+1 qu’il connaît. S’il y aégalité, il accepte la connexion et mémorise la valeurpi reçue de l’utilisateur pour la prochaine connexion.
Chaque des mots de passe est la valeur requise par le système pourla connexion suivante.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 57
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Deux connexions consecutives
p50=h50(s)
p100=h0(s)=s
p1=h99(s)
h100(s)
h51(s)=h(p50)
h(s)
connu dusystème
fourni parl'utilisateur
loginitérationde h
1
0
5050
100
100-1
p49=h49(s)
p100=h0(s)=s
p1=h100-1(s)
h100(s)
h50(s)=h(p49)
h49(s)
connu dusystème
fourni parl'utilisateur
loginitérationde h
1
0
5149
100
100-1
h50(s)
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 58
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
Comparaison par hachage
A (resp. B) possède un grand fichier FA (resp. FB)ils veulent savoir si FA = FB
A→ B : h(FA) et B teste h(FA) = h(FB)
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 59
Logarithme discretChiffre d’ElGamal
HachageUtilité des fonctions de hachage
Vérification de mots de passeComparaison par hachage
T. ElGamal.A public-key cryptosystem and a signature scheme based on discrete logarihms.IEEE trans. on Info. Theory, 31(4) :469–472, 1985.
V. Klima.Finding MD5 collisions - a toy for a notebook, 2005.
L. Lamport.Password authentication with insecure communication.Communications of the ACM, 24(11) :770–772, 1981.
X. Wang and H. Yu.How to break MD5 and other hash functions.In EUROCRYPT, pages 19–35, 2005.
Bruno MARTIN, Université de Nice - Sophia Antipolis Log discret, ElGamal et hachage 60