1 Introduction Depuis que j'ai écrit Cryptographie appliquée, on m'a demandé de
1 Introduction Depuis que j'ai écrit Cryptographie appliquée, on m'a demandé de recommander un livre sur la cryptanalyse. Ma malheureuse réponse est que bien qu'il existe plusieurs bon livres sur la cryptographie, il n'y a pas de livres, bon ou mauvais, sur la cryptanalyse. C'est un vide que je ne vois pas comblé avant un long moment ; la cryptanalyse est un domaine qui évolue si rapidement qu'un livre sur ces techniques serait obsolète avant même son impression. Et même si le livre parvenait à rester actuel, il ne ferait que peu pour enseigner la cryptanalyse. Le seul moyen d'apprendre la cryptanalyse est au travers de la pratique. Un étudiant doit simplement briser algorithme après algorithme, inventer de nouvelles techniques et modifier celles qui existent. Lire les résultats des autres cryptanalyses aidera, mais il n'y a aucun substitut à l'expérience. Cette réponse en amène une autre : où peut-t'on obtenir de l'entraînement? Internet est une source sans fin de conceptions médiocres d'algorithmes, et même certains traînent dans la littérature académique, mais l'étudiant apprenti en cryptanalyse n'a aucun moyen de savoir quels algorithmes valent une étude, et quels sont ceux qui sont au-delà de ses capacités. Essayer de briser des algorithmes qui ont déjà été brisés (sans regarder comment ils ont été brisés) est la seule réponse. Maintenant la question devient: quels chiffrements faut-t'il essayer de briser et dans quel ordre? Ce document est ma tentative de réponse, et dans cette réponse, j'espère faciliter l'étude de la cryptanalyse. Ceci forme un apprentissage individuel de la cryptanalyse des chiffrements par bloc. Avec, un étudiant peut suivre un chemin ordonné au travers de la littérature académique et ressortir de l'autre côté en étant capable de briser de nouveaux algorithmes et de publier de nouveaux résultats cryptanalytiques. Ce que j'ai fait, c'est lister les algorithmes publiés et les cryptanalyses, dans un ordre cohérent: par type de cryptanalyse et difficulté. La tâche de l'étudiant est de lire les documents qui décrivent les algorithmes, puis tenter de reproduire les résultats cryptanalytiques (et il est beaucoup plus difficile d'apprendre la cryptanalyse à partir des documents académiques que de livres distillés, mais tôt ou tard l'étudiant devra apprendre à lire les documents académiques, et le plus tôt sera le mieux). Les résultats, dans les documents publiés, serviront de "clefs de réponse". Cours individuel de cryptanalyse La réponse clef n'est jamais définitive ; il est très probable qu'il existe d'autres, et de meilleures, attaques que celles qui ont été publiées. Certains documents cryptanalytiques contiennent des erreurs. Les étudiants qui vont entamer ce cours devraient finir par être capables de publier eux-mêmes des résultats publiables. Même le meilleur étudiant ne sera pas capable de trouver tous les moyens de briser les algorithmes sans consulter les documents de cryptanalyse. Beaucoup de ces résultats ont été découverts par les plus grands esprits de la cryptanalyse. Je pense qu'un étudiant doit consacrer au minimum une semaine à chaque algorithme avant de commencer à consulter le document cryptogamique, et après avoir rapidement parcouru le résultat ; ou avoir juste lu le résumé, l'introduction et la conclusion il devra à nouveau chercher à briser l'algorithme pendant encore trois jours. Si l'étudiant ne parvient toujours pas à briser le chiffrement, il sera temps de lire et d'étudier la cryptanalyse publiée. Si l'étudiant ne parvient pas à briser le moindre chiffrement en particulier ceux qui sont faciles c'est une bonne indication qu'il devrait trouver une autre occupation. Les leçons sont ordonnées, mais cet ordre reste relativement souple. Les premières leçons sont faciles, mais je mélange un peu les choses par la suite. Les étudiants sont libres de passer les leçons qui leur semblent difficiles, puis d'y revenir plus tard, et même d'en passer certaines complètement (il y en a beaucoup). Mon intention n'est pas d'attendre de chaque étudiant qu'il complète la leçon complètement avant de passer à la suivante. Un étudiant intelligent sera probablement capable de travailler sur plusieurs leçons en même temps. Bonne chance. 2 Que signifie "briser" un chiffrement? Briser un chiffrement ne signifie pas nécessairement trouver un moyen pratique pour une personne à l'écoute de récupérer le texte en clair en utilisant seulement le texte chiffré. Dans la cryptographie académique, les règles sont beaucoup plus souples. Briser un chiffrement revient à trouver une faiblesse dans le chiffrement qui peut être exploitée avec une complexité inférieure à une attaque de force brute. Peu importe que l'attaque par force brute requiert 2128 chiffrements ; une attaque demandant 2110 chiffrements sera considérée comme un succès. Briser un chiffrement pourrait aussi demander un nombre non-réaliste de textes en clair choisis, 256 blocs, ou bien des quantités irréalistes de stockage : 280. Simplement dit, briser un algorithme peut être une "faiblesse certifiée" : une preuve que le chiffrement ne fonctionne pas comme prévu. Une cryptanalyse réussie peut signifier la révélation d'un brisement d'une forme réduite du chiffrement, un DES de 8 rondes contre les 16 rondes formant un DES complet, par exemple ou une variante simplifiée du chiffrement. La plupart des cryptanalyses commencent par une cryptanalyse d'une variante aux nombres de rondes réduites, et sont éventuellement (parfois des années plus tard) étendues au chiffrement complet. 3 Pourquoi les chiffrements par blocs? La recherche académique sur les chiffrements par blocs ont progressé sur une voie différente de la recherche des chiffrements de flux. Les documents sur les chiffrements par blocs ont traditionnellement été des conceptions concrètes (avec des paramètres et des noms spécifiques) ou des conceptions brisées. Les documents sur les chiffrements de flux sont plus souvent des conceptions générales ou des techniques d'analyse, avec des applications et des exemples généraux. Bien que la cryptanalyse des chiffrements de flux soit aussi importante que les chiffrements par blocs, et encore plus dans le cercle militaire, il est beaucoup plus difficile de former un cours combinant les deux à partir des documents académiques existants. Un bon document de survol des chiffrements de flux est disponible en-ligne à l'adresse : http://www.rsa.com/rsalabs/pubs/html/notes.html 4 Pré-requis Il sera pratiquement impossible de comprendre certains résultats cryptanalytiques sans une bonne compréhension de concepts simples des probabilités et statistiques. Le Handbook of Applied Cryptography dispose d'une introduction rapide sur une grande partie de la théorie des probabilités ; toutefois, les étudiants qui apprennent ces domaines pour la première fois trouveront une introduction plus douce au sujet dans un livre consacré aux probabilités et statistiques. D'autres sujets des mathématiques discrètes et de la science informatique seront aussi utiles, bien qu'ils ne soient pas strictement indispensables. Un étudiant devrait apprendre, ou être prêt à apprendre, l'algèbre linéaire, la théorie des groupes, la théorie de la complexité, le combinatoire et la théorie des graphes. Ces domaines devraient être étudiés profitablement avec la cryptanalyse. Il est impossible de comprendre réellement une attaque cryptanalytique sans l'implémenter. Implémenter une attaque décrite dans un document peut être très instructif ; implémenter une nouvelle attaque de votre cru révèle souvent des subtilités que l'analyse théorique ne pourra analyser. Pour cette raison, la programmation mathématique dans un langage tel que le C est une compétence requise. 4.1 Fond historique La cryptanalyse des algorithmes de chiffrement avant l'avènement des ordinateurs n'est pas réellement applicable à la cryptanalyse des algorithmes modernes, mais elle forme une lecture intéressante et offre un bon exemple de l'état d'esprit requis pour réaliser de la cryptanalyse. Je ne considère pas cela comme un requis indispensable, mais un étudiant appliqué devrait considérer la lecture d'Helen Fourche Gaines, Cryptanalysis: A Study of Ciphers and their Solution (Dover Publications, 1939). Sont aussi intéressants: les volumes écrits par William F. Friedman et réimprimés par Agean Park Press: • Elements of Cryptanalysis • Military Cryptanalysis, parties I, II, III et IV • The Riverbank Publications, parties I, II et III • Military Cryptanalytics, partie I, vol.1 et 2 et partie II, vol.1 et 2. Aegan Press se trouve à l'adresse http://www.ageanpress.com/books/ Une lecture attentive de David Kahn, The Codebreakers (The Macmillan Company, 1967) est indispensable pour une compréhension de l'histoire de la cryptographie. Je le recommande fortement. 5 Obtenir les matériaux de cours Les documents utilisés dans ce cours proviennent des travaux de plusieurs conférences différentes. J'ai tenté d'éviter les publications obscures, mais invariablement vous en trouverez. Ceci signifie que beaucoup de bons chiffrements ne sont pas listés ci-dessus : CAST est le premier exemple. S'il vous plaît ne considérez pas l'absence d'un chiffrement de la liste comme une indication de force ou de faiblesse, c'est tout simplement une question de disponibilité. Pratiquement tous les documents proviennent des travaux des conférences Springer-Verlag, tous publiés dans les séries Lecture Notes in Computer Science (LNCS). La plupart des librairies universitaires souscrivent aux séries LNCS complètes. Au minimum, un étudiant devrait disposer du cédérom contenant les travaux de tous les Crypto et Eurocrypt (disponible chez Springer-Verlag), ainsi que les travaux provenant des séries Fast Software Encryption (FSE). Il y a beaucoup de documents dans ces travaux dont la lecture est bénéfique, bien qu'ils ne soient pas listés ici. Je maintiens une page à http://www.counterpane.com avec des liens vers les documents disponibles sur la uploads/Management/ cours-cryptanalyse.pdf
Documents similaires
-
16
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Fev 24, 2021
- Catégorie Management
- Langue French
- Taille du fichier 0.1137MB