Fonctions de hachage. Fouque Pierre-Alain Equipe de Cryptographie Ecole normale supérieure

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

Fonction de hachage et signatures électroniques

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

ÉPREUVE COMMUNE DE TIPE Partie D

Authentification de messages et mots de passe

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

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

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

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

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

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

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

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

Chapitre 3 : Crytographie «Cryptography»

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

INSTALLATION D'OPENVPN:

INF 4420: Sécurité Informatique Cryptographie II

Rapport de certification

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

Cryptographie et fonctions à sens unique

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.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Annexe 8. Documents et URL de référence

TP 2 : Chiffrement par blocs

AWS avancé. Surveiller votre utilisation d EC2

Programmation C. Apprendre à développer des programmes simples dans le langage C

Le protocole sécurisé SSL

Cryptographie Quantique

Architectures PKI. Sébastien VARRETTE

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Exemple PLS avec SAS

Comprendre l impact de l utilisation des réseaux sociaux en entreprise SYNTHESE DES RESULTATS : EUROPE ET FRANCE

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Signatures électroniques dans les applications INTERNET

Paris Airports - Web API Airports Path finding

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

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Architecture des ordinateurs

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

Règlement relatif à l examen fait conformément à la Déclaration canadienne des droits. Canadian Bill of Rights Examination Regulations CODIFICATION

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

Réseaux Privés Virtuels

Protocole SSH-2.0. Tuan-Tu, TRAN. Janvier 2009

physicien diplômé EPFZ originaire de France présentée acceptée sur proposition Thèse no. 7178

Programmation Réseau SSH et TLS (aka SSL)

Introduction au langage C

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

Audit des risques informatiques

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

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

Théorie et Pratique de la Cryptanalyse à Clef Publique

that the child(ren) was/were in need of protection under Part III of the Child and Family Services Act, and the court made an order on

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

The new consumables catalogue from Medisoft is now updated. Please discover this full overview of all our consumables available to you.

LES SECURITES DE LA CARTE BANCAIRE

Oracles Cryptographiques. Trouver une joke de padding

Le Passeport Biométrique. Benoit LEGER CISSP ISO LD

TECHNIQUES DE CRYPTOGRAPHIE

Bitcoin : crypto-monnaie décentralisée ouverte et libre Mathématiques, algorithmes et méthode de confiance

Face Recognition Performance: Man vs. Machine

Programmation parallèle et distribuée

Grégoire de Lassence. Copyright 2006, SAS Institute Inc. All rights reserved.

RULE 5 - SERVICE OF DOCUMENTS RÈGLE 5 SIGNIFICATION DE DOCUMENTS. Rule 5 / Règle 5


Le prototype de la fonction main()

Bigdata et Web sémantique. les données + l intelligence= la solution

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

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

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

ICA Congress, Brisbane 2012 Thème général : Les temps qui changent. La confiance et les archives*

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

Programmation parallèle et distribuée

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

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

L. Obert, T. Lascar, A. Adam

Introduction aux SGBDR

La sécurité dans les grilles

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

Nouveaux résultats en cryptographie basée sur les codes correcteurs d erreurs

CLIM/GTP/27/8 ANNEX III/ANNEXE III. Category 1 New indications/ 1 re catégorie Nouvelles indications

La sécurité des réseaux. 9e cours 2014 Louis Salvail

Cryptographie appliquée

PASS v2.0 : solution d authentification unique basée sur les composants Shibboleth Service Provider v2.5.1 et Identity Provider v2.3.

Vers une Théorie du Chiffrement Symétrique

Université d Aix-Marseille Master Réseaux & Télécoms Cryptographie

Gestion des clés. Génération des clés. Espaces de clés réduits. Mauvais choix de clés. Clefs aléatoires. Phrases mots de passe

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

Algorithmique et Programmation, IMA

Once the installation is complete, you can delete the temporary Zip files..

Gestion des Clés Publiques (PKI)

Trouver un vecteur le plus court dans un réseau euclidien

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

INFO-F-404 : Techniques avancées de systèmes d exploitation

Forthcoming Database

Tex: The book of which I'm the author is an historical novel.

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Programmation système de commandes en C

Transcription:

Fonctions de hachage Fouque Pierre-Alain Equipe de Cryptographie Ecole normale supérieure 1

Introduction Problématiques en crypto Convertir des entrées de taille variable vers une taille fixe (ex : signature, intégrité) Calcul d empreintes uniques Fonctions «à sens unique» Utilisation de fonctions de hachage: stockage mots de passe, codes d authentification de messages (MAC), signatures, chiffrement, fonction aléatoire... 2

Définition message M M {0,1}* H haché H(M) H(M) {0,1} n Une fonction de hachage H calcule un haché de n bits à partir d un message arbitraire M H : {0,1}* {0,1} n 3

Exemple Cryptographic hash functions that compute a fixed size message digest from arbitrary size messages are widely used for many purposes in cryptography, including digital signatures. NIST was recently informed that researchers had discovered a way to "break" the current Federal Information Processing Standard SHA-1 algorithm, which has been in effect since 1994. The researchers have not yet published their complete results, so NIST has not confirmed these findings. However, the researchers are a reputable research team with expertise in this area. Previously, a brute force attack would expect to find a collision in 2 80 hash operations. SHA-1 Valeur hachée de n=160 bits : A51F 07BB 62EC 44A3 F118 4

Critères de conception La fonction de hachage doit réduire la taille des entrées à n bits (compression) être facile à calculer Taille quelconque Fonction de hachage Taille fixe 5

Fonctions classiques Nom n Auteur MD2 128 RSA MD4 128 RSA MD5 128 RSA SHA-1 160 NIST SHA-256 256 NIST RIPEMD-* 128,160, HAVAL-* 128,160, 6

Remarque Une fonction de hachage n est pas spécifiquement une primitive à clé secrète (il n y a pas de clé) Toutefois, les méthodes de construction sont souvent similaires au block ciphers 7

Présence d une clé Toutefois, dans certaines situations, on peut être amené à utiliser des fonctions de hachage avec clé : Clé K {0,1} k message M M {0,1}* H haché H K (M) H K (M) {0,1} n 8

Classification Fonctions de hachage sans clé Fonctions de hachage avec clé «Famille» de fonctions de hachage (plusieurs instances sont disponibles, possibilité de randomiser les hachés) Vérification d intégrité (MAC) 9

Classification Fonctions de hachage sans clé Fonctions de hachage avec clé «Famille» de fonctions de hachage (plusieurs instances sont disponibles, possibilité de randomiser les hachés) Vérification d intégrité (MAC) 9

Propriété attendue Intuition = La fonction de hachage doit se comporter de façon aléatoire Qu est-ce que cela signifie en pratique? (Absence de relation entre haché et message qui ferait qu on puisse prédire la valeur du hacé sans la calculer explicitement) En général, on spécifie plus précisément certaines propriétés de sécurité (ex : collisions) formalisation du problème des collisions? 10

Utilisation 1. Intégrité de fichier 2. Stockage de mots de passe 3. Intégrité de communications 4. Signature numérique 11

1 - Intégrité de fichier Idée : on veut vérifier qu un fichier n a pas été modifié On calcule son empreinte // Fichier code.c #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { if (argc <2) { } } SHA-1 Valeur hachée de 160 bits : SHA-1 (code.c) = A51F 07BB 62EC 44A3 F118 12

Sécurité Limitation : Possibilité de re-calculer l empreinte L empreinte doit être transmise de façon sécurisée (intégrité) Résistance mathématique Difficulté de fabriquer un 2 ème message donnant le même haché que code.c 13

2 - Mots de passe Au lieu de stocker un mot de passe «en clair» sur une machine, on stocke son haché (ex : systèmes d exploitation) h = H(password) Pour s authentifier, un utilisateur envoie h Cela rend la base de données moins sensible 14

Sécurité Limitation : On peut toujours énumérer les mots de passe, s ils ont peu d entropie (attaque par dictionnaire) Résistance mathématique A partir du haché h, difficulté de trouver un antécédent x tel que h = H(x) = H(password) Est-il nécessaire que x == password? 15

3 Communications Garantir qu un message n a pas été modifié en cours de transmission (intégrité) Fonction de hachage avec clé L empreinte est aussi appelée MAC Solutions : MAC basé sur un block cipher (ex : CBC-MAC) MAC basé sur une fonction de hachage sans clé 16

Sécurité Idée naturelle MAC K (message) = H(K message) Problèmes liés à la structure itérative de H Méthode standard : HMAC HMAC K1,K2 (message) = H(K1 H (K2 message)) 17

4 Signatures Pour des raisons d efficacité et de sécurité, on ne signe jamais directement un message M mais toujours son haché H(M) Enlever certaines propriétés mathématiques des primitives de signature (ex : RSA) On ne signe que des données de taille fixée (et petite) 18

Signatures Message M Cryptographic hash functions that compute a fixed size message digest from arbitrary size messages are widely used for many purposes in cryptography, including digital signatures. NIST was recently informed that researchers had discovered a way to "break" the current Federal Information Processing Standard SHA-1 algorithm, which has been in effect since 1994. The researchers have not yet published their complete results, so NIST has not confirmed these findings. However, the researchers are a reputable research team with expertise in this area. Previously, a brute force attack would expect to find a collision in 2 80 hash operations. Clé de signature K s Algorithme de signature Sign (.) K S Fonction de hachage H(.) 19

Signatures Message M Cryptographic hash functions that compute a fixed size message digest from arbitrary size messages are widely used for many purposes in cryptography, including digital signatures. NIST was recently informed that researchers had discovered a way to "break" the current Federal Information Processing Standard SHA-1 algorithm, which has been in effect since 1994. The researchers have not yet published their complete results, so NIST has not confirmed these findings. However, the researchers are a reputable research team with expertise in this area. Previously, a brute force attack would expect to find a collision in 2 80 hash operations. Clé de signature K s Algorithme de signature Sign (.) K S Fonction de hachage H(.) Signature du message M : σ = Sign K S (H(M)) 19

Sécurité On ne doit pas pouvoir substituer un message M ayant le même haché à la place de M Dans le cas contraire, σ = Sign K S (H(M)) σ = Sign K S (H(M )) Donc σ = σ 20

Exemple Message M Cryptographic hash functions that compute a fixed size message digest from arbitrary size messages are widely used for many purposes in cryptography, including digital signatures. NIST was recently informed that researchers had discovered a way to "break" the current Federal Information Processing Standard SHA-1 algorithm, which has been in effect since 1994. The researchers have not yet published their complete results, so NIST has not confirmed these findings. However, the researchers are a reputable research team with expertise in this area. Previously, a brute force attack would expect to find a collision in 2 80 hash operations. H(M) = 7b 08 Signature σ Message M Cryptographic hash functions that compute a fixed size message digest from arbitrary size messages are widely used for many purposes in cryptography, including digital signatures. NIST was recently informed that researchers had discovered a way to "break" the current Federal Information Processing Standard SHA-0 algorithm, which is no longer in effect since 1995. The researchers have not yet published their complete results, so NIST has not confirmed these findings. However, the researchers are a reputable research team with expertise in this area. Previously, a brute force attack would expect to find a collision in 2 80 hash operations. H(M ) = 7b 08 Signature σ = σ 21

Sécurité Les notions suivantes sont apparues : Résistance aux collisions trouver M 1 et M 2 tel que H(M 1 ) = H(M 2 ) Résistance aux secondes préimages avec M 1 donné, trouver M 2 tel que H(M 1 ) = H(M 2 ) Résistance aux préimages avec x donné, trouver M tel que H(M) = x 22

Attaques «génériques» Résistance aux collisions une attaque naïve coûte 2 n/2 Résistance aux secondes préimages une attaque naïve coûte 2 n/2 <? < 2 n Résistance aux préimages une attaque naïve coûte 2 n 23

Principales notions Suivant le contexte, on a besoin d une notion de sécurité plus ou moins forte exemple : Fabriquer un faux certificat à partir d un certificat valide Attaque en Seconde Préimage Notion la plus forte = Préimages Notion la plus faible = Collisions 24

Attaques en collision Choisir N = 2 n/2 messages quelconques x 1,, x N Calculer les hachés correspondants y i = H(x i ) Chercher (a,b) tel que y a = y b Paradoxe des anniversaires 25

Problème Pour trouver une collision, il faut : Stocker tous les y i dans un tableau Trier ce tableau Peu efficace (mémoire de 2 n/2 ) Difficile de paralléliser ce calcul Il existe des solutions (méthode ρ de Pollard) Dans tous les cas, la complexité en temps est 2 n/2 26

Attaques en seconde préimage Entrée : message M 1 et son haché x = H(M 1 ) Calculer h i = H(m i ) pour des messages aléatoires h i = x avec probabilité 2 -n Donc, après 2 n messages, on s attend à trouver une seconde préimage m i telle que H(m i ) = H(M 1 ) Certains compromis sont possibles (prendre M 1 très long) 27

Attaques en préimage Entrée : haché h Calculer h i = H(m i ) pour des messages aléatoires h i = x avec probabilité 2 -n Donc, après 2 n messages, on s attend à trouver une préimage m i telle que h = H(m i ) 28

Fonctions à sens unique Existence de «fonctions à sens unique»? «faciles» à calculer «difficiles» à inverse Lié au problème de savoir si P NP En pratique, on conjecture que construire une telle fonction est possible 29

Construction Comment construire une fonction de hachage qui traite une entrée de taille arbitraire? On coupe l entrée en blocs de taille fixée On utilise une primitive appelée fonction de compression On utilise un mode opératoire 30

Fonctions itératives Message M Padding M 1 M 2 M t-1 M t H 0 F F H 2 H t F H t+1 Les H i sont appelés hachés intermédiaires 31

Merkle-Damgaard C est le mode opératoire habituel Le padding contient la longueur du message à hacher Les hachés intermédiaires H i font tous n bits Le haché de M est le dernier haché intermédiaire H t+1 Il y a certains problèmes de sécurité (liés au chaînage, notamment) 32

Théorème Th: Si la fonction de compression f est résistante aux collisions, alors la construction H f de MD avec strengthening l est également Preuve:? 33

Fonctions classiques Nom n h Auteur MD2 128 128 RSA MD4 512 128 RSA MD5 512 128 RSA SHA-1 512 160 NIST SHA-256 512 256 NIST RIPEMD-* 512 128,160, HAVAL-* 1024 128,160, 34

Fonction de compression Haché intermédiaire (n bits) Bloc de message (m bits) F F : {0,1} m x {0,1} n {0,1} n Haché intermédiaire (h bits) 35

Idée naturelle Haché intermédiaire == Plaintext (128 bits) Bloc de message == Clé (128 bits) AES AES : {0,1} n x {0,1} n {0,1} n avec n = 128 Haché intermédiaire == Ciphertext(128 bits) 36

Idée naturelle Haché intermédiaire == Plaintext (128 bits) Bloc de message == Clé (128 bits) AES AES : {0,1} n x {0,1} n {0,1} n avec n = 128 Haché intermédiaire == Ciphertext(128 bits) 36

Construction Les fonctions de compression sont souvent obtenues à partir d un algorithme de chiffrement par bloc (noté E) MAIS elles doivent être difficiles à inverser Nombreuses constructions possibles Davies-Meyer Matyas-Meyer-Oseas Miyaguchi-Preneel 37

Davies-Meyer H i M i E H i+1 38

Matyas-Meyer-Oseas M i H i E H i+1 39

Miyaguchi-Preneel M i H i E H i+1 40

En pratique La taille du bloc est parfois trop faible (ex : DES = 64 bits; AES = 128 bits) Problème d efficacité On utilise donc souvent des fonctions de compression dédiées qui «ressemblent» à la construction de Davies-Meyer 41

Fonctions classiques La plupart des fonctions usuelles utilisent cette idée : Construction itérative Fonction de compression : Davies-Meyer L algorithme de chiffrement par bloc sousjacent a été spécialement conçu Modèle = MD4 42

Historique MD4 1990 MD2 1989 MD5 SHA-0 HAVAL RIPEMD 1992 1993 1994 1992 SHA-1 1995 RIPEMD-128 RIPEMD-160 TIGER 1996 AES SHA-224 SHA-256 SHA-384 SHA-512 2002 2002 2002 2002 1996 Whirlpool 2000 43

Famille SHA SHA-0 publié par le NIST en 1993 Modifié légèrement en 1995 : version SHA-1 Nouvelle famille d algorithmes publiée en 2002, SHA-2 Mode opératoire = Merkle-Damgaard Fonction de compression = Davies-Meyer avec un block cipher dédié 44

Remarques SHA-0 et SHA-1 utilisent presque la même fonction de compression Le block cipher sous-jacent (SHACAL) semble sûr Seule la dérivation des sous-clé change entre SHA-0 et SHA-1 La famille SHA-2 utilise une fonction de compression modifiée 45

SHA-0 La fonction de compression F prend en entrée un haché intermédiaire de 160 bits vu comme 5 mots de 32 bits = (A B C D E) un bloc de message de 512 bits Un tour élémentaire est itéré 80 fois dans F (comme dans un block cipher) 46

SHA-0 Tour élémentaire de SHA-0 Bloc de Message (512 bits) A B C D E ROT 30 «Sous-clé» de 32 bits A B C D E Tous les opérations se font sur 32 bits (efficacité) Schéma de Feistel généralisé 47

SHA-0 Tour élémentaire de SHA-0 Bloc de Message (512 bits) A B C D E F i ROT 30 «Sous-clé» de 32 bits A B C D E Tous les opérations se font sur 32 bits (efficacité) Schéma de Feistel généralisé 47

SHA-0 E := D D := C C := ROT 30 (B) Tour numéro i {1,80} B := A A := ROT 5 (A) + f i (B,C,D) + E + Cst i + W i Fonction booléenne simple Constante de tour Sous-clé dérivée du message 48

SHA-0 Valeurs initiales de (A B C D E) = 67452301 efcdab89 98badcfe 10325476 c3d2e1f0 Cst i = (suivant la valeur de i) 5a827999 ou 6ed9eba1 ou 8f1bbcdc ou ca62c1d6 Fonction f i =(suivant la valeur de i) XOR(x,y,z) ou IF(x,y,z) ou MAJORITE(x,y,z) 49

SHA-0 Les sous-clés de 32 bits W i sont dérivées des mots du bloc de message (M i ) i=0,,15 Expansion linéaire : W i = M i pour i = 1 16 W i = (W i-3 W i-8 W i-14 W i-16 ) <<<1 pour i = 17 80 Ajouté dans SHA-1 50

SHA Le tour élémentaire est inversible (Feistel généralisé)! On applique Davies - Meyer H i M i 80 tours H i+1 51

MD5 Version «renforcée» de MD4 (plus de tours) MD4 et MD5 développés par Rivest (RSA Labs) MD4 proposé en 1990 MD5 proposé en 1992 Très similaire à SHA-1 52

MD5 La fonction de compression est constituée de 64 tours : Bloc de Message (512 bits) A B C D A B C D Tous les objets manipulés font 32 bits 53

MD5 La fonction de compression est constituée de 64 tours : Bloc de Message (512 bits) A B C D F i A B C D Tous les objets manipulés font 32 bits 53

MD5 Fonction F i de la forme F i (A,B,C,D) = ROT s i (A + (D + f i (A,B,C) + Cst i +W i )) s i et Cst i sont donnés dans les spécifications W i = M π(i) Les mots du message initial sont simplement mélangés 54

Sécurité des fonctions MD2 : attaque en préimages MD4 : attaque en collisions MD5 : attaque en collisions SHA-0 : attaque en collisions SHA-1 : attaque en collisions SHA-256 : pas d attaque 55

Synthèse Remous dans le domaine des fonctions de hachage Attaques en collision contre MD4, MD5, SHA-0 Attaques théoriques contre SHA-1 en 2 63 En pratique, seul SHA-256 résiste encore Besoin de nouvelles primitives? SHA-3 Autres constructions à base de problèmes issus de la théorie des nombres avec preuve 56