Vous êtes sur la page 1sur 18

LES FONCTIONS DE HACHAGE

Ralis par: Encadr par :


Abderrahim KASSIMI Mr. Amine OMOR
PLAN :
DFINITION
POURQUOI HACHER?
FONCTIONS DE HACHAGE USUELLES
EXEMPLES
DESCRIPTION DU SHA-2
LES ATTAQUES HASH, LE SHA-1 ET LE SHA-2
LES TABLES DE HACHAGE
DFINITION :
Une fonction de hachage est aussi appele fonction de hachage sens unique ou "one-way
hash function" en anglais. Ce type de fonction est trs utilis en cryptographie, principalement
dans le but de rduire la taille des donnes traiter par la fonction de cryptage. En effet, la
caractristique principale d'une fonction de hachage est de produire un hach des donnes,
c'est--dire un condens de ces donnes. Ce condens est de taille fixe, dont la valeur diffre
suivant la fonction utilise : nous verrons plus loin les tailles habituelles et leur importance au
niveau de la scurit.
POURQUOI HACHER?
le but d'un condens est simple : reprsenter des donnes de faon certaine tout en rduisant
la taille utile qui sera rellement chiffre. prenons l'exemple de la cryptographie asymtrique;
tout le monde admet qu'elle est trs sure, fiable et durable. nanmoins, sa complexit (calcul
sur des nombres premiers de plusieurs centaines de chiffres par exemple) entraine une
invitable lourdeur d'emploi (charge cpu, etc...). on vite donc de l'utiliser pour de grandes
masses de donnes ou pour des chiffrements de flux.

par contre imaginez que vous souhaitiez envoyer un fichier par mail, mais que ce fichier est de
taille importante. vous souhaitez de plus rassurer le destinataire sur la provenance de ce fichier
(vous) et sur son contenu. plutt que de chiffrer votre fichier directement avec votre cl prive,
vous aller hacher votre fichier et chiffrer le condens obtenu avec votre cl prive. vous
enverrez ensuite votre fichier original ainsi que le condens chiffr (la signature) votre
destinataire.
FONCTIONS DE HACHAGE USUELLES

MD5
(message digest)

SHA-2 SHA-1
(secure hash algorithm2) (secure hash algorithm1)
MD5 : l'algorithme md5, pour message digest 5, est une fonction de hachage cryptographique
qui permet d'obtenir l'empreinte numrique d'un fichier (on parle souvent de message). il a t
invent par Ronald Rivest en 1991.
l'utilisation de cette fonction de hachage dans les signatures numriques peut conduire de
multiples scnarios d'attaque et n'est plus considre comme un composant fiable de
l'infrastructure cls publiques. cependant dans le calcul de la signature d'un fichier il reste
plutt fiable, mme si l'on ne peut pas assurer qu'il y a unicit entre l'empreinte calcule et le
fichier ou message source.
EXEMPLE MD5
SHA-1 : (SECURE HASH ALGORITHM) est une fonction de hachage cryptographique conue
par la NATIONAL SECURITY AGENCY DES TATS-UNIS (NSA), et publie par le
gouvernement des tats-Unis comme un standard fdral de traitement de l'information
(FEDERAL INFORMATION PROCESSING Standard du NATIONAL INSTITUTE OF STANDARDS
AND TECHNOLOGY (NIST)). Elle produit un rsultat (appel HASH ou condensat)
de 160 bits.
EXEMPLE SHA-1
SHA-2 :

SHA-2 (secure hash algorithm) est une famille de fonctions de hachage qui ont t
conues par la national security agency des tats-unis (NSA), sur le modle des
fonctions SHA-1et SHA-0, elles-mmes fortement inspires de la fonction md4 de Ron
Rivest (qui a donn paralllement MD5). telle que dcrite par le national institute of
standards and technology (NIST), elle comporte les fonctions, SHA-256 et SHA-
512 dont les algorithmes sont similaires mais oprent sur des tailles de mot diffrentes
(32 bits pour SHA-256 et 64 bits pour SHA-512), SHA-224 et SHA-384 qui sont
essentiellement des versions des prcdentes dont la sortie est tronque, et plus
rcemment SHA-512/256 ET SHA-512/224 qui sont des versions tronques de SHA-
512. Le dernier suffixe indique le nombre de bits du hach.
DESCRIPTION DU SHA-2 :
comme toutes les fonctions de hachage les fonctions SHA-2 prennent en entre un message de
taille arbitraire, avec une borne (toute thorique) pour celle-ci, et produisent un rsultat
(appel hash , hach, condensat ou encore empreinte ...) de taille fixe. la taille du hach est
indique par le suffixe : 224 bits pour SHA-224, 256 bits pour SHA-256, 384 bits pour SHA-
384 et 512 bits pour SHA-512.
les algorithmes de la famille SHA-2 sont trs semblables, il y a essentiellement deux fonctions
diffrentes, SHA-256 et SHA-512, les autres tant des variantes de l'une ou l'autre. les
fonctions SHA-256 et SHA-512 ont la mme structure mais diffrent par la taille des mots et
des blocs utiliss. cette structure est assez proche de celle de SHA-1, mais un peu plus
complexe et en vite certaines faiblesses connues. elle se rattache plus gnralement une
famille de fonctions de hachage inspires de MD4 et MD5 de RON RIVEST. on retrouve
comme primitives l'addition pour des entiers de taille fixe n soit une addition modulo 2n,
opration non linaire (au sens de l'algbre linaire) sur le corps des boolens f2, ainsi que
des oprations bit bit (XOR et autres).
comme toutes les fonctions de cette famille, elles suivent un schma itratif qui suit la
construction de Merkle-Damgrd (sans opration de finalisation). la fonction de
compression itre possde deux entres de taille fixe, la seconde entre tant de mme
taille que la sortie de la fonction
une donne obtenue par dcoupage du message traiter, la taille est de 512 bits pour
SHA-256 ET SHA-224 Et de 1024 bits pour SHA-512 et SHA-384,
le rsultat de la fonction de compression l'itration prcdente (256 bits pour SHA-256 et
SHA-224, 512 pour SHA-512 et SHA-384).
les entres de la fonction de compression sont dcoupes
en mots de 32 bits pour SHA-256 ET SHA-224,
en mots de 64 bits pour SHA-512 et SHA-384.
la fonction de compression rpte les mmes oprations un nombre de fois dtermin, on parle
de tour ou de ronde, 64 tours pour SHA-256, 80 tours pour SHA-512. chaque tour fait intervenir
comme primitives l'addition entire pour des entiers de taille fixe, soit une addition modulo 232 ou
modulo 264, des oprations bit bit : oprations logiques, dcalages avec perte d'une partie des
bits et dcalages circulaires, et des constantes prdfinies, utilises galement pour l'initialisation.
LES ATTAQUES HASH, LE SHA-1 ET LE SHA-2
il existe 2 types d'attaques spcifiques SHA
LA COLLISION : une collision se produit lorsque 2 fichiers diffrents produisent le mme
condensat. dans ce cas il est alors possible de substituer un fichier un autre. dans notre secteur
on pourrait ds lors imaginer remplacer un certificat officiel par un autre produisant les mme
valeurs de HASH. SHA0 est vulnrable la collision, c'est la raison pour laquelle il n'est plus
utilis aujourd'hui
LA PR-IMAGE : il faut distinguer la pr-image et la pr-image secondaire. la premire consiste
dterminer la valeur d'un fichier partir de son condensat. la seconde utiliser un condensat
pour produire une valeur diffrente de celle l'origine du HASH.
bien qu'aucune collision complte n'ai abouti avec sha1, l'volution des capacits de calculs
rendra bientt la chose possible. sha2 est quant lui totalement hermtique la collision, il est
donc temps de passer sha2
LES TABLES DE HACHAGE
UNE TABLE DE HACHAGE est, en informatique, une structure de donnes qui permet une
association cl-lment, c'est--dire une implmentation du type abstrait tableau associatif ;
en particulier d'une table des symboles lorsque les cls sont des chanes.
on accde chaque lment de la table via sa cl. il s'agit d'un tableau ne comportant pas
d'ordre (un tableau est index par des entiers). l'accs un lment se fait en transformant
la cl en une valeur de hachage par l'intermdiaire d'une fonction de hachage le hachage
est un nombre qui permet la localisation des lments dans le tableau, typiquement le
hachage est l'index de l'lment dans le tableau. une case dans le tableau est appele
ALVOLE
RSOLUTION DES COLLISIONS :
lorsque deux cls ont la mme valeur de hachage, ces cls ne peuvent tre stockes la
mme position. on doit alors employer une mthode de rsolution des collisions.
le calcul probabiliste montre que mme si la fonction de hachage a une distribution
parfaitement uniforme, il y a 95 % de chances d'avoir une collision dans une table de taille 1
million avant mme qu'elle ne contienne 2 500 lments. les collisions ne posent cependant de
rel problme que si elles sont nombreuses au mme endroit. mme une collision unique sur
chaque cl utilise n'a pas d'effet trs perceptible.
plusieurs mthodes de traitement des collisions existent. les plus utilises sont le chanage et
l'adressage ouvert. depuis le dbut des annes 1990, les dveloppeurs d'application n'ont
plus se proccuper vraiment du dtail de ces mthodes (celles-ci tant directement
incorpores dans les langages eux-mmes - perl, php - ou au pire dans les objets de la
bibliothque qu'ils utilisent.

Vous aimerez peut-être aussi