MGR850 – Automne 2014 Cryptographie symétrique École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan • • • • • • Introduction Histoire Concepts de base Cryptographie classique Cryptographie moderne Conclusion 2 Introduction Cryptologie • La cryptologie est la science des messages secrets et des codes chiffrés utilisés traditionnellement par les militaires et les gouvernements. • Depuis l’avènement des transactions électroniques, la cryptologie c’est démocratisée. – Banques – Internet – … 3 Introduction Objectif de la cryptographie • Développer des procédés permettant à deux personnes de communiquer tout en protégeant leurs messages. – Préserver la confidentialité des messages. – Vérifier l’intégrité des messages. 4 Histoire Environ 1900 avant J.-C. Un égyptien a employé des hiéroglyphes non conformes à la langue. 487 avant J.C. (La cité de Sparte) Les grecs emploient un dispositif appelé la "scytale" - un bâton autour duquel une bande longue et mince de cuir était enveloppée et sur laquelle on écrivait le message. Le cuir était ensuite porté comme une ceinture par le messager. Le destinataire avait un bâton identique permettant d'enrouler le cuir afin de déchiffrer le message. Environ 150 avant J.-C. L'historien grec Polybe (env. 200-125 av. J.-C.) invente le carré de Polybe, dont s'inspireront plus tard bien des cryptosystèmes. Source: http://www.apprendre-en-ligne.net/crypto/histoire/index.html 5 Histoire • Tatouage sur la tête rasée d'un esclave. Secret caché par les cheveux repoussés! 60-50 Jules César employait une substitution simple avec l'alphabet avant J.-C. normal (il s'agissait simplement de décaler les lettres de l'alphabet d'une quantité fixe) dans les communications du gouvernement. César écrivait aussi parfois en remplaçant les lettres latines par les lettres grecques. 9e siècle Abu Yusuf Ya'qub ibn Is-haq ibn as-Sabbah Oòmran ibn Ismaïl al-Kindi rédige le plus ancien texte connu décrivant la technique de cryptanalyse appelée analyse des fréquences. Source: http://www.apprendre-en-ligne.net/crypto/histoire/index.html 6 Concepts de base Texte en clair • Chiffrement Cryptogramme Déchiffrement Texte en clair Texte en clair (Plaintext): – – – • Données à protéger: message, information, plan de bataille, décision, programme, … Différents langages: langues naturelles, langage de programmation, code binaire, … immédiatement intelligible Chiffrement (Encryption): – – Transformation: Processus, opération, ou algorithme générant un cryptogramme à partir du texte en clair Complexe et basé sur une clé secrète 7 Concepts de base Texte en clair • Chiffrement Cryptogramme Déchiffrement Texte en clair Cryptogramme (Ciphertext): – – • Inintelligible pour une personne ne possédant pas la clé de déchiffrement Assure la confidentialité des données Déchiffrement (Decryption): – – Transformation: Processus, opération, ou algorithme générant un texte en clair à partir du cryptogramme Complexe et basé sur une clé secrète 8 Concepts de base Cryptologie • Cryptographie: – Principes, méthodes et outils permettant le chiffrement et le déchiffrement des données – Objectifs : assurer la confidentialité et l’intégrité • Cryptanalyse: – Principes, méthodes et outils permettant de découvrir le maximum d’informations secrètes appartenant au domaine de la cryptographie – Clés, textes en clair, langues utilisées, algorithmes de chiffrement, … 9 Concepts de base Cryptanalyse • Mode passif: – – • Écoute des communications (messages échangés). Bases de données cumulées avec le temps Traitement « hors ligne »: artillerie lourde d’algorithmes + vaste armée de pirates Mode actif: – Participation aux échanges: suppression, insertion, usurpation, … protocoles cryptographiques. 10 Cryptographie symétrique Cryptographie à clé secrète • Chiffrement et déchiffrement de données en se basant sur une clé secrète partagée entre les parties impliquées dans l’échange de données • Cryptanalyse: • Sans connaissance préalable de la clé, le cryptogramme est « indéchiffrable » • MAIS si le nombre de clés possibles est modeste! … • L’algorithme de chiffrement doit être « robuste » 11 Crypto classique • Transposition – – – – Construire des anagrammes en changeant l'ordre des lettres. Connue depuis l'Antiquité (scytale des Spartes) L'ordonnancement des lettres doit suivre un système rigoureux sur lequel d'expéditeur et l'envoyeur se sont préalablement entendus Exemple : • Permutation avec clé (2, 4, 1, 3) • Cryptanalyse possible: TEST ETTS – Analyse des fréquences de lettres => langue utilisée – Test des permutations possibles 12 Crypto classique • Algorithme de Jules César (1/3) – Consiste simplement à décaler les lettres de l'alphabet de quelques crans vers la droite ou la gauche – Exemple: Clé= 3 (D) => décalage de 3 positions – Code(A)=0, Code(B) =1, …, Code(Z)=25 – Voir la démo sur Cryptool 13 Crypto classique • Algorithme de Jules César (2/3) Clé= 321 (D) (B) => décalage de 213 positions (C) Texte en clair Cryptogramme This is a secret information! Vjku Uijtlv ku jt bdctfdsfu ugetgv Wklv vhfuhw kphqtocvkqp! jogpsnbujpo! lqirupdwlrq! y = (x + n) modulo 26 n=3 Adapté de: Introductory example: Caesar cipher. CrypTool Team, novembre 2010 14 Crypto classique • Algorithme de Jules César (3/3) – Cryptanalyse • Nombre de clés possibles: 25 • Très facile de retrouver le texte en clair à partir du cryptogramme! – Exemple d’un cryptogramme: • Quel est le texte en clair correspondant au cryptogramme? • Quelle est la clé utilisée pour le chiffrement? GERF SNPVYR QR ERGEBHIRE YR GRKGR RA PYNVE N CNEGVE QH PELCGBTENZZR 15 Crypto classique Substitution monoalphabétique (1/4) • Clé: permutation des 26 lettres de l’alphabet • Exemple d’une clé: a b c d e f g h i j k l m n o p q r s t u v w x y z l f g i w y d x e b s n t c q u h z v r m k j a o p • Nombre de clés possibles: 26! -1 = 403291461126605635583999999 • Et si l’alphabet de la clé n’est pas limité aux 26 lettres? a b c d e f g h i j k l m n o p q r s t u v w x y z t ? g ! w y d & e [ s ) l c / u h ] $ z m * < = o > • Le nombre de clés possibles? Cryptanalyse? 16 Crypto classique Substitution monoalphabétique (2/4) • Cryptanalyse – L’algorithme de chiffrement associe à toutes les occurrences d’une lettre donnée, `A’ par exemple, la même lettre, `M’ par exemple: • "A PARTIR DE LA" => "M *M***** ** *M" – L’analyse des fréquences des lettres dans le cryptogramme peut révéler le texte en clair! – Les statistiques sont toujours utiles 17 Crypto classique Substitution monoalphabétique (3/4) • Cryptanalyse: Langue Française E 17.76 O 5.34 B 0.80 S 8.23 D 3.60 H 0.64 A 7.68 C 3.32 X 0.54 N 7.61 P 3.24 Y 0.21 T 7.30 M 2.72 J 0.19 I 7.23 Q 1.34 Z 0.07 R 6.81 V 1.27 K 0.00 U 6.05 G 1.10 W 0.00 L 5.89 F 1.06 Fréquences des lettres 18 Crypto classique Substitution monoalphabétique (4/4) • Cryptanalyse: Langue Française ES 305 TE 163 OU 118 EC 100 EU 89 EP 82 LE 246 SE 155 AI 117 TI 98 UR 88 ND 80 EN 242 ET 143 EM 113 CE 98 CO 87 NS 79 DE 215 EL 141 IT 112 ED 96 AR 86 PA 78 RE 209 QU 134 ME 104 IE 94 TR 86 US 76 NT 197 AN 30 IS 103 RA 92 UE 85 SA 75 ON 164 NE 124 LA 101 IN 90 TA 85 SS 73 ER 163 SS 73 M M 20 AA 3 EE 66 RR 17 UU 3 LL 66 PP 16 II 2 TT 29 FF 10 GG 1 NN 24 CC 8 Fréquences des bigrammes sur 10 000 bigrammes 19 Crypto classique Substitution polyalphabétique-Vigenère (1/4) • Additionner une lettre du texte en clair à une lettre de la clé clair • Matrice de chiffrement Vigenère (chiffré = clair + clé) Clé 20 Crypto classique Substitution polyalphabétique-Vigenère (2/4) • Clé secrète • Algorithme de chiffrement clé clair chiffre f = ( t + m) mod 26 5 = ( 19 +12) mod 26 • Voir la démo sur Cryptool 21 Crypto classique Substitution polyalphabétique-Vigenère (3/4) • Cryptanalyse – L’algorithme de chiffrement N’associe PAS à toutes les occurrences d’une lettre donnée, `A’ par exemple, la même lettre: • "A PARTIR DE LA" => "M *K***** ** *S" – L’analyse des fréquences des lettres dans le cryptogramme n’est plus utile? – Cependant, les statistiques sont toujours utiles • Comment? 22 Crypto classique Substitution polyalphabétique-Vigenère (4/4) • Cryptanalyse – Pour une clé de taille 3: • les lettres du texte en clair qui sont aux positions: 0, 3, 6, .. Sont chiffrées de la même façon: même décalage. • les lettres du texte en clair qui sont aux positions: 1, 4, 7, .. Sont chiffrées de la même façon: même décalage. • les lettres du texte en clair qui sont aux positions: 2, 5, 8, .. Sont chiffrées de la même façon: même décalage. – Les statistiques peuvent être utilisées sur les lettres qui sont chiffrées de la même façon 23 Crypto classique Algorithme de Nihilist (1/4) • • • • Surchiffrement 1ère clé secrète: EXAMPLE Matrice de chiffrement: 5 X 5 Construction de la matrice 24 Crypto classique Algorithme de Nihilist (2/4) • Construction de la matrice (suite) 25 Crypto classique Algorithme de Nihilist (3/4) • Construction de la matrice (suite) • Cas particulier: I & J ont le même code! 26 Crypto classique Algorithme de Nihilist (4/4) • 2ème clé secrète: NEXT • Texte en clair: • Chiffrement: addition • Voir la démo sur Cryptool • Cryptanalyse? À méditer 27 Crypto classique • Faiblesses des systèmes classiques: – Taille de la clé – Réutilisation de la clé • Principes de la solution (Masque Jetable ou Onetime pad): – Les caractères composant la clé doivent être choisis de façon totalement aléatoire. – Une nouvelle clé pour chaque message à chiffrer – La taille de la clé est égale à la taille du message C M K • MAIS comment échanger les clés? • Confidentialité des messages vs confidentialité des clés 28 Crypto moderne Principes de Kerckhoffs 1883 • Séparation algorithme / clé: – Chiffrement de César: • • • Algorithme: "Décalage d’une lettre de X positions" Clé: "La valeur de X" Principe de Kerckhoff: "Le secret réside dans la clé et non pas dans l'algorithme" 29 Crypto moderne Principe de Shannon / Vernam (1945) • Masque jetable: – Théoriquement-complètement incassable, – Très peu pratique : téléphone rouge • Clés transportées par valise diplomatique • Nouvelle clé pour chaque nouvelle communication 31 Crypto moderne Principes de Shannon (1945) • Confusion et diffusion – Relation aussi complexe que possible entre M, C, K • • • • La confusion cache les relations entre le texte clair et le texte chiffré pour éviter les attaques par analyse statistique. • • • M : message C : cryptogramme K : clé un changement d’un seul bit dans le texte clair doit affecter un grand nombre de bits (tous) du texte chiffré. Effet avalanche: petite modification, grand impact La diffusion disperse la redondance du texte clair dans le texte chiffré, par exemple deux lettres doublées ne doivent pas rester côte à côte après cryptage. 32 Crypto moderne • En 1976, l’agence de normalisation américaine développait un algorithme de chiffrement qui a été grandement utilisé depuis: – DES (Data Encryption Standard) • En 2002, l’agence de normalisation américaine récidivait avec un nouvel algorithme: – AES (Advanced Encryption Standard) 35 Crypto moderne • DES - Data Encryption Standard – Crypto à clés secrètes – En 1979, le premier ATMs (automatic teller machines) a exploité le chiffrement DES pour les PINs. – Basé sur un schéma de Feistel – Utilisée pour • Chiffrement • Authentification – Règle Importante: • Une clé pour chaque fonctionnalité. – Il est à la base d’autres crypto systèmes plus récents comme IDEA, FEAL, CAST, RC5, BLOW-FISH. 36 Crypto moderne • Chiffrement DES - Algorithme Texte - 64 bits Clé - 56 bits Algorithme DES Cryptogramme - 64 bits 37 Crypto moderne Chiffrement par bloc • ECB : Electronic Code Book – Chiffrement – Déchiffrement 38 Crypto moderne Chiffrement par bloc • CBC : Cipher Block Chaining – Chiffrement – Déchiffrement 39 Crypto moderne • Authentification DES - Algorithme Texte – sans restriction Clé - 56 bits Algorithme DES Code d’authentification – 32 bits 40 Chamseddine Talhi, ÉTS Crypto moderne • DES vulnérable aux attaques par force brute. • Triple DES !!! – Pour chaque bloc de 64 bits de message, trois itérations: • Clé de 112 bits (K1K2) : – Chiffrer avec K1, – Déchiffrer avec K2, – Chiffrer avec K1 • Clé de 168 bits (K1K2K3) : – Chiffrer avec K1, – Déchiffrer avec K2, – Chiffrer avec K3 41 Chamseddine Talhi, ÉTS Crypto moderne 64 bits Chiffrer Triple DES Déchiffrer Source: http://fr.wikipedia.org/wiki/Triple_DES Chiffrer 64 bits 42 Crypto moderne • AES : Advanced Encryption Standard • Crypto à clés secrètes • Candidat retenu en 2002: Rijndael: • Trois versions: – Chiffrement de blocs de 128 bits avec une clé de 128 bits • 10 itérations – Chiffrement de blocs de 192 bits avec une clé de 192 bits • 12 itérations – Chiffrement de blocs de 256 bits avec une clé de 256 bits • 14 itérations • Voir démo sur CrypTool 43 Problème des clés secrètes • • • • • 2 personnes => 1 clé n personnes => n * (n-1)/2 clés 100 personnes => 4,950 clés 1,000personnes => 499,500 clés Pour chaque 10 personnes en plus on a besoin de 100 clés en plus! Adapté de: http://www.cryptool-online.org/ 44 Conclusion • • • • • La cryptographie est essentielle pour assurer la confidentialité et l’intégrité des données Complexité n’est pas toujours synonyme de robustesse La confidentialité des clés est le maillon faible de la cryptographie symétrique L’algorithme adopté est déjà entre les mains de l’ennemi. Problèmes: – – Nombre de clé: Une nouvelle clé pour chaque paire de personnes Confidentialité des clés: Échange des clés 45