Vous êtes sur la page 1sur 27

Algorithmes de hachage

Algorithmes de hachage

On constate des similitudes dans l'volution des fonctions de hachage et les chiffrements symtriques
Puissance croissante des attaques par force brute Ce qui pousse l'volution dans les algorithmes du DES lAES dans des chiffrements symtriques de MD4 et de MD5 Sha 1 et Ripemd 1 dans des - 60 algorithmes de hachage

Ces algorithmes ont tendance employer la mme structure itrative (Feistel) que les chiffrements symtriques
1 Cryptographie - 2

MD5 - prsentation
conu par Ronald Rivest (le R dans RSA)

MD5

Le dernier dune srie (MD2, MD4) produit un condens de 128 bits tait jusqu rcemment l'algorithme de hachage le plus largement rpandu
La cryptanalyse et lattaque par force brute lon affaibli

Spcification Internet : RFC 1321

Cryptographie - 4

MD5 - Vue d'ensemble


1. Compltion :
ajout de padding si ncessaire afin que le message ait une longueur de 448 mod 512

MD5 Vue densemble


4. Calcul itratif :
traiter le message par blocs de 512 bits 4 rondes de 16 oprations fonction du bloc (512), des buffers et de fonctions primitives Le rsultat (4*32 bits) est utilis pour linitialisation des registres suivants

2. Ajout de la longueur :
on ajoute la longueur relle du message (sur 64 bits) aprs les 448 bits ! 512 bits

3. Initialisation :
initialiser 4 buffers de 32 bits chacun (A,B,C,D)

5. Le rsultat final est obtenu en additionnant A,B,C,D

Hachage et signatures - 5

Hachage et signatures - 6

MD5 Vue densemble

MD5 - Rondes

Hachage et signatures - 7

Hachage et signatures - 8

MD5 - fonction de compression


chaque ronde a 16 itrations de la forme :
a = b+((a+g(b, c, d)+X[k]+T[i])<<<s) a, b, c, d se rapportent aux 4 buffers, mais sont utiliss selon des permutations variables
Note : cela ne met jour quun seul des buffers (de 32 bits) Aprs 16 tapes, chaque buffer a t mis jour 4 fois

MD5 - Algorithme
CV0 = IV CVq+1=32[CVq, RFI (Yq,RFH(Yq, RFG(Yq, RFF(Yq, CVq))))] MD = CVL-1 O :
IV : valeur initiale des registres ABCD Yq : le qe bloc de 512 bits du message L : le nombre de blocs de 512 bits dans le message CVq : variable chaine obtenue par la manipulation du qe bloc RFx : fonction primitive dpendante de la ronde en cours MD : rsultat final 32 : addition modulo 232
Hachage et signatures - 10

g(b, c, d) est une fonction non linaire diffrente dans chaque ronde (F,G, H, I) T[i ] est une valeur constante drive de sin <<< s : dcalage circulaire gauche (pour chaque buffer sparment) de s bits
Hachage et signatures - 9

MD5 - Opration lmentaire

MD5 - Calculs des valeurs


Valeurs initiales des registres : A : 01 23 45 67 B : 89 AB CD EF C : FE DC BA 98 D : 76 54 32 10 Primitives : F(b,c,d) = (b c) ( b d) G(b,c,d) = (b d) (c d) H(b,c,d) = b c d I(b,c,d) = c (b d) Valeurs pour X[k] i = itration, k= 1(i) = i 2(i) = (1+5i) mod 16 3(i) = (5+3i) mod 16 4(i) = 7i mod 16

Hachage et signatures - 12

Hachage et signatures - 11

MD4 - comparaison
prcurseur du MD5 produit galement des condenss de 128 bits a 3 rondes de 16 tapes contre 4 dans MD5 buts de conception :
Rsistant aux collisions (difficile de trouver des collisions) scurit directe (aucune problmes math.) rapide, simple, compact Favorise les systmes little endian (exple : les PCs)
Hachage et signatures - 13

Force du MD5
Le condens MD5 dpend de tous les bits du message avalanche Rivest prtend que La scurit est aussi bonne que possible Les attaques connues sont :
dpendance envers des Berson 92, Den Boer et Bosselaers 93, Dobbertin 96 Prsence de collision, attaque sur une ronde Pas dattaque concrte mais de plus en plus de faiblesses trouve

Conclusion : MD5 sera bientt vulnrable


Hachage et signatures - 14

Le Secure Hash Algorithm (SHA-1)


SHA a t conu par NIST et NSA en 1993, rvis 1995

SHA-1 (Secure hash algorithm)

Standard US pour usage avec le schma de signature DSA


norme : FIPS 180-1 (1995), Internet RFC3174 l'algorithme est SHA, la norme est SHS (secure hash standard)

produit des valeurs condenses de 160 bits actuellement l'algorithme gnralement prfr pour le hachage bas sur le design du MD4 avec quelques diffrences

15

Hachage et signatures - 16

SHA - Vue d'ensemble


1. Compltion :
le message condens doit tre de longueur 448 mod 512

2. Ajout de la longueur
une valeur code sur 64 bits

3. Initialisation
Initialiser 5 buffers de 32 bits (= 160 bits) A,B,C,D,E

4. Calcul itratif :
4 rondes de 20 itrations chacune Les rondes ont une structure similaire mais utilisent des fonction primitives diffrentes (f1,f2,f3,f4) Utilisation de constante additives Kt (0 t 79) Le rsultat est utilis pour initialiser les buffers du bloc suivant.

5. Le condens final constitue le condens attendu


Hachage et signatures - 17 Hachage et signatures - 18

SHA - Fonction de compression


chaque ronde a 20 tapes qui manipulent ainsi les 5 registres : (A,B,C,D,E) (E + f(t,B,C,D) + (A<<5) + Wt + Kt), A, (B<<30), C, D) O :
A,B,C,D,E se rapportent aux 5 registres t est le numro de l'tape f(t, B, C, D) est une fonction primitive non-linaire de la ronde pour ltape t Wt est driv du bloc de message(32 bits) Kt est une valeur additive

SHA - Fonction de compression

Hachage et signatures - 19

Hachage et signatures - 20

SHA - Fonction de compression


Fonctions primitives
Travaille sur 32 bits et fournit un rsultat sur 32 bits 0 t 19 20 t 39 40 t 59 60 t 79 f1=f(t,B,C,D) (B C)( B D) f2=f(t,B,C,D) B C D f3=f(t,B,C,D) (B C)(B D)(C D) f4=f(t,B,C,D) B C D

SHA - Calcul de Wt

Wt
0 t 15 : les 16 premires valeurs du bloc 16 t : Wt = ((Wt-16 Wt-14 Wt-8 Wt-3)<<<1)

Hachage et signatures - 21

Hachage et signatures - 22

SHA - Valeurs initiales


Registre :
A = 67452301 B = efcdab89 C = 98badcfe D = 10325476 E = c3d2e1f0

SHA-1 vs MD5
l'attaque par force brute est plus difficile (160 contre 128 bits pour MD5) non vulnrable toutes les attaques connues (compares MD4/5) un peu plus lent que MD5 (80 contre 64 tapes) conu comme simple et compact optimis pour CPU's big-endian (contre MD5 qui est optimis pour CPU's little-endian)

Kt
0 t 19 Kt=5a827999 20 t 39 Kt=6ed9eba1 40 t 59 Kt=8f1bbcdc 60 t 79 Kt=ca62c1d6

Hachage et signatures - 23

Hachage et signatures - 24

SHA-1 vs MD5

Revised Secure Hash Standard


Le NIST a publi une rvision : FIPS 180-2 Ajout de 3 algorithmes additionnels de hachage Sha-256, Sha-384, Sha-512 Conu pour la compatibilit avec la scurit accrue a fourni par le chiffrement AES La structure et le dtail est semblable Sha-1 Par consquent l'analyse devrait tre semblable

Hachage et signatures - 25

Hachage et signatures - 26

Comparaison des proprits de SHA

Algorithmes pour les MACs

1. Toutes les tailles sont mesures en bits. 2. La scurit se rapporte au fait quune attaque d'anniversaire sur un condens de message de taille n produit une collision avec un facteur d'approximativement 2n/2.

Hachage et signatures - 27

28

Fonction de hachage pour le calcul de MAC


Dsire de crer des MACs partir de fonction de hachage plutot que de chiffrement par bloc
Fonctions de hachage gnralement plus rapide Non limites par les contrles lexportation

Cahier des charges


Utiliser , sans modifications, des fonctions de hachage existantes Permettre un remplacement ais de la fonction de hachage au cas o des fonctions plus rapides ou plus sures seraient trouves ou exiges Prserver les performances initiales de la fonction de hachage Employer et manipuler les clefs de manire simple

Hachage incluant une clef avec le message Proposition originale :


HashSur = Hash(cl|Message) Quelques faiblesses ont t trouves dans ce schma

A men au dveloppement de HMAC


Hachage et signatures - 29 Hachage et signatures - 30

Correspondance avec ce CCH


HMAC traites les fonctions de hachage comme des black box.
La fonction de hachage devient un module Pas de modification apporter la fonction

Principe de lalgorithme
Soient :
H : la fonction de hachage IV : un vecteur dinitialisation M : le message (+ padding) Yi : ieme bloc de M L : le nombre de blocs de M b : le nombre de bits dans un bloc n : la longueur du condens produit K : la cl K+ : la cl padde une longueur b ipad : 0x36 (rpt b/8 fois)- opad : 0x5C (rpt b/8 fois)
Hachage et signatures - 32

Hachage et signatures - 31

Principe de lalgorithme
HMAC :
HMACk (M) = H[(K+ opad) || H[(K+ ipad) || M]]

En bref :
1. Padding de la cl :
Ajout de 0 gauche de K pour crer un flux de b bits (K+)

2. 3. 4. 5. 6. 7.

XOR de K+ et ipad pour produire Si (longueur b bits) Ajout de M Si Application de H ce flux XOR de K+ et opad pour produire So (longueur b bits) Ajoute du hash (etape 4) avec So Application de H au rsultat de ltape 6
Hachage et signatures - 33 Hachage et signatures - 34

Optimisations
Possibilit de prprocessing :
f(IV, (K+ ipad)) f(IV, (K+ opad)) f
fonction de compression utilise pour hacher Prend en argument une variable chane de n bits et un bloc de b bits Produit une variable chane de n bits

Ces quantits ne sont calcule qu linitialisation et quand la cl change Ces quantits se substituent IV dans la fonction de hachage
Hachage et signatures - 35 Hachage et signatures - 36

Scurit de HMAC
La scurit de HMAC est directement lie la fonction de hachage sous-jacente Attaquer HMAC exige
Soit une attaque de force brutale sur la clef utilise (2n essais) Soit une attaque d'anniversaire (2n/2mais puisque utilis avec une cl, on devrait observer un nombre trs grand de messages)

Signatures digitales

Choisir la fonction de hachage utiliser en se basant sur des contraintes de scurit et de vitesse
Hachage et signatures - 37 38

Signatures Digitale
On a regard l'authentification de message
mais n'aborde pas les questions de manque de confiance

Proprits des signatures digitales


Doit dpendre du message sign Doit employer une information unique propre l'expditeur
pour empcher la contrefaon et le dmenti

Les signatures numriques permettent de :


vrifier l'auteur, la date et l'heure de la signature authentifier le contenu de message tre vrifi par des tiers pour rsoudre des conflits

Doit tre relativement facile produire Doit tre relativement facile reconnatre et vrifier Doit tre mathmatiquement infaisable forger
avec de nouveau message pour une signature numrique existante avec une signature numrique frauduleuse pour un message donn

Par consquent, d'authentification additionnelles

elles incluent avec des

la fonction possibilits

Doit tre pratique stocker

Hachage et signatures - 39

Hachage et signatures - 40

Signatures Digitales Directes


Implique uniquement l'expditeur et le rcepteur Suppose que le rcepteur dispose de la cl publique de l'expditeur Signature numrique faite par l'expditeur signant le message entier ou le condens avec sa cl prive peut tre chiffre en utilisant la cl publique des rcepteurs Il est important de signer dabord et de chiffrer ensuite le message et la signature La scurit dpend de la cl prive de l'expditeur

Signatures digitales arbitres


comporte l'utilisation dun arbitre A
Il valide n'importe quel message sign Le date et lenvoie au destinataire

exige un niveau appropri de confiance en l'arbitre peut tre mis en application avec des algorithmes symtriques ou cls publiques l'arbitre peut ou ne peut pas voir le message

Hachage et signatures - 41

Hachage et signatures - 42

Techniques

Algorithmes de signatures

Hachage et signatures - 43

44

El Gamal : principe
Cl publique :
p premier, g < p y = gx mod p (y,g,p)

El Gamal : exemple
p = 11, g = 2, x = 8 y = gx mod p = 28 mod 11 = 3 PK = (3,2,11) Authentification : M = 5 , k=9 (9,10)=1 (ok)
a = gk mod p = 29 mod 11 = 6 Par Euclide :
M = (ax + bk) mod (p-1) 5 = (8*6 + 9*b) mod 10 b=3 signature = (a,b) = (6,3)

Cl prive
x<p

Signature
K tel que (k,p-1)=1 a = gk mod p b tel que M = (xa + kb) mod (p-1)

Vrification :
yaab mod p = gM mod p 3663 mod 11 = 25 mod 11

Vrification :
La signature est valide si yaab mod p = gM mod p
Hachage et signatures - 45

Hachage et signatures - 46

Un nouveau k chaque signature ou chiffrement Si plusieurs fois le mme k : retrouver x aisment

Digital Signature Standard (DSS)


Schma de signature FIPS 16 approuv par le govt US 8 Emploie l'algorithme de hachage SHA Conu par le NIST et la NSA dans le dbut des annes 90 Le DSS est la norme, DSA est l'algorithme Variante d'ElGamal et de Schnorr Cre une signature de 320 bits, mais avec une scurit quivalentes un chiffrement 512 1 - 024 bits La scurit dpend de la difficult de calculer des logarithmes discrets

DSA description de lalgorithme


p : p = 2L : nbre premier de L bits (512<L<1024) q : facteur premier de p-1, 160 bits g : g = h(p-1)/q mod p
h : h < - 1 h(p-1)/q > 1 p et

x:x<q y : y = gx mod p H(x) : fonction de hachage sens unique (SHA) Pk : y et Sk = x

Hachage et signatures - 47

Hachage et signatures - 48

p doit galement tre un multiple de 64

DSS - signature
Alice engendre k tq k < q
k doit tre alatoire, dtruit aprs utilisation, jamais rutilis

DSS - vrification
Bob vrifie la signature en calculant
w = s-1 mod q u1 = (H(M) * w) mod q
u2

Alice engendre
r = (gk mod p) mod q s = (k-1(H(M) + xr)) mod q

= rw mod q

v = ((gu1 * gu2) mod p) mod q

Si v = r, alors la signature est vrifie

r et s forment la signature Alice envoie (r, s) Bob

Hachage et signatures - 49

Hachage et signatures - 50

Comparaison des approches

Questions
Expliquer
MD5 et/ou SHA + comparaisons HMAC Signatures digitales : principes Signatures ElGamal et/ou DSS

Hachage et signatures - 51

Hachage et signatures - 52

Rfrences
http://www.secure hash a - lgorithm m5 s - 1 d - ha .co.uk/ http://www.bibmath.net/crypto/moderne/sigelec.php3 http://www.securiteinfo.com/crypto/hash.shtml http://www.ssh.fi/support/cryptography/introduction/signatur es.html

[schneier] ch 2, 18, 20 [stallings] ch 12,13

Hachage et signatures - 53

Vous aimerez peut-être aussi