SCI 460 – Cryptographie – TD 1 IUT d’Arles – DUT SRC – 2010-2011 Objectifs : Comprendre les trois types de chiffrement : simple, symétrique et asymétrique. Être capable d’utiliser quelques algorithmes de cryptographie : chiffre de César, chiffre de Vigenère, algorithme RSA. Être capable d’utiliser des attaques simples pour déchiffrer un message, sans connaître la clé utilisée. 1 Chiffrement simple / par substitution Une substitution consiste en le remplacement des caractères du texte clair par d’autres caractères. Mais la place des caractères dans le message n’est pas modifiée. Lorsque l’on essaie de décrypter un message chiffré avec un tel procédé, on utilise des données statistiques concernant le langage utilisé pour la rédaction du texte clair. Pour vous aider à percer les cryptogrammes dont la clé n’est pas donnée, voici la répartition des lettres en Français par ordre décroissant des fréquences (source : Manuel de cryptographie, L. Sacco, Payot, 1947) : E 17.76 N 7.61 R 6.81 O 5.34 P 3.24 V 1.27 B 0.80 Y 0.21 K 0.01 S 8.23 T 7.30 U 6.05 D 3.60 M 2.72 G 1.10 H 0.64 J 0.19 W 0.00 A 7.68 I 7.23 L 5.89 C 3.32 Q 1.34 F 1.06 X 0.54 Z 0.07 Et celle des bigrammes (2 lettres) ES LE EN DE RE 305 NT 197 ET 246 ON 164 EL 242 ER 163 QU 215 TE 163 AN 209 SE 155 NE 143 OU 118 IS 103 ED 96 UR 88 TA 85 US 76 141 AI 117 LA 101 IE 94 CO 87 EP 82 SA 75 134 EM 113 EC 100 RA 92 AR 86 ND 80 SS 73 139 IT 112 TI 98 IN 90 TR 86 NS 79 124 ME 104 CE 98 EU 89 UE 85 PA 78 On utilisera dans les exercices suivants une représentation numérique des lettres de l’alphabet : 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 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 1.1 Chiffre de césar Le système le plus ancien est attribué à Jules César. Il consiste en un décalage de l’alphabet (dans le système original, A était remplacé par C, B par D, C par E…). Q1. Voici un texte chiffré obtenu avec la clé H. Retrouvez le texte en clair. QLZBP TPZLY UKHUA ZHSVU HISLZ JVTTL KYLZK KLSHC UAZLK HUZBU PSSLQ PABYP LKLZY LTHYJ UVPYL BLZSL OLLUT UZSHU ZWSBZ LKLTH N Q2. Voici un autre texte chiffré ; on ne connait pas ici la clé utilisée. Retrouvez le texte en clair. FYPYQ LOTEN LYELO SDLTD TEUPD OPDAZ LTDOP PDTPD DAZPX PDFYP YQLYE SCI 460 – Cryptographie – TD 1 1.2 Chiffre de Vigenère C'est un système de substitution poly-alphabétique ou de chiffrement polyalphabétique. Cela signifie qu'il permet de remplacer une lettre par une autre qui n'est pas toujours la même, contrairement au chiffre de César ou à ROT13 qui se contentaient d'utiliser la même lettre de substitution. Pour pouvoir chiffrer notre texte, à chaque caractère nous utilisons une lettre de la clé pour effectuer la substitution. C'est donc une méthode relativement plus « solide » que les deux autres. Clé utilisée V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z 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 Lettre chiffrée L'outil indispensable du chiffrement de Vigenère est : « La table de Vigenère ». Lettre en clair A B C D E F G H I J K L M N O P Q R S T U A A B C D E F G H I J K L M N O P Q R S T U B B C D E F G H I J K L M N O P Q R S T U V C C D E F G H I J K L M N O P Q R S T U V W D D E F G H I J K L M N O P Q R S T U V W X E E F G H I J K L M N O P Q R S T U V W X Y F F G H I J K L M N O P Q R S T U V W X Y Z G G H I J K L M N O P Q R S T U V W X Y Z A H H I J K L M N O P Q R S T U V W X Y Z A B I I J K L M N O P Q R S T U V W X Y Z A B C J J K L M N O P Q R S T U V W X Y Z A B C D K K L M N O P Q R S T U V W X Y Z A B C D E L L M N O P Q R S T U V W X Y Z A B C D E F M M N O P Q R S T U V W X Y Z A B C D E F G N N O P Q R S T U V W X Y Z A B C D E F G H O O P Q R S T U V W X Y Z A B C D E F G H I P P Q R S T U V W X Y Z A B C D E F G H I J Q Q R S T U V W X Y Z A B C D E F G H I J K R R S T U V W X Y Z A B C D E F G H I J K L S S T U V W X Y Z A B C D E F G H I J K L M T T U V W X Y Z A B C D E F G H I J K L M N U U V W X Y Z A B C D E F G H I J K L M N O V V W X Y Z A B C D E F G H I J K L M N O P W W X Y Z A B C D E F G H I J K L M N O P Q X X Y Z A B C D E F G H I J K L M N O P Q R Y Y Z A B C D E F G H I J K L M N O P Q R S Z Z A B C D E F G H I J K L M N O P Q R S T Q3. Ce cryptogramme a été obtenu par chiffrement de Vigenère avec le mot-clé ’RAYMOND’ RILEW CLCER ETGQZ FRETJ NQJLC YH QGZRV DSTQV UPERR ALUAN VDAJQ OUEDM GRWUE QBQGR QRSZH MHWQH 2 SCI 460 – Cryptographie – TD 1 2 Chiffrement symétrique / asymétrique 2.1 Chiffrement symétrique / asymétrique Un groupe de n personnes souhaite utiliser un système cryptographique pour s’échanger deux à deux des informations confidentielles. Les informations échangées entre deux membres du groupe ne devront pas pouvoir être lues par un autre membre. Q4. Le groupe décide d’utiliser un système symétrique de chiffrement. a. Quel est le nombre minimal de clefs symétriques nécessaires ? b. Donner le nom d'un algorithme de chiffrement symétrique reconnu. Q5. Le groupe décide ensuite de remplacer ce système par un système asymétrique. a. Quel est le nombre minimal de couples de clés asymétriques nécessaires pour que chaque membre puisse envoyer et recevoir des informations chiffrées et/ou signées ? b. Alice souhaite envoyer des informations chiffrées et signées à Bob (Alice et Bob appartiennent tous les deux au groupe). Quelle(s) clef(s) Bob doit­il utiliser ? c. Donner le nom d'un algorithme de chiffrement asymétrique reconnu. Q6. Le groupe décide finalement d'utiliser un système hybride pour le chiffrement (i.e. qui utilise à la fois le cryptographie symétrique et asymétrique). a. Donner les raisons qui ont poussées le groupe à utiliser un tel système. b. Donner un exemple de système hybride. 2.2 Attaque par force brute Une attaque par force brute est une attaque dont on connaît l’algorithme de chiffrement utilisée, la (ou les) longueur(s) de clé(s) utilisée(s), mais dont on ne connait pas la (ou les) valeur(s). A ce moment là, on essaie toutes les clés possibles. Q7. Attaque par force brute : Le facteur de travail d’un algorithme est le nombre d’instructions élémentaires nécessaire à son exécution. La puissance de la machine est le nombre d’instructions qu’elle exécute par unité de temps. La puissance d’un PC actuel (en 2010) est d’environ 100 000 Mips (millions d’instructions par secondes). Le facteur de travail d’un algorithme optimisé pour tester une clé de 128 bits de l’algorithme AES est d’environ 1200 instructions élémentaires. On dispose d’un couple clair chiffré connu et on désire retrouver la clé utilisée par force brute, c’est-à-dire en testant toutes les clés les unes après les autres. Une clé est constituée d’un mot de 128 symboles binaires (0 ou 1). On suppose que toutes les clés sont équiprobables. a. b. c. d. e. En combien de temps une machine de 100 000 Mips teste-t-elle une clé ? Combien y a-t-il de clés possibles ? Quel est le nombre moyen de clés à tester avant de trouver la bonne ? Quel est le facteur de travail moyen (en Mips × années) pour trouver la clé ? A quel temps moyen de calcul cela correspond-il si on suppose que les 300 millions de PC de l’Internet sont mobilisés pour cette tâche ? 3 SCI 460 – Cryptographie – TD 1 2.3 Méthode XOR Pour les algorithmes de chiffrement symétrique, on distingue deux types d'algorithmes, les algorithmes en blocs, qui prennent n bits en entrée et en ressortent n, et les algorithmes à flots, qui chiffrent bit par bit sur le modèle du chiffre de Vernam. La méthode XOR est une technique à flots. Q8. Chiffrer la suite binaire en clair suivante à l’aide de la méthode XOR et une clé privée composée de 8 bits (1001 1001) : 1101 1110 0110 0001 1101 0011 1110 0100 2.4 Méthode RSA Le premier algorithme de chiffrement asymétrique et de signature proposé, l'algorithme RSA, a été publié en 1978 par Rivest, Shamir et Adleman. Sa sécurité repose sur la difficulté de factoriser un entier (et plus spécifiquement du problème de l'extraction de racines modulaires). En particulier, il est difficile de retrouver clair à partir de chiffré, de cléChiffre, de n et de l'algorithme de chiffrement suivant : chiffré = (clair)cléChiffre modulo (n), avec n, produit de 2 nombres premiers p et q, et cléChiffre, premier avec ((p – 1) (q – 1)). Par contre si on connaît p et q, alors il est possible de calculer cléDéchiffre à partir de la formule suivante : cléDéchiffre = (1 modulo ((p – 1) (q – 1))) / cléChiffre. On définit alors : - une fonction de chiffrement f(x) = xe modulo n, - une fonction de déchiffrement g(x) = xd modulo n, - une clé publique (e,n) : e = cléChiffre, - et une clé privée (d,n) : d = cléDéchiffre. L'algorithme RSA peut être utilisée pour assurer la confidentialité des messages que leur authenticité, c'est­à­dire les signer. Q9. En admettant que xed = x modulo n, montrer que la fonction de chiffrement f(x) proposée est bien l'inverse de la fonction de déchiffrement g(x). Q10. Détailler la procédure à suivre pour générer un couple (clé publique, clé privée). Q11. Chiffrer le message « 21 » avec la clé publique (103, 143). Le calcul peut être facilement fait à la main en remarquant que 214 = 1 modulo (143) Q12. Sachant que n = 11 * 13, calculer la clé privée associée à la clé publique (103, 143) Q13. Déchiffrer le message obtenu à la question Q5 afin de trouver le message clair. 4