Fonctions de Hachage ISEC

Documents pareils
Les fonctions de hachage, un domaine à la mode

ÉPREUVE COMMUNE DE TIPE Partie D

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Fonction de hachage et signatures électroniques

Authentification de messages et mots de passe

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

Cryptographie et fonctions à sens unique

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

Sécurité des réseaux IPSec

Cours 14. Crypto. 2004, Marc-André Léger

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

Signatures électroniques dans les applications INTERNET

INF 4420: Sécurité Informatique Cryptographie II

Rapport de certification ANSSI-CSPN-2010/07. KeePass Version 2.10 Portable

Du 03 au 07 Février 2014 Tunis (Tunisie)

Le format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.

Théorie et Pratique de la Cryptanalyse à Clef Publique

TP 2 : Chiffrement par blocs

Réseaux Privés Virtuels

INSTALLATION D'OPENVPN:

TECHNIQUES DE CRYPTOGRAPHIE

1 Recherche en table par balayage

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Étudiant : Nicolas Favre-Félix IFIPS Info 3. Les One Time Passwords, Mots de passe à usage unique

Composant cryptographique TPM Retours d expériences et perspectives

Problèmes arithmétiques issus de la cryptographie reposant sur les réseaux

ALGORITHMIQUE II NOTION DE COMPLEXITE. SMI AlgoII

Rapport de certification

Le protocole SSH (Secure Shell)

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

J AUVRAY Systèmes Electroniques TRANSMISSION DES SIGNAUX NUMERIQUES : SIGNAUX EN BANDE DE BASE

Le protocole sécurisé SSL

TIW4 : SÉCURITÉ DES SYSTÈMES D INFORMATION

Définitions et enjeux

Groupe symétrique. Chapitre II. 1 Définitions et généralités

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Le Passeport Biométrique. Benoit LEGER CISSP ISO LD

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

GPA435 SE et PS. Sécurité Informatique. Étude de cas: ios Version 2013

OPAL un système d'authentification par mots de passe non réutilisables

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet.

Administration de Bases de Données : Optimisation

Architectures PKI. Sébastien VARRETTE

Cryptographie appliquée

Programmation parallèle et distribuée

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Cryptologie à clé publique

Gilles GUETTE IRISA Campus de Beaulieu, Rennes Cedex, France

Séminaire TEST. 1 Présentation du sujet. October 18th, 2013

Corrigé des TD 1 à 5

P1 : Corrigés des exercices

Atelier C TIA Portal CTIA04 : Programmation des automates S7-300 Opérations numériques

Chapitre 3 : Crytographie «Cryptography»

I3, Probabilités 2014 Travaux Dirigés F BM F BM F BM F BM F B M F B M F B M F B M

Ludovic Mé http ://rennes.supelec.fr/rennes/si/equipe/lme/ Campus de Rennes Equipe SSIR

CA SIC Directives de certification Certificate Practice Statement (CPS) du SIC Customer ID CA 1024 Level 2

Sécurisation des accès au CRM avec un certificat client générique

Gestion des Clés. Pr Belkhir Abdelkader. 10/04/2013 Pr BELKHIR Abdelkader

INF4420: Éléments de Sécurité Informatique

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Programmation parallèle et distribuée

LES SECURITES DE LA CARTE BANCAIRE

Sécurisation du DNS : Les extensions DNSsec

Date : 16 novembre 2011 Version : 1. 2 Nombre de pages : 13

EMV, S.E.T et 3D Secure

Chapitre VI - Méthodes de factorisation

Plateforme Systempay. Correspondance entre SP PLUS et SYSTEMPAY Paiement Simple et en plusieurs fois

MATHÉMATIQUES DISCRÈTES (4) CRYPTOGRAPHIE CLASSIQUE

Web : Stockage de mot de passe LOG619 Automne 2011 Olivier Bilodeau

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Livre blanc. Sécuriser les échanges

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

Exigences d aléa pour la sécurité

Projet UNIX. Générateur de dictionnaire d empreintes multitâche par brute-force

Gestion des Clés Publiques (PKI)

Note technique. Recommandations de sécurité relatives aux mots de passe

Les Protocoles de sécurité dans les réseaux WiFi. Ihsane MOUTAIB & Lamia ELOFIR FM05

La sécurité des réseaux

Introduction à l étude des Corps Finis

Structure fonctionnelle d un SGBD

Action Spécifique Sécurité du CNRS 15 mai 2002

DÉCLARATION ET DEMANDE D'AUTORISATION D OPÉRATIONS RELATIVES A UN MOYEN DE CRYPTOLOGIE

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

«La Sécurité des Transactions et des Echanges Electroniques»

WTLS (Wireless Transport Layer Security)

Protocole industriels de sécurité. S. Natkin Décembre 2000

Probabilités sur un univers fini

Déploiement de l infrastructure SOA. Retour d expérience Août 2013

Feuille TD n 1 Exercices d algorithmique éléments de correction

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

DNS Poisoning. Pollution de cache sur des serveurs DNS. Xavier Dalem, Adrien Kunysz, Louis Plair. 15 mars Université de Liège

Sécuristation du Cloud

Attaques Wi-Fi WPA. Séparer le bon grain de l ivraie dans le buzz ambiant. Cédric Blancher. sid@rstack.org Rstack Team

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

Windows Server 2008 Sécurité ADMINISTRATION ET CONFIGURATION DE LA SECURITE OLIVIER D.

Transcription:

Fonctions de Hachage ISEC Ludovic Perret Université Pierre et Marie Curie (Paris VI) ludovic.perret@lip6.fr

Plan du cours 1 Généralités 2 Merkle-Damgård 3 Construction basées sur des chiffrement par blocs

Fonction de Hachage Généralités

Généralités pour commencer... Définition Une fonction de hachage est une fonction prenant en entrée une donnée de taille variable et retournant une donnée de taille fixe nommée emprunte (ou haché) : h : {0, 1} {0, 1} n. Il faut que l emprunte soit calculatoirement facile à calculer, i.e. x {0, 1}, h(x) est facile à calculer.

Généralités Contrôle d intégrité Principe Pour une donnée data {0, 1}, on calcule H = h(data). FC3-i386-disc1.iso (md5sum : db8c7254beeb4f6b891d1ed3f689b412) Pour vérifier l intégrité de data, on teste si h(data ) = H. Remarque La vérification est donc possible pas tous car la fonction est publique.

Généralités Contrôle d accès Stockage d un mot de passe Soit psswd {0, 1} un mot de passe. On stocke H = h(psswd). Pour tester si psswd {0, 1} est un mot de passe correct, on teste h(psswd ) = H. Remarque On ne stocke jamais la mot de passe en clair.

Généralités Signature Numérique Principe Soit doc {0, 1}, on signe H = h(doc). Remarque La fonction de hachage est publique. La vérification est donc possible pas tous.

Généralités Sécurité d une fonction de hachage Soit h : {0, 1} {0, 1} n une fonction de hachage. h est à sens unique : pour (presque) tout y Im(h), il est calculatoirement difficile de trouver x Dom(h) tel que : h(x) = y.

Généralités Sécurité d une fonction de hachage Soit h : {0, 1} {0, 1} n une fonction de hachage. h est à sens unique : pour (presque) tout y Im(h), il est calculatoirement difficile de trouver x Dom(h) tel que : h(x) = y. h est faiblement sans-collisision : pour h(x) Im(h) fixé, il est calculatoirement difficile de trouver x x Dom(h) tel que : h(x ) = h(x).

Généralités Sécurité d une fonction de hachage Soit h : {0, 1} {0, 1} n une fonction de hachage. h est à sens unique : pour (presque) tout y Im(h), il est calculatoirement difficile de trouver x Dom(h) tel que : h(x) = y. h est faiblement sans-collisision : pour h(x) Im(h) fixé, il est calculatoirement difficile de trouver x x Dom(h) tel que : h(x ) = h(x). h est sans-collision : il est calculatoirement difficile de trouver (x, x ) Dom(h) Dom(h), x x, tel que : h(x ) = h(x).

Généralités Illustration Exercice Montrer que la fonction identité est une fonction sans-collision et faiblement sans-collision mais pas à sens unique.

Généralités Relation entre les notions (I) Proposition Soit h : X Y une fonction de hachage. Démonstration. h est sans-collision h est faiblement sans-collision. Supposons que h sans-collision. Par l absurde, supposons que h n est pas faiblement sans-collision. Étant donné x X, il est donc calculatoirement faisable de trouver x X, x x, tel que h(x ) = h(x).

Généralités Relation entre les notions (I) Proposition Soit h : X Y une fonction de hachage. Démonstration. h est sans-collision h est faiblement sans-collision. Supposons que h sans-collision. Par l absurde, supposons que h n est pas faiblement sans-collision. Étant donné x X, il est donc calculatoirement faisable de trouver x X, x x, tel que h(x ) = h(x). (x, x ) est ainsi une collision pour h.

Généralités Relation entre les notions (II) Proposition Soit h : X Y une fonction de hachage, où X et Y sont des ensembles finis. Si X 2 Y, alors : Démonstration. En TD. h est sans-collision h est à sens unique.

Généralités Paradoxe des anniversaires Proposition Soient x 1,..., x k+1, des éléments distincts de X tirés aléatoirement, et y i = h(x i ), pour tout i, 1 i k + 1. Pr( collision) 1 e k(k 1) 2N, avec N = Y.

Généralités Paradoxe des anniversaires Démonstration. On suppose que les y i sont des éléments aléatoires de Y.

Généralités Paradoxe des anniversaires Démonstration. On suppose que les y i sont des éléments aléatoires de Y. Nous avons N = Y. La probabilité que y i+1 {y 1,..., y i } est p i+1 = (1 i/n).

Généralités Paradoxe des anniversaires Démonstration. On suppose que les y i sont des éléments aléatoires de Y. Nous avons N = Y. La probabilité que y i+1 {y 1,..., y i } est p i+1 = (1 i/n). La probabilité que les y 1,..., y k tirés dans cet ordre soient distincts est k 1 k 1 P = p i+1 = (1 i/n). i=0 i=0

Généralités Paradoxe des anniversaires Démonstration. On suppose que les y i sont des éléments aléatoires de Y. Nous avons N = Y. La probabilité que y i+1 {y 1,..., y i } est p i+1 = (1 i/n). La probabilité que les y 1,..., y k tirés dans cet ordre soient distincts est k 1 k 1 P = p i+1 = (1 i/n). i=0 i=0 La probabilité de non-collision est donc P.

Généralités Paradoxe des anniversaires Démonstration. On suppose que les y i sont des éléments aléatoires de Y. Nous avons N = Y. La probabilité que y i+1 {y 1,..., y i } est p i+1 = (1 i/n). La probabilité que les y 1,..., y k tirés dans cet ordre soient distincts est k 1 k 1 P = p i+1 = (1 i/n). i=0 i=0 La probabilité de non-collision est donc P. En approchant 1 x par e x pour x proche de 0, on obtient : P k 1 i=0 e i N = e k(k 1) 2N.

Généralités Collision Proposition Soit h : X Y une fonction de hachage, avec X Y et Y = N. Pour trouver une collision avec probabilité supérieure ou égale à 1/2, il suffit" de hacher : O( N) éléments de X. Autrement dit... Pour avoir une probabilité supérieure ou égale à 1/2 de trouver une collision, il suffit de hacher un peu plus de N éléments de X.

Généralités Preuve Démonstration. Notons ɛ = 1 P, la probabilité d avoir au moins une collision. Exprimons k en fonction de ɛ et N : ɛ 1 e k(k 1) k(k 1) 2N ln(1 ɛ). 2N Ainsi, k 2 k 2N ln( 1 1 ɛ ). En ignorant le terme k, on obtient : ( ) 1 k 2N ln. 1 ɛ Pour ɛ = 1/2, on trouve k 1.18 N.

Généralités Illustration Supposons que X est un ensemble d individus Y l ensemble des 365 jours d une année non bissextile h(x), le jour de l anniversaire d une personne de X (on suppose que X comporte plus de 365 personnes) On obtient k 1.18 365 1.18 19.10 22.5

Généralités Sécurité d une fonction de hachage Soit h : {0, 1} {0, 1} n une fonction de hachage. h est à sens unique si pour (presque) tout y Im(h), il est impossible de trouver x Dom(h) tel que h(x) = y, avec une complexité significativement meilleure que O( Y ) (recherche exhaustive).

Généralités Sécurité d une fonction de hachage Soit h : {0, 1} {0, 1} n une fonction de hachage. h est à sens unique si pour (presque) tout y Im(h), il est impossible de trouver x Dom(h) tel que h(x) = y, avec une complexité significativement meilleure que O( Y ) (recherche exhaustive). h est faiblement sans-collision si pour h(x) Im(h) fixé, il est impossible de trouver x Dom(h) tel que : h(x ) = h(x), avec une complexité significativement meilleure que O( Y ) (recherche exhaustive).

Généralités Sécurité d une fonction de hachage Soit h : {0, 1} {0, 1} n une fonction de hachage. h est à sens unique si pour (presque) tout y Im(h), il est impossible de trouver x Dom(h) tel que h(x) = y, avec une complexité significativement meilleure que O( Y ) (recherche exhaustive). h est faiblement sans-collision si pour h(x) Im(h) fixé, il est impossible de trouver x Dom(h) tel que : h(x ) = h(x), avec une complexité significativement meilleure que O( Y ) (recherche exhaustive). h est sans-collision s il est impossible de trouver (x, x ) Dom(h) Dom(h), x x, tel que : h(x ) = h(x). avec une complexité significativement meilleure que O( Y ) (paradoxe des anniversaires).

Merkle-Damgård Plan du cours 1 Généralités 2 Merkle-Damgård 3 Construction basées sur des chiffrement par blocs

Merkle-Damgård Fonction de compression Problème Comment gérer une donnée de taille variable? Définition Une fonction de compression est une fonction qui transforme toute chaîne d une taille fixée n + r en une chaîne de taille n. f : {0, 1} n+r {0, 1} n.

Merkle-Damgård Construction de Merle-Damgård (I) La chaîne x (de longueur arbitraire) à hacher subit un prétraitement (padding) qui la transforme en t blocs de r bits x 1,..., x t. IV {0, 1} n une valeur initiale (ou vecteur d initialisation), f : {0, 1} r {0, 1} n {0, 1} n une fonction de compression, g : {0, 1} n {0, 1} m une fonction de finalisation". On calcule l empreinte comme : H 0 = IV, H i = f (H i 1, x i ), 1 i t, h(x) = g(h t ).

Merkle-Damgård Algorithme d extension de Merkle-Damgård (I) Entrée : f : {0, 1} n+r {0, 1} n sans-collision, IV {0, 1} n, et g : {0, 1} n {0, 1} m. Sortie : h : {0, 1} {0, 1} n sans-collision. 1 Soit x la chaîne à hacher avec l = x (en bits). On découpe x en t blocs de r bits (en complétant x t avec des 0 si nécessaire). 2 Ajouter un bloc x t+1 de r bits contenant la représentation binaire de l (on suppose l 2 r ). 3 Soit H 0 = IV, on calcule H i = f (H i 1 x i ), 1 i t + 1. 4 Retourner h(x) = g(h t+1 ). Remark Le plus souvent, g = Id, et donc h(x) = H t+1.

Merkle-Damgård Algorithme d extension de Merkle-Damgård (II)

Merkle-Damgård Sécurité de l extension MD (I) Proposition f est sans-collision h est sans-collision.

Merkle-Damgård Sécurité de l extension MD (II) Démonstration. On suppose que g = Id. Soient x, y {0, 1} tels que h(x) = h(y).

Merkle-Damgård Sécurité de l extension MD (II) Démonstration. On suppose que g = Id. Soient x, y {0, 1} tels que h(x) = h(y). Notons s (resp. t), le nombre de blocs de taille r de x (resp. y). h(x) = h(y) H s+1 = H t+1 f (H s x s+1 ) = f (H t y t+1 ). f sans-collision, donc H s x s+1 = H t y t+1 H s = H t, et x s+1 = y t+1. x s+1 et y t+1 représentant la longueur de x et y, on en déduit que s = t, et par suite H s = H s.

Merkle-Damgård Sécurité de l extension MD (II) Démonstration. On suppose que g = Id. Soient x, y {0, 1} tels que h(x) = h(y). Notons s (resp. t), le nombre de blocs de taille r de x (resp. y). h(x) = h(y) H s+1 = H t+1 f (H s x s+1 ) = f (H t y t+1 ). f sans-collision, donc H s x s+1 = H t y t+1 H s = H t, et x s+1 = y t+1. x s+1 et y t+1 représentant la longueur de x et y, on en déduit que s = t, et par suite H s = H s. Ensuite : H s = H s f (H s 1 x s ) = f (H s 1 y s ). f sans-collision, donc H s 1 x s = H s 1 y s H s 1 = H s 1, et x s = y s.

Merkle-Damgård Sécurité de l extension MD (II) Démonstration. On suppose que g = Id. Soient x, y {0, 1} tels que h(x) = h(y). Notons s (resp. t), le nombre de blocs de taille r de x (resp. y). h(x) = h(y) H s+1 = H t+1 f (H s x s+1 ) = f (H t y t+1 ). f sans-collision, donc H s x s+1 = H t y t+1 H s = H t, et x s+1 = y t+1. x s+1 et y t+1 représentant la longueur de x et y, on en déduit que s = t, et par suite H s = H s. Ensuite : H s = H s f (H s 1 x s ) = f (H s 1 y s ). f sans-collision, donc H s 1 x s = H s 1 y s H s 1 = H s 1, et x s = y s. Par récurrence descendante sur s, on obtient que x i = y i, 1 i s, et donc x = y.

Merkle-Damgård MD5 MD = Message Digest élaborée en 1991 par Ronald Rivest bloc d entrée de 512 bits produit des valeurs hachées de 128 bits utilise des rotations, des additions modulo 2 32, ainsi que des constantes de 32 bits. des collisions ont été trouvées sur MD5 en un temps MD5 ne doit plus être utilisée pour un usage cryptographique.

Merkle-Damgård Collision sur MD5 Xiaoyun Wang, Hongbo Yu. How to Break MD5 and Other Hash Functions. EUROCRYPT 2005.

Merkle-Damgård SHA1 SHA = Secure Hash Algorithm proposée par le NIST en 1995, comme version modifiée du standard SHA. bloc d entrée de 512(= 16 32) bits produit des hachées de 160 bits Recherche d une collision estimé à 2 60+x SHA1 ne devrait plus être utilisée pour un usage cryptographique.

Merkle-Damgård SHA1 (I) Variable de chaînage de 160 bits (A, B, C, D, E) Blocs de 512 = (5 32) bits (W 0,..., W 15 ) 80 étapes élémentaires (tours) Expansion du bloc de message 16 mots (32 bits) vers 80 mots

Merkle-Damgård SHA1 (II) Expansion de message : W t = (W t 3 W t 3 W t 14 W t 16 ) <<< 1, t 16. 32 fonctions de 3 bits vers 1 bit en // addition modulo 2 32 K t constante du tour

Merkle-Damgård Compétition SHA3 Nouveau standard 64 soumissions SHA3 14 candidats en phase 2 5 candidats en phase 3 Keccak (G. Bertoni, J. Daemen, M. Peeters, G. Van Assche)

Construction basées sur des chiffrement par blocs Plan du cours 1 Généralités 2 Merkle-Damgård 3 Construction basées sur des chiffrement par blocs

Construction basées sur des chiffrement par blocs Davies-Meyer (I) Soit E : F n 2 Fr 2 Fn 2 un chiffrement par blocs. On découpe la donnée x à hacher en t blocs x 1,..., x t de taille n. Le dernier bloc étant éventuellement complété par des zéros. On définit : La valeur hachée est H t. H 0 = IV, H i = E xi (H i 1 ) H i 1, 1 i t.

Construction basées sur des chiffrement par blocs Davies-Meyer (II) Soit E : F n 2 Fr 2 Fn 2 un chiffrement par blocs, et une fonction g : F n 2 Fr 2. On découpe la donnée x à hacher en t blocs x 1,..., x t de taille n. Le dernier bloc étant éventuellement complété par des zéros. On définit : La valeur hachée est H t. H 0 = IV, H i = E xi (H i 1 ) H i 1, 1 i t.

Construction basées sur des chiffrement par blocs Davies-Meyer (II) Soit E : F n 2 Fr 2 Fn 2 un chiffrement par blocs, et une fonction g : F n 2 Fr 2. On découpe la donnée x à hacher en t blocs x 1,..., x t de taille n. Le dernier bloc étant éventuellement complété par des zéros. On définit : La valeur hachée est H t. Point fixe H 0 = IV, H i = E xi (H i 1 ) H i 1, 1 i t. Il existe m tel que H = E m (H) H. H = E 1 m (0).

Construction basées sur des chiffrement par blocs Matyas-Meyer-Oseas Soit E : F n 2 Fr 2 Fn 2 un chiffrement par blocs, et une fonction g : F n 2 Fr 2. On découpe la donnée x à hacher en t blocs x 1,..., x t de taille n. Le dernier bloc étant éventuellement complété par des zéros. On définit : La valeur hachée est H t. H 0 = IV, H i = E g(hi 1 )(x i ) x i, 1 i t.

Construction basées sur des chiffrement par blocs Miyaguchi-Preneel Soit E : F n 2 Fr 2 Fn 2 un chiffrement par blocs, et une fonction g : F n 2 Fr 2. On découpe la donnée x à hacher en t blocs de taille n, x 1,..., x t, le dernier bloc étant éventuellement complété par des 0. On définit : La valeur hachée est H t. H 0 = IV, H i = E g(hi 1 )(x i ) x i H i 1, 1 i t.

Construction basées sur des chiffrement par blocs Construction d un MAC à l aide d une fonction de hachage HMAC

Construction basées sur des chiffrement par blocs Construction d un MAC à l aide d une fonction de hachage HMAC HMAC H. Krawczyk, M. Bellare, et R. Cannetti (1996) Soit h est une fonction de hachage sans-collision : HMAC(k, m) = h ( k opad h( k ipad m) ). k est la clef m est le message k désigne la clef k complétée avec des 0 jusqu à obtenir la longueur d entrée de la fonction de compression de h ipad, opad sont des chaînes de formattage fixées.