Utilisation de la cryptographie par blocs Fonctions de hachage

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

ÉPREUVE COMMUNE DE TIPE Partie D

Authentification de messages et mots de passe

Fonction de hachage et signatures électroniques

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

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

INF 4420: Sécurité Informatique Cryptographie II

Modes opératoires pour le chiffrement symétrique

TP 2 : Chiffrement par blocs

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

INSTALLATION D'OPENVPN:

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.

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

Le protocole sécurisé SSL

Le protocole RADIUS Remote Authentication Dial-In User Service

1. Présentation de WPA et 802.1X

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

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

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

Chapitre 3 : Crytographie «Cryptography»

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

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

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

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

Sécurité des réseaux IPSec

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Présentation. LogMeIn Rescue. Architecture de LogMeIn Rescue

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

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.

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

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

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

Théorie et Pratique de la Cryptanalyse à Clef Publique

Pascal Gachet Travail de diplôme Déploiement de solutions VPN : PKI Etude de cas

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Programmation parallèle et distribuée

Réseaux Privés Virtuels

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

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

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

Cryptographie et fonctions à sens unique

Livre blanc. Sécuriser les échanges

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

Devoir Surveillé de Sécurité des Réseaux

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

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

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

Programmation parallèle et distribuée

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

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

CIBLE DE SECURITE CSPN DU PRODUIT PASS. (Product for Advanced SSO)

Cryptographie appliquée

How to Login to Career Page

Ordonnancement temps réel

Signatures électroniques dans les applications INTERNET

«Intimité et données privées sur Internet, qui se goinfre, comment se protéger?» La Quadrature du Net

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Le Passeport Biométrique. Benoit LEGER CISSP ISO LD

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

SSL/TLS: Secure Socket Layer/Transport Layer Secure Quelques éléments d analyse. GRES 2006 Bordeaux 12 Mai Ahmed Serhrouchni ENST-PARIS CNRS

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

Conventions d écriture et outils de mise au point

TECHNIQUES DE CRYPTOGRAPHIE

Architectures PKI. Sébastien VARRETTE

Exigences d aléa pour la sécurité

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Le protocole SSH (Secure Shell)

Cryptographie Quantique

Innovation in Home Insurance: What Services are to be Developed and for what Trade Network?

Cryptographie. Cours 3/8 - Chiffrement asymétrique

ASR1 TD7 : Un microprocesseur RISC 16 bits

La sécurité dans les grilles

PACKZ System Requirements. Version: Version: Copyright 2015, PACKZ Software GmbH. 1

La Technologie Carte à Puce EAP TLS v2.0

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

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

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

Chapitre VI - Méthodes de factorisation

La fonction exponentielle

SSH, le shell sécurisé

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

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.

V- Manipulations de nombres en binaire

INFO Cryptographie et sécurité informatique

LES SECURITES DE LA CARTE BANCAIRE

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

Sécurité des systèmes d'informations et communicants dans le médical

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

IPSEC : PRÉSENTATION TECHNIQUE

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

Partie Agir : Défis du XXI ème siècle CHAP 20-ACT EXP Convertisseur Analogique Numérique (CAN)

Discours du Ministre Tassarajen Pillay Chedumbrum. Ministre des Technologies de l'information et de la Communication (TIC) Worshop on Dot.

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

Rapport de certification

Transcription:

Utilisation de la cryptographie par blocs Fonctions de hachage 1

Les modes principaux d utilisation Supposons qu on ait un texte clair qu on découpe en plusieurs blocs d entrée x = x 1 x 2... x r. Comment va-t-on utiliser le système pour chiffrer ce texte clair?

3 Electronic Codebook Mode : ECB Le chiffrement. On part du texte clair x = x 1 x 2... x r où chaque bloc x i a la taille exacte t de l entrée du circuit de chiffrement. On calcule alors pour i = 1,..., r les textes chiffrés c i = e k (x i ). Le texte chiffré est c = c 1 c 2... c r. Le déchiffrement. On calcule pour i = 1,..., k les x i = d k (c i ). On reconstitue x = x 1 x 2... x r.

Cipher Block Chaining Mode : CBC Le chiffrement. Le texte clair est découpé en blocs x i, de taille t. En plus du texte clair x = x 1 x 2... x r on a besoin d un bloc initial IV tiré aléatoirement. Posons c 0 = IV. On calcule alors successivement : c 1 = e k (c 0 x 1 ), c 2 = e k (c 1 x 2 ),... c r = e k (c r 1 x r ), Le message chiffré est alors c = c 0 c 1 c 2... c r. Le déchiffrement s effectue en calculant successivement : x 1 = d k (c 1 ) c 0 x 2 = d k (c 2 ) c 1... x r = d k (c r ) c r 1

5 Avantage et inconvénients Mode ECB Deux blocs identiques sont chiffrés de la même façon Par contre il n y a pas propagation d erreurs Mode CBC Il y a propagation des erreurs Par contre il est utile dans un contexte d authentification

Fonctions de hachage 6

Fonctions de hachage Une fonction de hachage transforme un long message en un bloc court de taille fixe (le résumé, le condensé, l empreinte, le haché). Si bien que de nombreux messages ont le même résumé. Utilisation Vérifier l intégrité de données Signature numérique Mots de passe 1000 utilisation dans les systèmes d exploitations actuel

Fonctions de hachage Une fonction de hachage transforme un long message en un bloc court de taille fixe (le résumé, le condensé, l empreinte, le haché). Si bien que de nombreux messages ont le même résumé. Utilisation Vérifier l intégrité de données Signature numérique Mots de passe 1000 utilisation dans les systèmes d exploitations actuel

8 Critères de sécurité En pratique personne ne doit être capable de construire un message ayant un résumé donné (résistance à la détermination d une préimage), c est-à-dire qu une fonction de hachage doit être à sens unique. De plus, personne ne doit être capable en pratique de construire deux messages distincts ayant le même résumé (résistance aux collisions).

9 Fonctions de hachage résistantes aux collisions Définition Une fonction de hachage est dite résistante aux collisions s il est impossible en pratique de trouver deux valeurs x et x telles que h(x ) = h(x).

10 Trouver une collision pour h sur un ensemble de messages M De manière générale on se donne une fonction h : M C On choisit X une partie de M à q éléments. On calcule h(x) pour chaque x X Théorème La probabilité qu il y ait deux élément x x de X tels que h(x) = h(x ) est de ( 1 1 1 ) ( 1 2 ) (... 1 q 1 ) c c c Si q est assez petit devant c, elle est à peu près égale à ( ) q 2 1 exp. 2c Elle est égale à 1/2 si q 1, 17 c.

11 La probabilité qu il y ait deux élément x x de X ( tels ) que q h(x) = h(x 2 ) est à peu près égale à 1 exp 2c si q est assez petit devant c.

11 La probabilité qu il y ait deux élément x x de X ( tels ) que q h(x) = h(x 2 ) est à peu près égale à 1 exp 2c si q est assez petit devant c. La probabilité que pour deux élément x x de X on ait toujours h(x) h(x ) est de

La probabilité qu il y ait deux élément x x de X ( tels ) que q h(x) = h(x 2 ) est à peu près égale à 1 exp 2c si q est assez petit devant c. La probabilité que pour deux élément x x de X on ait toujours h(x) h(x ) est de ( 1 1 ) ( 1 2 ) (... 1 q 1 ) c c c

La probabilité qu il y ait deux élément x x de X ( tels ) que q h(x) = h(x 2 ) est à peu près égale à 1 exp 2c si q est assez petit devant c. La probabilité que pour deux élément x x de X on ait toujours h(x) h(x ) est de ( 1 1 ) ( 1 2 ) (... 1 q 1 ) c c c Si q est assez petit devant c

La probabilité qu il y ait deux élément x x de X ( tels ) que q h(x) = h(x 2 ) est à peu près égale à 1 exp 2c si q est assez petit devant c. La probabilité que pour deux élément x x de X on ait toujours h(x) h(x ) est de ( 1 1 ) ( 1 2 ) (... 1 q 1 ) c c c Si q est assez petit devant c ( exp 1 ) ( exp 2 ) c c ( = exp 1 + 2 + + q 1 ) c ( ) q(q 1) = exp 2c (... exp q 1 c )

La probabilité qu il y ait deux élément x x de X ( tels ) que q h(x) = h(x 2 ) est à peu près égale à 1 exp 2c si q est assez petit devant c. La probabilité que pour deux élément x x de X on ait toujours h(x) h(x ) est de ( 1 1 ) ( 1 2 ) (... 1 q 1 ) c c c Si q est assez petit devant c ( exp 1 ) ( exp 2 ) c c ( = exp 1 + 2 + + q 1 ) c ( ) q(q 1) = exp 2c (... exp q 1 c )

Applications Paradoxe des anniversaires Combien de personnes faut-il qu il y ait dans un groupe pour qu il y ait une probabilité de 1/2 que deux personnes partagent la même date d anniversaire? Taille minimale d une empreinte numérique. Il est recommandé d utiliser des empreintes numériques de 160 bits. L attaque des anniversaires aurait besoin de 2 80 hachages.

12 Applications Paradoxe des anniversaires Combien de personnes faut-il qu il y ait dans un groupe pour qu il y ait une probabilité de 1/2 que deux personnes partagent la même date d anniversaire? Taille minimale d une empreinte numérique. Il est recommandé d utiliser des empreintes numériques de 160 bits. L attaque des anniversaires aurait besoin de 2 80 hachages.

13 Les fonctions de hachage à usage de la cryptographie Les fonctions de hachage fournissent donc pour un x {0, 1} un résumé (ou condensé) y {0, 1} r où r est une taille fixée pour les sorties : y = h(x). Ces fonctions sont appelées fonctions de hachage MDC (Manipulation Détection Codes) ou MIC (Message Integrity Codes) ou plus simplement fonctions de hachage à usage de la cryptographie ;

La construction de MerkIe-Daingard Une fonction de compression est une fonction prenant en entrée une donnée binaire de taille s et retournant une donnée binaire de taille r (r < s). La construction de MerkIe-Daingard consiste à itérer une fonction de compression pour obtenir une fonction de hachage de {0, 1} dans {0, 1} r. A chaque itération de la fonction de compression, la donnée d entrée est composée d une partie du texte à hacher et de la sortie du tour précédent. La fonction de compression est très souvent de la forme : f (h, B) = π B (h) + h où les π B forment une famille de permutations. L utilisation de permutations évite les collisions internes L addition finale empêche les calculs arrières

La construction de MerkIe-Daingard Une fonction de compression est une fonction prenant en entrée une donnée binaire de taille s et retournant une donnée binaire de taille r (r < s). La construction de MerkIe-Daingard consiste à itérer une fonction de compression pour obtenir une fonction de hachage de {0, 1} dans {0, 1} r. A chaque itération de la fonction de compression, la donnée d entrée est composée d une partie du texte à hacher et de la sortie du tour précédent. La fonction de compression est très souvent de la forme : f (h, B) = π B (h) + h où les π B forment une famille de permutations. L utilisation de permutations évite les collisions internes L addition finale empêche les calculs arrières

La construction de MerkIe-Daingard Une fonction de compression est une fonction prenant en entrée une donnée binaire de taille s et retournant une donnée binaire de taille r (r < s). La construction de MerkIe-Daingard consiste à itérer une fonction de compression pour obtenir une fonction de hachage de {0, 1} dans {0, 1} r. A chaque itération de la fonction de compression, la donnée d entrée est composée d une partie du texte à hacher et de la sortie du tour précédent. La fonction de compression est très souvent de la forme : f (h, B) = π B (h) + h où les π B forment une famille de permutations. L utilisation de permutations évite les collisions internes L addition finale empêche les calculs arrières

La construction de MerkIe-Daingard Une fonction de compression est une fonction prenant en entrée une donnée binaire de taille s et retournant une donnée binaire de taille r (r < s). La construction de MerkIe-Daingard consiste à itérer une fonction de compression pour obtenir une fonction de hachage de {0, 1} dans {0, 1} r. A chaque itération de la fonction de compression, la donnée d entrée est composée d une partie du texte à hacher et de la sortie du tour précédent. La fonction de compression est très souvent de la forme : f (h, B) = π B (h) + h où les π B forment une famille de permutations. L utilisation de permutations évite les collisions internes L addition finale empêche les calculs arrières

La construction de MerkIe-Daingard Une fonction de compression est une fonction prenant en entrée une donnée binaire de taille s et retournant une donnée binaire de taille r (r < s). La construction de MerkIe-Daingard consiste à itérer une fonction de compression pour obtenir une fonction de hachage de {0, 1} dans {0, 1} r. A chaque itération de la fonction de compression, la donnée d entrée est composée d une partie du texte à hacher et de la sortie du tour précédent. La fonction de compression est très souvent de la forme : f (h, B) = π B (h) + h où les π B forment une famille de permutations. L utilisation de permutations évite les collisions internes L addition finale empêche les calculs arrières

La construction de MerkIe-Daingard Une fonction de compression est une fonction prenant en entrée une donnée binaire de taille s et retournant une donnée binaire de taille r (r < s). La construction de MerkIe-Daingard consiste à itérer une fonction de compression pour obtenir une fonction de hachage de {0, 1} dans {0, 1} r. A chaque itération de la fonction de compression, la donnée d entrée est composée d une partie du texte à hacher et de la sortie du tour précédent. La fonction de compression est très souvent de la forme : f (h, B) = π B (h) + h où les π B forment une famille de permutations. L utilisation de permutations évite les collisions internes L addition finale empêche les calculs arrières

La construction de MerkIe-Daingard 15

16 Plusieurs éléments rentrent en jeu dans ce schéma : la variable de chaînage CV (de taille r) qui correspond à la sortie du tour précédent. la valeur initiale IV qui est la première valeur de chaînage. Elle est choisie arbitrairement. le message x à hacher. Une entrée de la fonction de compression étant de taille s, dont r bits sont constitués par la variable de chaînage, le message va être découpé en blocs de taille s r. le padding ou bourrage qui consiste à compléter le document initial afin que sa taille soit un multiple de s r. Généralement on rajoute des 0 et un bloc de taille s r contenant la taille du message initial.

16 Plusieurs éléments rentrent en jeu dans ce schéma : la variable de chaînage CV (de taille r) qui correspond à la sortie du tour précédent. la valeur initiale IV qui est la première valeur de chaînage. Elle est choisie arbitrairement. le message x à hacher. Une entrée de la fonction de compression étant de taille s, dont r bits sont constitués par la variable de chaînage, le message va être découpé en blocs de taille s r. le padding ou bourrage qui consiste à compléter le document initial afin que sa taille soit un multiple de s r. Généralement on rajoute des 0 et un bloc de taille s r contenant la taille du message initial.

16 Plusieurs éléments rentrent en jeu dans ce schéma : la variable de chaînage CV (de taille r) qui correspond à la sortie du tour précédent. la valeur initiale IV qui est la première valeur de chaînage. Elle est choisie arbitrairement. le message x à hacher. Une entrée de la fonction de compression étant de taille s, dont r bits sont constitués par la variable de chaînage, le message va être découpé en blocs de taille s r. le padding ou bourrage qui consiste à compléter le document initial afin que sa taille soit un multiple de s r. Généralement on rajoute des 0 et un bloc de taille s r contenant la taille du message initial.

16 Plusieurs éléments rentrent en jeu dans ce schéma : la variable de chaînage CV (de taille r) qui correspond à la sortie du tour précédent. la valeur initiale IV qui est la première valeur de chaînage. Elle est choisie arbitrairement. le message x à hacher. Une entrée de la fonction de compression étant de taille s, dont r bits sont constitués par la variable de chaînage, le message va être découpé en blocs de taille s r. le padding ou bourrage qui consiste à compléter le document initial afin que sa taille soit un multiple de s r. Généralement on rajoute des 0 et un bloc de taille s r contenant la taille du message initial.

16 Plusieurs éléments rentrent en jeu dans ce schéma : la variable de chaînage CV (de taille r) qui correspond à la sortie du tour précédent. la valeur initiale IV qui est la première valeur de chaînage. Elle est choisie arbitrairement. le message x à hacher. Une entrée de la fonction de compression étant de taille s, dont r bits sont constitués par la variable de chaînage, le message va être découpé en blocs de taille s r. le padding ou bourrage qui consiste à compléter le document initial afin que sa taille soit un multiple de s r. Généralement on rajoute des 0 et un bloc de taille s r contenant la taille du message initial.

Pour obtenir la valeur h(x) à partir de la fonction de compression f, on utilise le procédé suivant : x Bourrage(x) = Y 1... Y t CV 0 IV CV i f (CV i 1, Y i ) i = 1... t h(x) CV t La construction de MerkIe et Daingard garantit que la sécurité de la fonction obtenue est au moins aussi élevée que la sécurité de la fonction de compression. De nombreuses fonctions de hachage sont basées sur cette construction : MD5, SHA-1, RIPEMD-160.

17 Pour obtenir la valeur h(x) à partir de la fonction de compression f, on utilise le procédé suivant : x Bourrage(x) = Y 1... Y t CV 0 IV CV i f (CV i 1, Y i ) i = 1... t h(x) CV t La construction de MerkIe et Daingard garantit que la sécurité de la fonction obtenue est au moins aussi élevée que la sécurité de la fonction de compression. De nombreuses fonctions de hachage sont basées sur cette construction : MD5, SHA-1, RIPEMD-160.

La sécurité de la fonction obtenue est au moins aussi élevée que la sécurité de la fonction de compression. 18 x Bourrage(x) = Y 1... Y t CV 0 IV CV i f (CV i 1, Y i ) i = 1... t h(x) CV t Si on peut construire un collision h(x) = h(x ), alors soient x = Y 1... Y t, et x = Y 1... Y t. On a f (CV t 1, Y t ) = f (CV t 1, Y t ). Ou bien c est une collision de la fonction de compression f, ou bien (CV t 1, Y t ) = (CV t 1, Y t ). Dans ce dernier cas, on a Y t = Y t, donc t = t car les derniers blocs contiennent la taille du message. On a aussi CV t 1 = CV t 1, donc f (CV t 2, Y t 1 ) = f (CV t 2, Y t 1 ), et on raisonne de même. On finit par avoir Y i Y i car les messages sont différents, d où une collision de la fonction de compression.

La sécurité de la fonction obtenue est au moins aussi élevée que la sécurité de la fonction de compression. 18 x Bourrage(x) = Y 1... Y t CV 0 IV CV i f (CV i 1, Y i ) i = 1... t h(x) CV t Si on peut construire un collision h(x) = h(x ), alors soient x = Y 1... Y t, et x = Y 1... Y t. On a f (CV t 1, Y t ) = f (CV t 1, Y t ). Ou bien c est une collision de la fonction de compression f, ou bien (CV t 1, Y t ) = (CV t 1, Y t ). Dans ce dernier cas, on a Y t = Y t, donc t = t car les derniers blocs contiennent la taille du message. On a aussi CV t 1 = CV t 1, donc f (CV t 2, Y t 1 ) = f (CV t 2, Y t 1 ), et on raisonne de même. On finit par avoir Y i Y i car les messages sont différents, d où une collision de la fonction de compression.

La sécurité de la fonction obtenue est au moins aussi élevée que la sécurité de la fonction de compression. 18 x Bourrage(x) = Y 1... Y t CV 0 IV CV i f (CV i 1, Y i ) i = 1... t h(x) CV t Si on peut construire un collision h(x) = h(x ), alors soient x = Y 1... Y t, et x = Y 1... Y t. On a f (CV t 1, Y t ) = f (CV t 1, Y t ). Ou bien c est une collision de la fonction de compression f, ou bien (CV t 1, Y t ) = (CV t 1, Y t ). Dans ce dernier cas, on a Y t = Y t, donc t = t car les derniers blocs contiennent la taille du message. On a aussi CV t 1 = CV t 1, donc f (CV t 2, Y t 1 ) = f (CV t 2, Y t 1 ), et on raisonne de même. On finit par avoir Y i Y i car les messages sont différents, d où une collision de la fonction de compression.

La sécurité de la fonction obtenue est au moins aussi élevée que la sécurité de la fonction de compression. 18 x Bourrage(x) = Y 1... Y t CV 0 IV CV i f (CV i 1, Y i ) i = 1... t h(x) CV t Si on peut construire un collision h(x) = h(x ), alors soient x = Y 1... Y t, et x = Y 1... Y t. On a f (CV t 1, Y t ) = f (CV t 1, Y t ). Ou bien c est une collision de la fonction de compression f, ou bien (CV t 1, Y t ) = (CV t 1, Y t ). Dans ce dernier cas, on a Y t = Y t, donc t = t car les derniers blocs contiennent la taille du message. On a aussi CV t 1 = CV t 1, donc f (CV t 2, Y t 1 ) = f (CV t 2, Y t 1 ), et on raisonne de même. On finit par avoir Y i Y i car les messages sont différents, d où une collision de la fonction de compression.

La sécurité de la fonction obtenue est au moins aussi élevée que la sécurité de la fonction de compression. 18 x Bourrage(x) = Y 1... Y t CV 0 IV CV i f (CV i 1, Y i ) i = 1... t h(x) CV t Si on peut construire un collision h(x) = h(x ), alors soient x = Y 1... Y t, et x = Y 1... Y t. On a f (CV t 1, Y t ) = f (CV t 1, Y t ). Ou bien c est une collision de la fonction de compression f, ou bien (CV t 1, Y t ) = (CV t 1, Y t ). Dans ce dernier cas, on a Y t = Y t, donc t = t car les derniers blocs contiennent la taille du message. On a aussi CV t 1 = CV t 1, donc f (CV t 2, Y t 1 ) = f (CV t 2, Y t 1 ), et on raisonne de même. On finit par avoir Y i Y i car les messages sont différents, d où une collision de la fonction de compression.

19 Obtention d une collision (méthode rho de Pollard) Soit x 0 un point quelconque de l ensemble de départ E d une fonction de compression f de taille de blocs 2m. On note G(x) = f (IV, x) On itére G: x i+1 = G(x i ) pour i = 1,..., 2 m Il existe i et j tels que x i = x j avec une bonne probabilité. On a donc une collision pour la fonction f (IV, x) Algorithme Calculer x m Calculer G t (x m ) jusqu à ce que G τ (x m ) = x m Calculer x τ Calculer G t (x 0 ) et G t (x τ ) jusqu à ce que G i (x 0 ) = G i (x τ ) Collision entre a = G i 1 (x 0 ) et b = G i 1 (x τ )

19 Obtention d une collision (méthode rho de Pollard) Soit x 0 un point quelconque de l ensemble de départ E d une fonction de compression f de taille de blocs 2m. On note G(x) = f (IV, x) On itére G: x i+1 = G(x i ) pour i = 1,..., 2 m Il existe i et j tels que x i = x j avec une bonne probabilité. On a donc une collision pour la fonction f (IV, x) Algorithme Calculer x m Calculer G t (x m ) jusqu à ce que G τ (x m ) = x m Calculer x τ Calculer G t (x 0 ) et G t (x τ ) jusqu à ce que G i (x 0 ) = G i (x τ ) Collision entre a = G i 1 (x 0 ) et b = G i 1 (x τ )

19 Obtention d une collision (méthode rho de Pollard) Soit x 0 un point quelconque de l ensemble de départ E d une fonction de compression f de taille de blocs 2m. On note G(x) = f (IV, x) On itére G: x i+1 = G(x i ) pour i = 1,..., 2 m Il existe i et j tels que x i = x j avec une bonne probabilité. On a donc une collision pour la fonction f (IV, x) Algorithme Calculer x m Calculer G t (x m ) jusqu à ce que G τ (x m ) = x m Calculer x τ Calculer G t (x 0 ) et G t (x τ ) jusqu à ce que G i (x 0 ) = G i (x τ ) Collision entre a = G i 1 (x 0 ) et b = G i 1 (x τ )

20 Fonctions de hachage à deux entrées Code d authentification de message (MAC) Ici, la fonction de hachage agit sur une entrée et une clé secrète. Les fonctions de hachage qui ont deux entrées, d une part le texte à condenser x {0, 1}, d autre part une clé k {0, 1} r, Elles sortent un résumé y {0, 1} t : y = h(x, k). Pour se servir d une telle fonction en tant qu authentificateur de message (MAC), on calcule pour un message x et une clé secrète k la marque h(x, k). Le message transmis est alors (x, h(x, k)). Le correspondant s assure avec la clé secrète partagée, que le fichier est bien intègre.

20 Fonctions de hachage à deux entrées Code d authentification de message (MAC) Ici, la fonction de hachage agit sur une entrée et une clé secrète. Les fonctions de hachage qui ont deux entrées, d une part le texte à condenser x {0, 1}, d autre part une clé k {0, 1} r, Elles sortent un résumé y {0, 1} t : y = h(x, k). Pour se servir d une telle fonction en tant qu authentificateur de message (MAC), on calcule pour un message x et une clé secrète k la marque h(x, k). Le message transmis est alors (x, h(x, k)). Le correspondant s assure avec la clé secrète partagée, que le fichier est bien intègre.

20 Fonctions de hachage à deux entrées Code d authentification de message (MAC) Ici, la fonction de hachage agit sur une entrée et une clé secrète. Les fonctions de hachage qui ont deux entrées, d une part le texte à condenser x {0, 1}, d autre part une clé k {0, 1} r, Elles sortent un résumé y {0, 1} t : y = h(x, k). Pour se servir d une telle fonction en tant qu authentificateur de message (MAC), on calcule pour un message x et une clé secrète k la marque h(x, k). Le message transmis est alors (x, h(x, k)). Le correspondant s assure avec la clé secrète partagée, que le fichier est bien intègre.

Les codes d authentification de message (MAC) On peut utiliser des circuits de chiffrement par bloc comme AES, dans le mode CBC: c est le principe de EMAC; CBC-MAC Le message x est découpé en blocs x = x 1 x 2... x r de taille t. Le dernier bloc, s il n est pas de la bonne taille, est terminé par des zéros. On prendra pour bloc initial c 0 = 0. On calcule alors successivement : c 1 = e k (c 0 x 1 ), c 2 = e k (c 1 x 2 ),... c r = e k (c r 1 x r ), La marque à joindre au message est c r.

Bart Preneel In spite of the popularity of cryptographic hash functions, very few theoretical results are known in this area; Collision resistance seems to be a condition that is particularly hard to analyze. Some open problems are whether it is possible to construct collision resistant hash functions based on weaker assumptions, and whether any theory can be developed to support the current constructions. In the area of practical constructions, there is a need for more efficient hash functions, the security of which is better understood. For hash functions based on block ciphers, the main problem seems to be the assumptions on the block cipher.

Historique des fonction de hachage Depuis quelques années un certain nombre de fonctions de hachage ont été cassées car on a trouvé des collisions. SHA2, qui regroupe SHA224, SHA256, SHA384,SHA512, n est pas (encore) touchée. Le NIST qui propose ces fonctions dans son standard de fonctions de hachage, a ouvert un appel d offre international, ainsi qu il avait fait pour AES, pour un futur standard SHA3 qu il espère mettre en place en 2012. 23