Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements...

43
Cours 4MMCSR - Codage et sécurité des réseaux - 2014 - Objectif: présentation des aspects principaux à prendre en compte pour construire un système informatique distribué fonctionnant de manière sûre, même en contexte ouvert (i.e. en présence d’erreurs aléatoires et/ou d’attaques malicieuses). L’accent est mis sur: les technologies appliquées de cryptologie et de codage pour la sécurité des communications (confidentialité, l'authentification, l’intégrité, la non-répudiation) et leur intégration effective illustrée sur des applications de télécommunications; des séances TPs en salle machine complètent les séances de cours; un TP individuel de sécurité appliquée: chaque binôme choisi un sujet parmi ceux proposés. Des sujets permettent de mettre en œuvre des exemples techniques d'attaques, car pour pouvoir effectuer de la sécurité défensive, il est nécessaire de savoir attaquer. Ce travail est aussi basé sur la lecture et la compréhension d'articles de recherche récents relatifs à la sécurité appliquée. 1

Transcript of Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements...

Page 1: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Cours 4MMCSR - Codage et sécurité des réseaux - 2014 -

•  Objectif: présentation des aspects principaux à prendre en compte pour construire un système informatique distribué fonctionnant de manière sûre, même en contexte ouvert (i.e. en présence d’erreurs aléatoires et/ou d’attaques malicieuses).

•  L’accent est mis sur: –  les technologies appliquées de cryptologie et de codage pour la sécurité des

communications (confidentialité, l'authentification, l’intégrité, la non-répudiation) et leur intégration effective illustrée sur des applications de télécommunications;

–  des séances TPs en salle machine complètent les séances de cours; –  un TP individuel de sécurité appliquée: chaque binôme choisi un sujet parmi ceux

proposés. Des sujets permettent de mettre en œuvre des exemples techniques d'attaques, car pour pouvoir effectuer de la sécurité défensive, il est nécessaire de savoir attaquer. Ce travail est aussi basé sur la lecture et la compréhension d'articles de recherche récents relatifs à la sécurité appliquée. 1

Page 2: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Plan du cours https://ensiwiki.ensimag.fr/index.php/4MMCSR-Coding_and_Security_of_Networks-2013-2014

1)   C1 (JLR1 1,5h) Introduction. Structure de base: fonction à sens unique (SHA) et chausse trappe (El Gamal). Contrôle d'intégrité (hash, HMAC). TP1 (CL1 1,5h salle machine) : Techniques de base de cryptanalyse

2)  C2 (JLR2 1,5h) Codes détecteurs CRCs et implémentation LFSR. Propriétés. Exemples (ethernet) TP2 (CL2 1,5h salle machine) Implementation LFSR (Galois et Fibonacci)

3)  C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements, OpenSSL

4)  C4 (JLR3 1,5h) Codes correcteurs et distance; codes linéaires. Exemple Codes de Hamming (minitel) Présentation des sujets de TPs en binomes TP4 (VR1 1,5h salle machine) Codes détecteurs et correcteurs: CRC et Hamming

5)  C5 (CL5 (1,5h) Fonctions de hash et MACs TP5 (CL6 1,5h salle machine) Fonctions de hash

6)  C6 (VR2, 1,5h) Réseaux sans fils et correction des effacements. Codes LDPC et Raptor. TP6 (CL7+AK+JA) Travail individuel (salle cours)

7)  C7 (VR3, 1,5h) Intégration des codes en telecom: niveau couche MAC; niveau service Multimedia Broadcast Multicast Service MBMS / 3GPP TP7 (VR4, 1,5h, salle machine) codes LDPC

8)  TP8 (AK1+JLR, 1,5h, salle machine) Travail individuel TP9 (JA2,+CL 1,5h, salle machine) Travail individuel

9)  C8 (JLR4, 1,5h) Rafales d'erreurs, entrelacements. Exemples de codes embarqués (Galileo; CIRC disques compacts CD/DVD; turbo-codes/ADSL) C9 (CL8, 1,5h) Chiffrements asymétriques, Architectures PKI, Certificats X509

10)  TP10 (AK1+JLR, 1,5h, salle machine) Travail individuel TP11 (JA2,+CL 1,5h, salle machine) Travail individuel

11)  C10 (CL9, 1,5h) Sécurité et aléatoire, Génération de clefs TP12 (CL10, 1,5h, salle machine) Stéganograhie

12)  C11+C12 (AK3 1,5h ; JA3 1,5h ; CL+JLR+VR): Présentation des TPs par binôme= 9' minutes d'exposé + 3' questions. 2

Page 3: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

INTRODUCTION

3

Page 4: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Notion de code

•  Le code doit répondre à différents critères :

–  Rentabilité : compression des données. –  Sécurité de l’information : cryptage, authentification, etc. –  Tolérance aux fautes : correction/détection d’erreurs.

4

Page 5: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Fondation: théorèmes de Shannon 1948

•  Compression : « Pour toute source X d’entropie H(x) on peut trouver un code dont la longueur moyenne s’approche de H(X) d’aussi prêt que l’on veut » –  Algorithme d’Huffman, extensions de sources

•  Correction d’erreurs : « Pour tout canal on peut toujours trouver une famille de codes dont la probabilité d’erreur après décodage tend vers 0 »

•  Cryptage : « si un chiffrement est parfait, alors il y a au moins autant de clefs possibles que de messages » –  Un cryptanalyste doit obtenir au moins H(M) informations pour retrouver M –  version moderne: indistingable

5

Page 6: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

À quoi sert la cryptographie (CAIN) ?

•  Confidentialité des informations stockées ou manipulées –  Seuls les utilisateurs autorisés peuvent accéder à l’information

•  Authentification des utilisateurs –  L’utilisateur est-il ou non autorisé ? Pour quelle action ?

•  Intégrité des informations stockées ou manipulées –  Contre l’altération des données

•  Non-répudiation des informations –  Empêcher un utilisateur de se dédire

6

Page 7: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

CONFIDENTIALITE

7

Page 8: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Cryptographie

•  Information chiffrée Connaissance de l’existence de l’information

≠ Connaissance de l’information

•  Objectif –  Permettre à Alice et Bob de communiquer sur un canal peu sûr

•  Réseau informatique, téléphonique, etc. –  Oscar ne doit pas comprendre ce qui est échangé

8

Page 9: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Algorithmes de cryptographie

•  Propriétés théoriques nécessaires :

1.  Confusion Aucune propriété statistique ne peut être déduite du message chiffré

2.  Diffusion Toute modification du message en clair se traduit par une modification complète du chiffré

9

Page 10: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Cryptographie ancienne

Code (change les mots)

Alphabet ou Chiffre (change les lettres)

Substitution

Cryptographie

Transposition (mélange les lettres)

10

Page 11: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Transposition

•  Chiffrement de type anagramme : mélange les lettres du message •  Sécurité théorique

–  Message de 35 lettres : 35! chiffrés possibles •  Problèmes

–  Confusion sur la syntaxe mais … chaque lettre conserve sa valeur –  Clé de chiffrement « complexe » –  Ex: Scytale spartiate (5ème siècle av JC)

11

Page 12: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Substitution

•  Chiffrement en changeant d’alphabet –  Kama sutra : mlecchita-vikalpà (art de l’écriture secrète, 4ème siècle av JC)

•  Sécurité théorique –  Alphabet de 26 lettres : 26! alphabets possibles

•  Problèmes –  Confusion sur l’alphabet mais … chaque lettre conserve sa place d’origine –  Ex: Chiffrement de Jules César (1er siècle av JC)

Alphabet clair : abcdefghijklmnopqrstuvwxyz Alphabet chiffré : DEFGHIJKLMNOPQRSTUVWXYZABC Texte clair : errare humanum est, perseverare diabolicum Texte chiffré : HUUDUH KXPDQXP HVW, SHUVHYHUDUH GLDEROLFXP

12

Page 13: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Cryptographie moderne

•  Principes de Auguste Kerckhoffs (1883)

1.  La sécurité repose sur le secret de la clef et non sur le secret de l’algorithme –  Canal +, Cartes Bleues, PS4 !!!

2.  Le déchiffrement sans la clef doit être impossible Trouver la clef à partir du clair et du chiffré est impossible (à l’échelle humaine)

•  Cœur: fonction à sens unique –  "impossible" à inverser

13

=> Fonction à sens unique paramétrée par une clef

Page 14: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Terminologie

•  Texte clair –  information qu’Alice souhaite transmettre à Bob

•  Chiffrement –  processus de transformation d’un message M de telle manière à le rendre

incompréhensible •  Fonction de chiffrement E •  Génération d’un chiffre (message chiffré) C = E(M)

•  Déchiffrement –  processus de reconstruction du message clair à partir du message chiffré

•  Fonction de déchiffrement D •  D(C) = D( E(M) ) = M (E est injective et D surjective)

14

Page 15: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Sécurité

•  Modèles d’attaque considérés:

1.  Texte chiffré connu : seul C est connu d’Oscar 2.  Texte clair connu : Oscar a obtenu C et le M correspondant 3.  Texte clair choisi : pour tout M, Oscar peut obtenir le C 4.  Texte chiffré choisi : pour tout C, Oscar peut obtenir le M

•  Garantir la confidentialité –  Impossible de trouver M à partir de E(M) –  Impossible de trouver la méthode de déchiffrement D à partir d’une

séquence {M1,…,Mk,E(M1),…,E(Mk)}

15

Page 16: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Algorithmes d’attaque 1.  Attaque exhaustive (par force brute)

•  Énumérer toutes les valeurs possibles de clefs •  64 bits à 264 clefs = 1.844 1019 combinaisons

•  Un milliard de combinaisons/seconde à 1 an sur 584 machines

2.  Attaque par séquences connues •  Deviner la clef si une partie du message est connu

ex: en-têtes de standard de courriels

3.  Attaque par séquences forcées •  Faire chiffrer par la victime un bloc dont l’attaquant connaît le contenu,

puis on applique l’attaque précédente …

4.  Attaque par analyse différentielle •  Utiliser les faibles différences entre plusieurs messages (ex: logs) pour

deviner la clef

•  etc 16

Page 17: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Attaques - quelques chiffres

•  La résistance d'un chiffrement dépend du nombre d'opérations requis pour le casser sans connaître le secret

•  #opérations effectuées par l’univers depuis le big-bang : 10123 –  Nombre particules dans l'univers : 10100

•  Echelle de Borel –  1010 = échelle humaine : attaque humaine –  1020 = échelle terrestre : attaque terrestre –  10100 = échelle cosmique : attaque cosmique –  >10100 = attaque super-cosmique

•  Taille de clef et attaque exhaustive : –  •Cle de 128 bits aléatoire : 2128 = 1036 –  •Cle de 256 bits aléatoire : 2256 = 1075 –  •Cle de 512 bits aléatoire : 2512 = 10150 –  •Mais attention aux failles !!!

17

Page 18: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Niveau de Sécurité estimés

bits 80 (SKIPJACK)

112 (3-DES)

128 AES-small

192 AES-medium

256 AES-large

RSA 1024 2048 3072 7168 13312

DLP 1024 2048 3072 7168 13312

EC DLP

192 224 256 384 521

•  Factorisation ¼ Ln[1/3,1.923+o(1)] = exp( (1.923+o(1))ln(n)1/3ln(ln(n))2/3 ) •  Calcul d’index pour le log discret ¼ Lp[1/3,1.923+o(1)] •  DLP sur courbes elliptiques : Pollard rho ¼ O(n1/2)

18

Page 19: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Recommandations EMV, NIST

19

Page 20: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Types de cryptographie

•  En pratique E et D sont paramétrées par des clefs Kd et Ke

•  Deux grandes catégories de systèmes cryptographiques –  Systèmes à clefs secrètes (symétriques) : Ke=Kd=K –  Systèmes à clefs publiques (asymétriques) : Ke ≠ Kd

•  Deux types de fonctionnement –  Par flot : chaque nouveau bit est manipulé directement –  Par bloc : chaque message est découpé en blocs 20

Page 21: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Cryptographie symétrique

21

Page 22: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Chiffrement symétrique •  Définition : chiffrement parfait ssi l’attaquant n’a aucune information sur M

•  Définition : le chiffrement est parfait ssi : ∀ C chiffré ∀ M1≠M2 deux clairs : ProbK [ EK( M1 ) = C ] = ProbK [ EK( M2 ) = C ] (indistingabilité)

•  Condition suffisante : ∀ C chiffré ∀ M clair ∃! K clef : EK( M ) = C •  Condition nécessaire : la clef secrète est au moins aussi longue que le clair •  Exercice: 1) exemple d’un tel chiffre ?

2) pourquoi compresser le clair avant chiffrement ?

Source message

Source aléatoire secrète

DK(C) M

K

C EK(M)

M

Canal sécurisé K

Canal public

Alice Bob

22

Page 23: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Chiffrement à clef sécrète: DES et AES

•  AES : standard actuel (oct 2000) –  Advanced Encryption Standard www.nist.gov/AES –  Corps à 256 éléments : F256

•  DES [1972, IBM] Data Encryption Standard –  Exemple : Crypt unix –  Principe : chiffrement par bloc de 64 bits

•  clef 64 bits => 56 bits utiles + 16 transformations/rondes •  Chaînage entre 2 blocs consécutifs

–  Attaque brutale : 2^56 = 64.10^15 •  1000 PCs * 10^9 Op/s * 64000s = 20h !!!!

–  Contre mesures: augmenter l’entropie de la clef •  Double DES (???), Triple DES,... •  « Salt »: exemple Unix crypt

–  24 bits si bit i=1, permutation bit i et bit i+24) 23

Page 24: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Application : stockage des mots de passe

•  Principe: seul l’utilisateur devrait connaître son mot de passe –  Pourquoi ?

•  Pour chaque utilisateur, stockage de l’empreinte (hash) du mot de passe : –  Salage: suffixe ajouté au mot de passe (dynamique) –  Stockage d’une table des mots de passe encodés :

( identifiant ; hachage(mot de passe+salage) ; salage )

•  Exercice:

–  Quelle résistance aux attaques forces brute d’un attaquant qui aurait obtenu la table?

24

Page 25: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Fonction de Hachage

•  Fonction h : h(M) = résumé du message M sur un nombre fini de bits (exemple 256 bits)

•  Hachage cryptographique (« empreinte ») –  résiste aux collisions: il doit être calculatoirement impossible de trouver

2 messages M≠M’ tel que h(M)=h(M’)

•  SHA : Secure Hash Algorithm –  SHA-0, SHA-1 (MD5) –  SHA-2 [2001] : tailles blocs 256 ou 512 bits –  SHA-3 [2012] ( Keccak )

Page 26: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Fonction à sens unique ? exemple: «Logarithme discret »

•  (G, * ) : un groupe fini cyclique d’ordre n; g un générateur de G •  G = { gi ; i = 0, …, n-1 } Exemple ?

•  Exponentielle : Exp: { 0, …, n-1} → G définie par Exp(i) = gi

Coût du calcul de Exp (i ) = O( log (i) ) = O( log |G| ) [algorithme?] Exemple : 5 11 [7] = ((52)2 5)2 5 = ((4)2 5)2 5 = (2.5)2 5 = 2.5 = 3

•  Logarithme : Log : G → { 0, …, n-1} définie par Log(x) =i avec x= gi Exemple : trouver x / 6x = 8 [11] Coût du calcul de Log( i ) = Ω( n0.5) (pour G abstrait) [Shanks] [algorithme?]

–  Sur G=Zp*: prouvé « polynômialement plus coûteux » que la factorisation d’entiers` •  Conjecturé difficile pour certains groupes :

–  Très utilisé en cryptographie asymétrique : ex El Gamal, ECDLP –  Mais attention : certaines instances faciles –  Question Existe-t-il une fonction à sens unique "programmable" ?

(Réponse: x = 7 )

Page 27: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Cryptographie à clef publique (Cryptographie asymétrique)

Fonction à sens unique chausse trappe

Clef privée de Bob

« clef » publique de Bob

Bob

Pour Bob

Exp: Alice

Page 28: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Chiffrement asymétrique •  Asymétrique = boîte à lettres : C contient toute l’information sur M

•  Définition : parfait si, connaissant C et la fonction E, alors il est calculatoirement impossible de calculer M

–  Humain: 1010ordis (!!) *1015 op/sec (!!) * 128 bits (!) * 3000 ans < 1039 = 2130 op binaires –  Terre : 1050 opérations = –  Univers : 10125 = 2420 opérations « physiques » élémentaires depuis le bing bang

•  Les fonctions E et D = E-1 doivent vérifier :

–  X = E( M ) : facile à calculer : coût ( E (M) ) = « linéaire » en la taille de M –  M = D( X ) : calculatoirement impossible

•  Existe-t-il de telles fonctions à sens unique chausse-trappe ???

Source message DK(C) M C

EK(M) M

Canal public

Alice Bob

K privée

(Bob) K public

(Bob)

28

Page 29: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

29

Un exemple de chiffrement asymétrique: El Gamal

1.  Chiffrement 2.  Déchiffrement 3.  Cryptanalyse 4.  Signature

Un groupe fini G cyclique d’ordre n : •  avec n éléments et avec un élément g générateur :

G = {gi, i=0..p-1} et gn=1G •  Exemple: G=Zp*)

•  Chaque élément de G est représentable par ⌈log2 n⌉ bits •  Chaque message de ⌊log2 n⌋ bits est représentable par un elt de G

Page 30: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

30

Chiffrement ElGamal •  Bob: clef secrète: b random; clef publique = B=gb public (G, g, KB)

–  Question: comment Bob calcule-t-il la clef publique KB et à quel coût ?

•  Chiffrement par Alice: a random; EA(m)=(c1,c2) avec c1=ga et c2=m.Ba –  Questions: - quelle est la longueur du chiffré?

- pourquoi Alice choisit-t-elle k aléatoirement ?

•  Déchiffrement par Bob: DA( (c1, c2) ) = c2* c1n-b = m

•  Hypothèse de sécurité ? –  étant donné (g, ga, gb), il est calculatoirement dur (impossible) de calculer gab

–  Exercice: •  Si Eve sait casser ElGamal, sait-elle calculer le log discret? •  Pourquoi Alice choisit-t-elle k aléatoirement ? •  Peut-elle utiliser le même k deux fois ?

Page 31: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

AUTHENTIFICATION

31

Page 32: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Application du chiffrement asymétrique: Authentification

•  Alice peut authentifier Bob en lui soumettant un challenge (dont elle connaît la solution) : –  Bob, grâce à sa clef secrète, peut résoudre le challenge –  Exercice:

•  illustrer sur un chiffrement asymétrique abstrait •  illustrer sur ElGamal

•  « Zero-knowledge » : protocoles à divulgation nulle de connaissance –  Celui qui authentfie n’apprend rien d’autre que le fait que l’autre possède la clef

secrète –  Quelqu’un qui observe n’apprend rien!

•  Est-ce vrai pour ElGamal ?

Page 33: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

33

Signature ElGamal •  Dans G = Zp* avec p premier (groupe cyclique d'ordre p-1 de générateur g) •  Alice signe le message m

•  Clef secrète et publique d'Alice: –  A = ga mod p, clef publique = (p, g, A) clef secrète=a (avec 1<a<p-1)

•  Signature: Alice choisit un entier k secret tel que pgcd(k, p-1) = 1 –  r = gk –  s = ( Hash(m) – a.r) . k-1 ) mod p-1 (si s=0, recommencer!) –  Signature = (r , s); et donc message signé = (m, r, s)

•  Vérification que (m,r,s) a bien été signé par Alice : –  gHash(m) =? Ar . rs mod p- 1 –  Exercice: prouver que la vérification est correcte

•  Exercice: comment usurper la signature d'Alice?

Page 34: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

INTEGRITE

34

Page 35: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Intégrité

•  Alice utilise OTP pour communiquer avec Bob. Elle veut envoyer M, et calcule C = M xor KAliceBob

•  Bob reçoit C’, qu’il décode en M’ = C’ xor KAliceBob

•  Quelle “confiance” Bob et Alice peuvent-ils avoir dans le fait que M = M’ ? (valeur de la confiance)

•  Comment augmenter cette confiance ? –  Contrôle d’intégrité –  Naïf: répétition

35

Page 36: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Intégrité

•  Principe : ajout de redondance –  Message M + information redondante sur M

Exemple: répéter M 2 fois: M || M

•  Redondance chiffrée = signature –  Bob publie « M || DBob(M) » –  Chacun peut vérifier que c’est bien Bob qui a écrit le message

Page 37: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Code MAC

•  Message Authentication Code

37

Page 38: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Intégrité

•  MAC (Message Authentication Code) •  Fonction à sens unique paramétrée avec une clef secrète

–  r = fk(M) –  Seul le possesseur de la clef k peut vérifier l’empreinte :

1.  Alice et Bob possèdent une clef k 2.  Alice envoie M et r 3.  Bob vérifie que le r reçu est bien égal à fk(M) pour le M reçu ð  Intégrité : Tous les possesseurs de k peuvent vérifier que M n’a pas été

modifié puisqu’il correspond à r

+  Authentification si la clef n’est distribuée qu’à deux personnes

Page 39: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

MAC

•  NE PAS UTILISER –  H(K||Message)

car souvent (Merkle Damgard) HK(Message) = H(Message) avec IV = K ð On peut ajouter ce que l’on veut à la fin du message en itérant H

–  H(Message||K) car souvent (Merkle Damgard) si H(x) = H(y) alors H(x || K) = H(y || K)

ð Collision sur H donne un MAC valide

•  Plutôt –  Enveloppe : H(K1||Message||K2) –  NMAC : HK1( HK2( Message ) ) –  Hybride : HK1(Message||K2) –  Ou encore CBC-MAC, HMAC …

Page 40: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

CBC-MAC

•  AES : 275 Mbits/seconde sur un PIII 500 MHz

•  CBC-MAC-AES : 234 Mbits/seconde

HMAC

•  HMACk(M) = H( (K XOR pad1 ) || H( (K XOR pad2 || M ) )

•  Exemple: MD5-MAC 5 à 20% plut lent que MD5 seul

Page 41: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Conclusion

•  Cryptologie: défense / attaque

•  Confidentialité –  Chiffrement

•  symétrique (ou clef secrète) : AES •  Asymétrique (ou clef public) : ElGamal (ECDLP)

•  Authetification •  Signature

•  Intégrité •  MAC

•  Cœur: fonction de hachage cryptographique 41

Page 42: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Fonction de hachage cryptographique •  Déf: Une fonction h: {0,1}+ → {0,1}k qui, à tout message M, associe un résumé sur k bits

(k fixé, par exemple k=512) et telle qu’il est calculatoirement impossible (bien que mathématiquement possible): –  étant donné r , de trouver M tel que h(M) = r [résistance à la préimage] ; –  étant donné M, de trouver M’≠M tel que h(M)=h(M’) [résistance à la 2ème préimage]; –  trouver M’≠M tel que h(M)=h(M’) [résistance aux collisions] .

•  Application: h(M) est une empreinte numérique sur k bits du message M. Il est calculatoirement impossible d’avoir 2 messages différents de même “hash” (empreinte, résumé) => permet de vérifier l’intégrité d’un message.

•  Exemples: –  MD5 (128 bits, attention: non résistante aux collisions), RIPEMD, Whirlpool –  Standard: SHA = Secure Hash Algorithm

•  1993: SHA-0, SHA-1 : 160 bits (mais collisions) •  2000: SHA-256 et SHA-512 (SHA-2, variante de SHA-1): résumés sur 256 et 512 bits •  2012: SHA-3 42

Page 43: Cours 4MMCSR - Codage et sécurité des réseaux - 2014 · 3) C3 (CL3 1,5h) Chiffrements symétriques (par flots et par blocs) TP3 (CL4 1,5h salle machine) Modes de chiffrements,

Fonction de hachage cryptographique: le couteau suisse de la cryptographie

•  Nombreuses applications: –  signatures numériques (avec des algorithmes à clef publique) –  Générateur de nombres pseudo-aléatoires –  Mise à jour et dérivation de clef (symétrique) –  Fonction à sens unique (asymétrique) –  MAC Message authentication codes (avec une clef secrète) –  Intégrité –  Reconnaissance de programmes ou codes binaire

(lists of the hashes of known good programs or malware) –  Authentication d’utilisateurs (with a secret key) –  Non-répudiation (suivi de versions, “commit”)

43