log discret, elgamal et hachage - i3s.unice.frbmartin/5-cs.pdflogarithme discret chiffre...

60
Logarithme discret Chiffre d’ElGamal Hachage Utilité 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

Upload: tranbao

Post on 18-Feb-2019

225 views

Category:

Documents


1 download

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