Cryptographie symétrique Introduction Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Automne 2012 1 Plan • Motivation & contexte • Cryptographie classique: – Mono-alphabétique, Poly-alphabétique • Cryptographie moderne: – DES, AES • Problème des clés secrètes • Remarques & conclusions 2 Chamseddine Talhi, ÉTS Motivation & contexte Un peu d’histoire • Tatouage sur la tête rasée d'un esclave. Secret caché par les cheveux repoussés! • Scytale de Sparte (vers 500 av. J.-C.) 3 Chamseddine Talhi, ÉTS Motivation & contexte Cryptographie – définitions de base (1/2) 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 4 Chamseddine Talhi, ÉTS Motivation & contexte Cryptographie – définitions de base (2/2) 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 5 Chamseddine Talhi, ÉTS Motivation & contexte 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, … 6 Chamseddine Talhi, ÉTS Motivation & contexte 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. 7 Chamseddine Talhi, ÉTS Motivation & contexte Cryptographie symétrique (à clé secrète) • Chiffrement et déchiffrement de données en se basant sur une clé secrète Clé secrète: un secret partagé 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 » 8 Chamseddine Talhi, ÉTS Crypto classique Algorithme de Jules César (1/3) • Code(A) = 0, Code(B) = 1, .., Code(Z) = 25 • Chiffrement basé décalage • Exemple: Clé= 3 (D) => décalage de 3 positions • Voir la démo sur Cryptool Chamseddine Talhi, ÉTS 9 Crypto classique Algorithme de César (2/3) • Clé= 3 (D) => décalage de 3 positions Texte en clair Cryptogramme This is a secret information! Wklv Vjku Uijt ku lv jt bdctfdsfu vhfuhw ugetgv kphqtocvkqp! jogpsnbujpo! lqirupdwlrq! Adapté de: Introductory example: Caesar cipher. CrypTool Team, novembre 2010 Chamseddine Talhi, ÉTS 10 Crypto classique Algorithme de César (3/3) Cryptanalyse • Nombre de clés possibles: 26 • Très facile de retrouver le texte en clair à partir du cryptogramme! • Exemple d’un cryptogramme: GERF SNPVYR QR ERGEBHIRE YR GRKGR RA PYNVE N CNEGVE QH PELCGBTENZZR – Quel est le texte en clair correspondant au cryptogramme? – Quelle est la clé utilisée pour le chiffrement? 11 Chamseddine Talhi, ÉTS 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? Chamseddine Talhi, ÉTS 12 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 13 Chamseddine Talhi, ÉTS 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 Chamseddine Talhi, ÉTS 14 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 Chamseddine Talhi, ÉTS 15 Crypto classique Substitution polyalphabétique-Vigenère 1/4 • Additionner à une lettre du texte en clair une lettre de la clé • Matrice de chiffrement 16 Chamseddine Talhi, ÉTS Crypto classique Substitution polyalphabétique-Vigenère 2/4 • Clé secrète • Algorithme de chiffrement • Voir la démo sur Cryptool Chamseddine Talhi, ÉTS 17 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? 18 Chamseddine Talhi, ÉTS 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 19 Chamseddine Talhi, ÉTS Crypto classique Algorithme de Nihilist 1/4 • 1ère clé secrète: EXEMPLE • Matrice de chiffrement: 5 X 5 • Construction de la matrice 20 Chamseddine Talhi, ÉTS Crypto classique Algorithme de Nihilist 2/4 • Construction de la matrice (suite) 21 Chamseddine Talhi, ÉTS Crypto classique Algorithme de Nihilist 3/4 • Construction de la matrice (suite) • Cas particulier: I & J ont le même code! 22 Chamseddine Talhi, ÉTS 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 23 Chamseddine Talhi, ÉTS Crypto classique Permutations • Chaque sous-chaine du texte en clair est permutée selon une clé donnée: – Exemple : 1234 => 3142 • Cryptanalyse possible: – Analyse des fréquences de lettres => langue utilisée – Test des permutations possibles 24 Chamseddine Talhi, ÉTS Crypto classique Masque jetable • Faiblesses des systèmes classiques: – Taille de la clé – Réutilisation de la clé • Principes de la solution: – Ne laisser aucune chance à la cryptanalyse – 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és25 Chamseddine Talhi, ÉTS Crypto modèrne Principes de Kerckhoffs (1/2) 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" – La sécurité par obscurité n’est plus une solution viable! 26 Chamseddine Talhi, ÉTS Crypto modèrne Principes de Kerckhoffs (2/2) 1883 1. Le système doit être matériellement, sinon mathématiquement, indéchiffrable ; 2. Il faut qu’il n’exige pas le secret, et qu’il puisse sans inconvénient tomber entre les mains de l’ennemi ; 3. La clef doit pouvoir en être communiquée et retenue sans le secours de notes écrites, et être changée ou modifiée au gré des correspondants ; 4. Il faut qu’il soit applicable à la correspondance télégraphique ; 5. Il faut qu’il soit portatif, et que son maniement ou son fonctionnement n’exige pas le concours de plusieurs personnes ; 6. Enfin, il est nécessaire, vu les circonstances qui en commandent l’application, que le système soit d’un usage facile, ne demandant ni tension d’esprit, ni la connaissance d’une longue série de règles à observer. Auguste Kerckhoffs, « La cryptographie militaire », Journal des sciences militaires, vol. IX, Janvier 1883. 27 Chamseddine Talhi, ÉTS Crypto modèrne 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 28 Chamseddine Talhi, ÉTS Crypto modèrne Principes de Shannon (1945) • Confusion et diffusion • Relation aussi complexe que possible entre M, C, K – M : message – C : cryptogramme – K : clé • Chaque lettre du cryptogramme doit dépendre d’un maximum de lettres du texte en clair et d’un maximum de lettres de la clé. • Effet avalanche: petite modification, grand impact Chamseddine Talhi, ÉTS 29 Crypto modèrne Fonction à porte dérobée (à sens unique) • Obtient rapidement l’image d’une valeur en entrée • Ne permet pas d’obtenir de la valeur en entrée correspondant à une image donnée • SAUF si elle utilise un secret partagé (porte dérobée) • Voir fonctions de hachage et cryptographie à clé publique! 30 Chamseddine Talhi, ÉTS Crypto modèrne Algorithme DES • • • • Clé secrète Algorithme de chiffrement/authentification 1976 : agence de normalisation américaine DES : Data Encryption Standard 31 Chamseddine Talhi, ÉTS Crypto modèrne Algorithme DES – Chiffrement Texte - 64 bits Clé - 56 bits Algorithme DES Cryptogramme - 64 bits • Voir démo sur Cryptool Chamseddine Talhi, ÉTS 32 Crypto modèrne Chiffrement par bloc • ECB : Electronic Code Book – Chiffrement – Déchiffrement 33 Chamseddine Talhi, ÉTS Crypto modèrne Chiffrement par bloc • CBC : Cipher Block Chaining – Chiffrement – Déchiffrement 34 Chamseddine Talhi, ÉTS Crypto modèrne Algorithme DES – Authentification Texte – sans restriction Clé - 56 bits Algorithme DES Code d’authentification – 32 bits 35 Chamseddine Talhi, ÉTS Crypto modèrne Triple DES! Pour chaque bloc de 64 bits de message, trois itérations: • 112 bits de clé (K1K2) : 1) Chiffrer avec K1, 2) Déchiffrer avec K2, 3) Chiffrer avec K1 • 168 bits de clé (K1K2K3) : 1) Chiffrer avec K1, 2) Déchiffrer avec K2, 3) Chiffrer avec K3 36 Chamseddine Talhi, ÉTS Crypto modèrne Triple DES! 64 bits 64 bits K1 E K1 E K2 D K2 D K1 E K3 E 64 bits 64 bits 37 Chamseddine Talhi, ÉTS Crypto modèrne AES – Advanced Encryption Standard • 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 38 Chamseddine Talhi, ÉTS 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/ Chamseddine Talhi, ÉTS 39 Remarques & conclusions Complexité n’est pas toujours synonyme de sécurité! • Caesar: – C + D = G (3 + 4 = 7) • Vigenère: – CAT + DOG = FOZ [(2,0,19)+(3,14,6)=(5,14,25)] Adapté de: http://www.cryptool-online.org/ Chamseddine Talhi, ÉTS 40 Remarques & conclusions • • • • • 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 la maillon faible de la cryptographie symétrique L’algorithme adopté est déjà entre les mains de l’ennemi. Problèmes: – – Une nouvelle clé pour chaque paire de personnes Échange des clés 41 Chamseddine Talhi, ÉTS