Fonctions de hachage, suite

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

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

ÉPREUVE COMMUNE DE TIPE Partie D

Authentification de messages et mots de passe

Fonction de hachage et signatures électroniques

Modes opératoires pour le chiffrement symétrique

Résolution d équations non linéaires

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

Cryptographie et fonctions à sens unique

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

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

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Nombre de marches Nombre de facons de les monter

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

Université Paris-Dauphine DUMI2E 1ère année, Applications

Simulation de variables aléatoires

Synthèse de cours (Terminale S) Calcul intégral

3 Approximation de solutions d équations


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

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

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Cours de bridge. Guillaume Lafon

I. Ensemble de définition d'une fonction

Cryptographie. Cours 3/8 - Chiffrement asymétrique

INF 4420: Sécurité Informatique Cryptographie II

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

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

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Calcul fonctionnel holomorphe dans les algèbres de Banach

Chapitre 2 Le problème de l unicité des solutions

Théorèmes de Point Fixe et Applications 1

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

Chapitre 1. L intérêt. 2. Concept d intérêt. 1. Mise en situation. Au terme de ce chapitre, vous serez en mesure de :

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

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Le protocole SSH (Secure Shell)


Dérivation : Résumé de cours et méthodes

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

La fonction exponentielle

Représentation des Nombres

Exemple 4.4. Continuons l exemple précédent. Maintenant on travaille sur les quaternions et on a alors les décompositions

Probabilités sur un univers fini

Exo7. Probabilité conditionnelle. Exercices : Martine Quinio

Exercices Corrigés Premières notions sur les espaces vectoriels

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

LES DECIMALES DE π BERNARD EGGER

Comparaison de fonctions Développements limités. Chapitre 10

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Moments des variables aléatoires réelles

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

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

Eteindre. les. lumières MATH EN JEAN Mme BACHOC. Elèves de seconde, première et terminale scientifiques :

ELEC2753 Electrotechnique examen du 11/06/2012

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Correction du baccalauréat ES/L Métropole 20 juin 2014

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Durée de L épreuve : 2 heures. Barème : Exercice n 4 : 1 ) 1 point 2 ) 2 points 3 ) 1 point

Principe de symétrisation pour la construction d un test adaptatif

TSTI 2D CH X : Exemples de lois à densité 1

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

Condition de stabilité d'un réseau de les d'attente à deux stations et N classes de clients 1

MIS 102 Initiation à l Informatique

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

TP 2 : Chiffrement par blocs

Couples de variables aléatoires discrètes

Module : systèmes asservis linéaires

Algorithmes d'apprentissage

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Exigences d aléa pour la sécurité

I. Introduction aux fonctions : les fonctions standards

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.

Cours de Probabilités et de Statistique

Le protocole sécurisé SSL

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

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

Date : Tangram en carré page

Gilles GUETTE IRISA Campus de Beaulieu, Rennes Cedex, France

Oracles Cryptographiques. Trouver une joke de padding

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Logique. Plan du chapitre

Travaux dirigés d introduction aux Probabilités

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Analyse de PRESENT avec peu de données

Modélisation et simulation

Initiation à l algorithmique

Chapitre. Chapitre 12. Fonctions de plusieurs variables. 1. Fonctions à valeurs réelles. 1.1 Définition. 1.2 Calcul de dérivées partielles

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Techniques d interaction dans la visualisation de l information Séminaire DIVA

La persistance des nombres

La sécurité dans un réseau Wi-Fi

Ordonnancement. N: nains de jardin. X: peinture extérieure. E: électricité T: toit. M: murs. F: fondations CHAPTER 1

Chaînes de Markov au lycée

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

Quelques tests de primalité

Peut-on imiter le hasard?

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Transcription:

Fonctions de hachage, suite 19 évrier 2015 Si on résume ce qu on a vu précédement, on a vu qu une «bonne «onction de hachage cryptographique doit avoir tout un paquet de propriétés... et que dans le ond on aimerait que ce soit quelque chose d impossible (un oracle alétoire). 1 Propriétés de base Redonnons une déinition des propriétés de base. 1.1 Fonctions à sens unique Déinition : One-Way Function Une onction : A B est une une «One-Way Function» (OWF) (à sens unique, ou résistante aux préimages) si : i) Pour tout x A, calculer (x) est acile. ii) Pour tous les y B (sau éventuellement une raction négligeable), trouver un x tel que (x) = y est calculatoirement impossible. Le y ci-dessus une une préimage de x (ou un antécédent). Remarquons tout de suite qu il existe un algorithme simple pour essayer de trouver une préimage : la recherche exhaustive. Un attaquant pourrait essayer de calculer les empreintes de chaines de bits aléatoires jusqu à ce qu il obtienne une préimage de l empreinte voulue. A chaque essai, il va avoir grosso-modo une chance sur 2 n de réussir. Il lui audra donc, en moyenne, 2 n essais (ceci utilise implicitement l espérance d une loi de probabilité géométrique). Par conséquent, pour qu une onction de hachage cryptographique soit à sens unique en 2015, il aut choisir n 128. Remarquez la diérence avec les onctions de hachage utilisées pour les tables de hachage (dont la sortie ait 32 ou 64 bits). Notez qu on ne connaît pas à ce jour de onctions qui sont à prouvablemet à sens unique. Il y a beaucoup de onctions qu on ne sait pas inverser, et il y en a même où l on sait que réussir à les inverser est au moins ausssi dur qu un problème mathématique diicile. Mais on a pas de preuve 1

que résoudre le problème en question est intrinsèquement dur. L existence de onction à sens unique impliquerait P NP. 1.2 Secondes préimages Déinition : One-Way Hash Function Une onction de hachage : {0, 1} {0, 1} n est une une «One-Way Hash Function» (OWHF) si : i) Elle est à sens unique. ii) Étant donné x A trouver un x x tel que (x) = (x ) est calculatoirement impossible. Le x ci-dessus une une seconde préimage de x. La résistance aux secondes préimages implique la résistance aux préimages. On le montre par contraposée : on montre en ait que si on peut trouver acilement des préimages, alors on peut trouver acilement des secondes préimages. Et en eet, si on avait sous la main un algorithme qui calcule des préimages, alors on pourrait l utiliser directement pour calculer une préimage de l empreinte du message de départ. Par contre, la résistance aux préimages n implique pas la résistance aux secondes préimages. Démonstration. Pour montrer la «non-implication», on montre qu il existe une onction qui résiste aux secondes préimages mais pas aux préimages. Soit h : {0, 1} {0, 1} n une onction de hachage résistante aux secondes préimages. On abrique à partir de h une nouvelle onction de hachage g de la açon suivante : { 1 x si x est de longueur n g(x) = 0 h(x) sinon On va voir que g résiste aux secondes préimages, mais pas aux préimages. Trouver des préimages est acile, au moins dans le cas où l empreinte qu on nous demande d inverser commence par le bit «1». Dans la moitié des cas (= pas une raction négligeable), inverser g est acile. Montrons maintenant que g résiste aux secondes préimages. Pour cela, supposons qu on ait un algorithme A g qui trouve des préimages sur g, et cherchons à obtenir une contradiction. Cette contradiction on va l obtenir en abriquant un algorithme A h qui trouve des secondes préimages sur h. Ceci n est pas possible par hypothèse. Remarquons que si g(x) = g(y) et x y, alors ni x n est pas de longeur n (et y aussi, en retournant l argument). En eet, si x = n, alors g(x) = 1 x. Et g(x) = g(y) implique alors orcément x = y, une contradiction. Par conséquent, x et y sont de longueur diérente de n. Par conséquent, si y est une seconde préimage de x pour g, alors on sait que g(x) = g(y) = 0 h(x) = 0 h(y). Il en découle que y est une préimage de x pour h. Et voilà comment on «casse» h qui est censée être résistante. 2

Déinition : Collision-Resistant Hash Function Une onction H est une Collision-Resistant Hash Function (CRHF) s il est calculatoirement impossible de produire x x tels que H(x) = H(x ). La résistance aux collisions implique la résistance aux secondes préimages (c.a.d. qu une CRHF est en particulier une OWHF). Mais ça, c est laissé en exercice au lecteur. 2 Le paradoxe des anniversaires Comme on a ait pour la résistance aux préimages, imaginons qu un adversaire essaye de trouver des collisions par «orce brute». Imaginons qu il calcule les empreintes de messages aléatoires tous diérents jusqu à ce qu il en trouve deux pareils. Combien de temps cela va-t-il lui prendre? Raisonnement intuiti mais aux. Considérons deux messages aléatoires x et y. La probabilité que H(x) = H(y) est de 1/2 n. Maintenant, si on a sous la main non pas deux, mais trois messages x, y et z, on peut obtenir une collision si H(x) = H(y) ou bien si H(x) = H(z), ou bien si H(y) = H(z). On a trois ois plus de chance! En gros, si on possède les empreintes de k messages, alors on a en ait k(k 1)/2 couples de messages. Chaque couple nous donne une chance sur 2 n de gagner, donc avec nos k couples on a va trouver une collision avec probabilité environ k 2 /2 n. Cela signiie que si on veut trouver une collision avec probabilité 1, il suit de prendre k 2 n messages, c est-à-dire 2 n/2. Pour un adversaire, trouver une collision par orce brute est bien plus acile que de trouver une préimage par orce brute. Si n = 128, alors trouver une collision demandera 2 64 essais, ce qui est beaucoup mais n est pas loin de aire partie du domaine du possible. Versions rigoureuses. En ait, le raisonnement ci-dessus, même s il donne à peu près le bon résultat, n est pas correct mathématiquement. Le problème c est que si on sait que H(x) H(y) et que H(z) H(y), alors la probabilité que H(x) = H(z) n est pas 1/2 n mais 1/(2 n 1) en eet il y a une valeur «exclue», qui est précisément H(y). Voici donc une version rigoureuse : Théorème 1. Supposons que n balles soient lancées uniormément et indépendamment au hasard dans m paniers. Notons C l événement «au moins un panier contient au moins deux balles». Alors : 1 e n(n 1) 2m P [C] n(n 1) 2m Ce résultat a pris le nom de «paradoxe des anniversaires», bien que ce ne soit pas du tout un paradoxe. Ce qui est surprenant, c est que la probabilité que deux étudiants parmis les 24 qui suivent PAC aient la même date de naissance (jour et mois, mais pas année) est supérieure à 53% (on s attendrait à moins). 3

2.1 Applications Fonctions de hachage. Comment utiliser ceci? Si on imagine que chaque nouvelle empreinte est une chaine de n bits aléatoire, alors c est comme si on lançait une «balle» au hasard parmi 2 n «paniers». Si, par l eet du hasard, on génère deux ois la même chaine de bits, c est qu on a «lancé» deux balles dans le même panier. Avec 2 n/2 messages aléatoires, la probabilité d obtenir une collision est comprise entre 36% et 50%. Avec 4 2 n/2, elle est supérieure à 99.99%. Cela signiie que trouver des collisions, même sur une onction de hachage idéale, est bien plus rapide que de trouver des préimages, puisqu on s en tire en 2 n/2 essais au lieu de 2 n. Si on veut que trouver une collision soit aussi dur que (par exemple) trouver une cle de l AES par recherche exhaustive, alors il aut choisir des onctions de hachage avec n = 256 bits. PRNG à partir de Block Cipher. On a déjà vu qu il est possible de abriquer un générateur pseudo-aléatoire (PRNG) à partir d un Block Cipher. La cle du PRNG sert de cle au bloc cipher. On note : x i = E k (IV i) Il s agit du mode «compteur». La sortie du PRNG est la séquence des blocs x i. On rappelle qu un PRNG est de qualité cryptographique s il est impossible de distinguer sa sortie de bits «vraiment» aléatoires. Ici, le paradoxe des anniversaires peut être utilisé comme distingueur. En eet, tant que le compteur i ne «déborde» pas, alors les blocs x i sont tous diérents. Si ces blocs ont n bits de long, alors le paradoxe des anniversaires garantit qu après en avoir observé 4 2 n/2, alors on devrait avoir vu une collision. Si n = 64, par exemple (avec le DES), il suit d environ 2 34 blocs de 64 bits, soit 128Go de bits pseudo-aléatoires, pour être quasiment certain de «détecter» ce PRNG. Double-DES et Two-Key-Triple-DES. TODO 3 Mode opératoire de Merkle-Damgård Pour traiter des chaines de bits arbitrairement longues, on peut utiliser une technique comparable à celle employée pour le chirement de longs messages. On va traiter le message en entrée progressivement, morceau par morceau. La technique décrite ici est le mode opératoire de Merkle-Damgård du nom de ceux qui l ont décrit précisément en 1990, et qui ont démontré certaines de ses propriétés. Il a été largement utilisé ensuite, dans MD5, SHA-1/2... Mais à cause d un certain nombre de ses problèmes, SHA-3 est construit diérement. 4

3.1 Description L idée consiste à utiliser de manière itérative une onction de compression : {0, 1} n+m {0, 1} n. La onction de compression est une «petite» onction de hachage, qui «hache» n + m bits en n bits. Elle possède généralement deux entrées qui ont des rôles distincts : le bloc de message et la valeur de chainage. Un petit dessin est plus explicati : m 0 m 1 m 2 m r IV h 0 h 1 h 2 H(M) Le message M donc on veur une empreinte est découpé en blocs de m bits, et ces blocs sont hachés successivements. La première valeur de chainage, l IV, est une constante ixé par la spéciication des onctions de hachages concrètes. Un padding est appliqué sur le dernier bloc (ceci permet de hacher des messages dont la taille n est pas un multiple de m bits). Ce padding doit contenir la taille du message (avant ajout du padding, bien sûr). Pour donner une idée, dans SHA-1, les valeurs de chainages ont n = 160 bits et les blocs de message m = 512 bits. Dans le dernier bloc, la taille du message est donnée en bits, et est codée sur 64 bits. Ceci impose une limite (absurdement élévée) sur la taille des messages qui peuvent être hachés. Dans SHA-2, les blocs ont m = 1024 bits, et la taille des messages est codée sur 128 bits. La taille des valeurs de chainage est de 256 ou 512 bits. 3.2 Résistance aux préimages et aux collisions L intérêt principal de ce mode opératoire c est qu il possède des ormes de «sécurité prouvée». Plus exactement, on sait que si la onction de compression n a pas trop de problèmes, alors l ensemble sera raisonnablement sûr. Tout d abord, il est acile de voir que si on est capable de trouver des préimages sur H, alors on est capable d en trouver sur. Plus précisément, on sait que : Théorème 2 (Merkle-Damgård, 1990). Si la onction de compression est résistance aux collisions, alors la onction de hachage construite à partir de via le mode opératoire de Merkle-Damgård est résistante aux collisions. Démonstration. TODO 5

L avantage principal de ce mode opératoire est que pour produire une bonne onction de hachage, il suit de produire une bonne onction de compression. En plus, il est rapide, et permet de produire les empreintes «à la volée», sans avoir à stocker l ensemble du message. On a longtemps cru que si la onction de compression résistait aux secondes préimages, alors la onction itérée y résistait aussi. C est en 2006 qu on s est rendu compte que ce n était pas vrai. Kelsey et Schneier ont montré qu on pouvait calculer une seconde préimage d un message M en temps 2 n / M, donc plus rapidement que les 2 n auxquels on devrait avoir droit, et ce quelle que soit la onction de compression. 3.3 Problèmes Le mode opératoire de Merkle-Damgård soure cependant d un certain nombre de déauts. Certains sont réparables, mais pas tous. Recyclage des collisions. Une ois qu on a trouvé une collision dans la onction de compression, on peut s en re-servir sans limite. En eet, si on connaît deux séquences de blocs diérentes M 0 et M 1 qui produisent la même valeur de chainage, alors on peut rajouter n importe quoi derrière et la collision continue. Tant qu il n y a pas de collisions sur la onction de compression, tout va bien, mais par exemple dans le cas de MD5, cela signiie que de telles collisions peuvent être utilisée de manière très dangereuse. La «length-extension attack». L un des plus gros problème avec Merkle-Damgård est la length-extension attack. Si je connais H(M), alors je peux calculer H(M S) pour un suixe S de mon choix. Et ceci, même sans connaître M (enin, en connaissant sa taille, et éventuellement un petit bout de la in). L idée, c est que le début de P soit le padding qui aurait été ajouté à la in de M. En eet, H(M) est précisément la valeur de chainage qu on obtient après avoir traité M et son padding. Sa connaissance permet donc de «reprendre» le processus de hachage. Ce problème est assez ennuyeux, par exemple parce qu il interdit de construire un code d authentiication de message de la açon suivante : MAC(K, M) = H(K, M). En eet, de la sorte, quelqu un qui obtiendrait un tag d un message M pourrait produire des tags pour une ininité de messages qui commencent par M. Une possibilité pour éviter ça consiste à transormer de manière irreversible la dernière valeur de chainage avant de la renvoyer. C est comme ça qu est déinit dans la RFC 2104 le MAC standard : HMAC(sk, M) = H ( sk opad H (sk ipad M) ). Ici, ipad et opad sont des constantes ixées et connues de tous. 6

Multi-collisions. Un autre problème, découvert en 2004 par A. Joux est lié au caractère itéré de la onction (et il est très diicile à éviter). Une ois qu on peut trouver des collisions sur la onction de compression, on peut abriquer un nombre exponentiellement grand de messages tous diérents, mais qui ont la même empreinte. L idée est qu il y a 2 k chemins entre IV et la valeur de chainage h k dans le graphe ci-dessous, alors que k collisions sont nécessaires à sa réalisation. m 0 m 1 m 2 IV h 0 h 1 h 2 h k m 0 m 1 m 2 4 Constructions à base de Block Cipher Il reste à pouvoir abriquer de bonnes onctions de compression. On peut en aire à base de Block Cipher. Une méthode largement utilisée est la construction de Davies-Meyer : F (h, m) = E(m, h) h. En gros, on chire la valeur de chainage en uilitsant le bloc de message comme cle. On re-xore la valeur de chainage par dessus pour que la onction ne soit pas acilement inversible. Réussir à trouver une collision n est pas acile. En eet, si F (h, m) = F (h, m ), alors on a E(m, h) = E(m, h). Pour un Block Cipher raisonnable, il n est pas possible de trouver deux cles diérentes qui envoient h sur h. Les Block Cipher habituels ne sont cependant pas directement utilisables. D abord, leur bloc n est pas assez gros (il en audrait avec des blocs de 256 bits). De plus, le problème est que les cles sont connues! Elles sont même sous le contrôle des adversaires (ce qui ouvre des possibilités concrètes d attaques à cles liées). La plupart des Block Cipher ne sont pas conçus pour un usage aussi détourné. C est pour cela que dans les onctions de hachage, on trouve des Block Cipher ad hoc (gros bloc, grosse cle, key-schedule particulièrement renorcé, etc.). Notons une caractéristique particulière : la valeur de chainage h 0 = D(m, 0) est un point ixe pour le bloc de message m. On a en eet F (h 0, m) = h 0. En pratique ceci est très diicile à utiliser pour aire des attaques, car on ne sait pas trouver une séquence de blocs qui produit la valeur magique h 0 (sinon on saurait trouver des préimages). On ne sait pas non plus aire l inverse : calculer un bloc de message m qui erait point ixe pour une valeur de h donnée. 7