Cryptographie Université Kasdi Merbah Ouargla Département Mathématique et informatique Crypto I : Cryptosystèmes et science de la cryptologie Mai 2013 Cours de cryptographie 1 Cryptosystèmes et science de la cryptologie 1. Définitions et terminologie – Historique – Cryptosystème – Principe de la cryptographie, cryptanalyse 2. Cryptographie classique – Chiffrements mono-alphabétiques – Chiffrements poly-alphabétiques 3. cryptanalyse de la cryptographie classique – Confusion et diffusion – Méthode de cryptanalyse de base – Cryptanalyse et analyse des fréquences – Sûreté d'un chiffrement 4. Résumé : cryptographie classique – Algorithme de chiffrement – Concepts généraux – Algorithmes "classiques" mono-alphabétiques – Algorithme de Vigenère et OTP (poly-alphabétique) Cours de cryptographie 2 2 1- Définitions et terminologie I Un peu de grec classique… Kryptos = "caché", "secret" Graphos = écriture => Cryptographie => Cryptanalyse Logos = "savoir" => Cryptologie Stéganos = "couvert", "étanche" => Stéganographie Cours de cryptographie Un peu d'américain… Alice Bob Eve (Charlie) Encrypt and Decrypt Un peu de français !!! Chiffrer et déchiffrer Coder et décoder Crypter et décrypter (!) Irène !!! (l'ingénieure) Un peu de math… 3 1- Définitions et terminologie II Vocabulaire : Cryptosystème : des mécanismes assurant des services requis Cryptographie : Art de concevoir des cryptosystèmes Cryptanalyse : Art de casser les cryptosystèmes Cryptologie : Science qui étudie les deux arts précédents Cryptologie : science du secret Cours de cryptographie 4 Historique Les trois ères de la cryptographie « Classique » • Jusqu’au masque jetable (one-time pad) « Moderne » • Crypto électro-mécanique (voir applet Enigma) • Guerre froide … • Crypto électronique et informatique - DES « Âge d’or » • Chiffrement à clé publique et gestion de certificats • Cryptologie et autres tâches cryptographiques • Internet et enjeux commerciaux Cours de cryptographie 5 Cryptosystème I Eve Cours de cryptographie 6 Cryptosystème II Cours de cryptographie 7 Cryptosystème III Cours de cryptographie 8 Principe de la cryptographie, cryptanalyse • Considérations pratiques les fonctions ek et dk doivent pouvoir se calculer efficacement un opposant observant les messages chiffrés ne peut déterminer k ou x cryptanalyse : rechercher k à partir de y. Donnera aussi x • Algorithme public, clé cachée : principe de Kerckhoffs (1883) la sécurité d'un cryptosystème ne repose que sur le secret de la clé. exprimé aussi par Shannon : l'adversaire connaît le système chiffres civils suivent le principe de Kerckhoffs. Militaires utilisent des systèmes secrets. • Le nombre de clés possibles doit être grand. Cours de cryptographie 9 2- Cryptographie classique : Chiffrements monoalphabétiques I • Quelques grands noms : Al-Kindi (801-873), Alberti (1404-1472), Vigenère (1523-1596), Porta (15351615), Babbage (1792-1872), Kerckhoffs (18351903), Turing (1912-1954) • Chiffre de substitution : remplacer les lettres ou les mots par d'autres symboles • On appelle chiffrement mono-alphabétique ou substitution simple, un chiffre où chaque lettre est remplacée par une autre lettre ou symbole. Cours de cryptographie 10 Chiffrements mono-alphabétiques II • Chiffre de César : Si on code A − Z dans x + 3 mod 26 et x = y − 3 mod 26. , alors y = Nombre de clés possibles (espace de clés): Vérifier (1) ? Cours de cryptographie 11 Chiffrements mono-alphabétiques III • Chiffrement par substitution Algorithme de substitution On prend un texte en clair et, pour chacune des lettres du texte, on utilise la lettre comme index dans une table de substitution () pour trouver l’équivalent chiffré La table de substitution représente la clé Cours de cryptographie 12 Chiffrements mono-alphabétiques IV • Exemple : – « HELLOWORLD » devient : A B C D E F G H I h e v a m t s J K L M N O P Q R S T U V W X Y Z i c f n u o r b g q w j y d l x k z p « imuubxbwua » Exercice Quelle est l'espace des clés de ce chiffrement ? Est-ce qu'une recherche exhaustive est envisageable ? on a 26 ! possibilités de permutations des lettres, soit environ 288 (hors de portée manuelle). Cours de cryptographie 13 Chiffrements mono-alphabétiques V Algorithme de substitution Un exemple de texte chiffré en utilisant : I L E T A I T U N E F O I S L H I S T O I RE D U N P E T I T C H A P E R O N R O U G E c u m y h c y d r m t b c j u i c j y b c wm a d r g m y c y v i h g m w b r w b d s m Il est difficile de faire la correspondance entre le texte original et le texte chiffré sans connaître la table de substitution (la clé) Sans le texte en clair, il serait aussi difficile d’inférer à partir du texte chiffré, il faut avoir un « grand » (au moins une occurrence de 25 lettres sur 26) nombre de texte en clair pour reconstruire la clé L’algorithme classique de substitution possède donc des propriétés raisonnables de confusion Cours de cryptographie 14 Chiffrements mono-alphabétiques V Le chiffrement affine : soient Nous avons : 12 choix possibles pour a et b=26, au total |K|=12 x 26 = 312 clés possibles. Cours de cryptographie 15 Chiffrements poly-alphabétiques I Un chiffrement polyalphabétique peut remplacer une lettre par une autre lettre qui n'est pas toujours la même. Cryptanalyse plus difficile. Le message clair est découpé en bloc de m lettres. Les clés comme les messages sont traduits de l'alphabet a-z vers les nombres 0-25. Vérifier (1) ? Espace de clés : Cours de cryptographie 16 Chiffrements poly-alphabétiques II • chiffrement par permutation (mélange de m lettres consécutives par une permutation/clé) : Transposition • chiffrement de Hill (multiplication par une matrice m × m inversible dans ) • Masque jetable (One Time Pad) Cours de cryptographie 17 Chiffrements poly-alphabétiques III : Algorithme de transposition (bit shifting) • On prend un texte en clair et on permute la position des lettres (ou des bits dans le cas moderne) entre elles en fonction d’une « clé » • Dans l’antiquité on utilisait un bâton autour duquel on enroulait une lanière de cuir (déguisée en ceinture) où était écrit le texte • Exemple : – Avec un « bâton » qui a une épaisseur de deux lettres, « HELLOWORLD » devient h e l l o w o r l d « hloolelwrd » Cours de cryptographie 18 Chiffrements poly-alphabétiques IV : Algorithme de transposition (bit shifting) Chiffrons ce texte avec un « bâton » de taille 6 e t a i t u n e f o i s l h i s t o i r e d u n p e t i t c h a p e r o n r o u g e i l I L E T A I T U N E F O I S L H I S T O I R E D U N P E T I T C H A P E R O N R O U G E e n l i p h n i t e h r e a r l a f i e t p o i o s d i e u t i t u t r g u s o n c o e Ici, il est « facile » d’inférer le texte original à partir du texte chiffré On peut « facilement » retrouver la clé à partir du texte chiffré La confusion est donc mauvaise Par contre, la disparition d’une lettre entraîne la modification de tout le texte chiffré qui suit Cours de cryptographie 19 Chiffrements poly-alphabétiques V : Algorithme One-TimePad (OTP) (ou masque jetable) • Proposé par Gilbert Vernam durant la 1 ère Guerre mondiale • Plus simple dans le monde de la cryptographie, considéré comme incassable par certains spécialistes. • Utilisé actuellement pour sécuriser des applications mobiles e-commerce et l’accès à des serveurs Internet (pas de calcul intensif). • Il consiste à une opération ou exclusive (XOR : ) entre le message et l’OTP. • La clé OTP a les caractéristiques suivantes : – Elle doit être aléatoire (c’est le grand défi : Utiliser un PRNG – Pseudo Random Number Generator) – La clé utilisée pour réaliser un chiffre ne sera plus disponible pour les autres chiffres. – La clé doit être une séquence de bits de longueur égale à la longueur du message à chiffrer. Cours de cryptographie 20 Chiffrements poly-alphabétiques VI : Algorithme One-TimePad (OTP) Emetteur Message Message crypté transmis XOR OTP Récepteur Message crypté transmis XOR Message original OTP Cours de cryptographie 21 3 - Cryptanalyse de la cryptographie classique • Confusion et diffusion – Même dans les algorithmes modernes, la confusion et la diffusion sont les deux propriétés recherchées – Au sens strict : • Confusion : propriété de rendre la relation entre la clé de chiffrement et le texte chiffré la plus complexe possible • Diffusion : propriété où la redondance statistique dans un texte en clair est dissipée dans les statistiques du texte chiffré • On remarque que les algorithmes classiques ne respectent pas tout à fait cette propriété – Objectif • Empêcher de retrouver la clé à partir de paires : texte chiffré et texte clair (exemple : attaque à texte choisi) • Rendre plus difficile l’analyse fréquentielle Cours de cryptographie 22 Méthodes de cryptanalyse de base Force brute Taille de l’espace de clés (recherche exhaustive) Analyse fréquentielle Établir le tableau des fréquences Connaître les fréquences de la source Codage connu Rétro-ingénierie de l'algorithme de chiffrement: • Marche pour les algorithmes de substitution monoalphabétiques • Peut marcher pour les poly-alphabétiques, si fréquences connues Cours de cryptographie 23 Cryptanalyse et analyse des fréquences I • Cryptanalyse : déterminer la clé k connaissant l'algorithme – texte chiffré connu (y) : écoute – texte clair connu (x,y) : écoute + message connu (ex : protocole de communication) – texte clair choisi (accès à la machine chiffrante émettrice) – texte chiffré choisi (accès à la machine déchiffrante réceptrice) • Cryptanalyse par analyse des fréquences (Al Kindi) Fig.: Fréquences des lettres en français (non accentué) Cours de cryptographie 24 Cryptanalyse et analyse des fréquences II La cryptanalyse (ou analyse) fréquentielle consiste à comparer les fréquences d’occurrence des symboles de la source avec les fréquences d’occurrence des symboles dans le texte chiffré. S'applique aux chiffrements mono-alphabétiques Chiffre par décalage en deux trois essais Chiffre affine en quelques essais aussi. Chiffre par substitution si texte suffisamment long. On utilise aussi les bigrammes (2 lettres), trigrammes (3 lettres) pour orienter la recherche. Cours de cryptographie 25 Sûreté d'un chiffrement • Sécurité sémantique : un attaquant ne récupère aucune information sur le texte clair à partir du texte chiffré. (attaque passive) • Sécurité calculatoire : système sûr au sens de la théorie de la complexité si le meilleur algorithme pour le casser nécessite N opérations, où N est un nombre trop grand. • Sécurité prouvée : la sécurité se réduit à un problème difficile à résoudre. Exemple : le système X est sûr si un entier n donné ne peut être factorisé. Cours de cryptographie 26 4- Résumé : Algorithme de chiffrement – Concepts généraux Alphabet – Entrée : Un texte clair (plaintext) – Sortie : Un texte clair Fonction de chiffrement – Clé de chiffrement = ke – y = e(ke , x) =ek1(x), y est le texte chiffré (ciphertext) Fonction de déchiffrement – Clé de déchiffrement = kd – x = d(kd , y) = dk2(y) Cours de cryptographie 27 Algorithmes "classiques" mono-alphabétiques Algorithme de César – Source • texte en caractères latin – Codage • lettres chiffres de 0 à 25 – Chiffrement • x x+3 mod 26 – Clés • k =3 Algorithme de décalage – Source et codage • idem – Chiffrement – • x x + k mod 26 Clés • k {0,…,25} Cours de cryptographie Algorithme de substitution – Source • Idem – Codage • aucun – Chiffrement • x (x) – Clés • (une table de substitution) Algorithme affine – Source et codage • lettres en chiffres – Chiffrement • x a x + b mod 26 – Clé • (a,b) où a, b {0,…,25} et pgcd(a,26)=1 28 Algorithmes poly-alphabétiques Algorithme de Vigenère Algorithme OTP – Chiffrement : – Source • Texte en caractères latin • – Codage • • – Clé • k = k1 k2 … km , mot/phrase de longueur m • • xi (xi + k i mod m ) mod 26 Y T P H T W O E G B R M A A P T OTP = Taille du message OTP aléatoire , utilisée une seule fois. – Déchiffrement : – Chiffrement R A OTP – Clé • lettres chiffres de 0 à 25 ( ou code ASCII) C M C= P H H I W E E D B E M V A P=C I T G H OTP E W N E E B R M E A On trouve : ORRWPSHDAIOEI EQ VBNARFDE Cours de cryptographie 29