Les origines de la cryptologie remontent à l’antiquité : le plus vieux document chiffré retrouvé est une tablette d’argile datant du XVIe siècle avant J.-C. Les procédés de chiffrement par substitution sont apparus à cette période et ont été très largement utilisés depuis lors. Au fil des siècles, les techniques cryptographiques se perfectionnent lentement et se complexifient. Jusqu’au XIXe siècle, les motivations sont essentiellement diplomatiques et militaires, l’usage de la cryptographie est pour beaucoup l’apanage des puissants qui font appel à des spécialistes, des dynasties de cryptographes apparaissent (les Rossignol en France, les Da Porta en Italie). Durant toute cette période, la cryptographie se résume essentiellement à un ensemble de savoir-faire et est considérée comme un art et non comme une science.
L’essor du télégraphe dans les années 1840 accroît le besoin de dissimuler le sens des messages et, de ce fait, favorise la généralisation de la cryptographie et la réflexion sur les méthodes cryptographiques. En 1883, Auguste Kerckhoffs publie le livre La cryptographie militaire dans lequel il énonce plusieurs propriétés que doit avoir un bon système de chiffrement. Parmi celles-ci, nous citons ici les trois premières qui font preuve d’une étonnante modernité et sont toujours communément admises :
– Le système doit être matériellement, sinon mathématiquement, indéchiffrable.
– Il faut qu’il n’exige pas le secret et qu’il puisse sans inconvénient tomber entre les mains de l’ennemi.
– La clef doit pouvoir (. . .) être changée ou modifiée au gré des correspondants.
La première propriété signifie que même s’il y a une manière théorique de casser un système cryptographique, ce dernier peut être considéré comme sûr s’il n’existe pas de méthode pour le casser en un temps raisonnable avec les outils dont nous disposons. En d’autres termes, si la meilleure stratégie pour mettre à mal sa sécurité requiert de faire tourner le meilleur ordinateur actuellement disponible pendant 1000 ans, alors on considère que ce système cryptographique peut être utilisé. Actuellement, presque tous les algorithmes utilisés reposent sur des problèmes que l’on pense calculatoirement difficiles, c’est-à-dire, qui ont une solution, mais que l’on ne peut pas résoudre rapidement. On arrive à prouver que pour pouvoir porter atteinte à la résistance de ces algorithmes il faut préalablement réussir à casser un de ces problèmes calculatoirement difficiles, ce qui est impossible en temps raisonnable .
Les deuxième et troisième principes mettent en exergue la notion centrale de clef. L’architecture d’un système cryptographique doit pouvoir être connue de tous, même d’un éventuel attaquant, seul le secret de la clef doit être nécessaire pour assurer la sécurité. Cette clef doit être flexible et pouvoir être changée facilement, de telle sorte que l’on en utilise une différente à chaque échange. À la difficulté de concevoir un algorithme résistant aux attaques extérieures, s’ajoutent donc les problèmes de générer une clef sûre puis de modifier régulièrement cette clef. Cette question est d’autant plus importante que toute la sécurité de l’algorithme repose sur la confidentialité de cette clef et la moindre fuite d’information peut compromettre tout le système. Il faut donc être très prudent lors de la mise en accord de clefs. C’est d’ailleurs la difficulté de mettre à jour certaines clefs dans les systèmes cryptographiques allemands qui facilite le travail des cryptanalystes anglais lors de la seconde guerre mondiale.
En effet, pendant cette période les allemands utilisent la plus connue des machines de chiffrement mécaniques : Enigma. Ces machines de chiffrement ont fait leur apparition après la première guerre mondiale et sont intensément utilisées au cours de la seconde. Enigma possède un jeu de rotors dont l’agencement est mis à jour quotidiennement, ce qui revient à changer en partie la clef. Cependant, pour renouveller entièrement la clef, il faudrait que toutes les troupes allemandes modifient régulièrement le jeu de rotors utilisé, et ce de façon synchronisée, ce qui est difficile à effectuer. C’est pourquoi ceci n’est fait que très rarement et l’activité de cryptanalyse des forces alliées s’en trouve allégée. C’est justement pour casser certains algorithmes de chiffrement allemands que les anglais construisent le Colossus, considéré comme le premier ordinateur à avoir vu le jour. La cryptographie fait alors connaissance avec l’informatique.
Après la guerre, entre 1948 et 1950, Shannon fonde la théorie de l’information et initie avec elle, la cryptologie moderne. C’est un tournant important dans l’histoire de la cryptologie, mais il faudra attendre la fin des années 1970 pour que cette science nouvelle prenne vraiment son essor. Ces années sont marquées par la normalisation de l’algorithme de chiffrement symétrique DES (1977), mais surtout par la naissance de la cryptographie asymétrique avec l’article fondateur de Diffie et Hellman [DH76] (1976) puis la création de l’algorithme RSA [RSA78] (1977). Les premières conférences académiques apparaissent au début des années 1980.
La naissance de la cryptographie asymétrique révolutionne la cryptologie et notamment l’échange de clefs. Jusqu’à présent, ce dernier était effectué par des méthodes classiques : une des parties écrivait une liste de clefs à l’avance et la transmettait à l’autre partie, parfois grâce à une tierce personne de confiance. C’est cette méthode qui était employée par les allemands durant la seconde guerre mondiale : ils utilisaient un calendrier secret dans lequel étaient notés les réglages initiaux à utiliser pour chaque jour. Dorénavant, il est possible d’effectuer cette mise en accord de clefs à distance et au dernier moment par des méthodes cryptographiques. Cependant, un nouveau problème se pose : lors d’un échange de clefs, puisque je suis à distance, il me faut pouvoir vérifier l’identité de l’entité avec laquelle je communique car rien n’empêche a priori un adversaire de se faire passer pour la personne avec laquelle je veux discuter. Avant, cette identité ne pouvait être mise en doute : les seules personnes capables de communiquer étaient celles qui possédaient déjà la clef. Maintenant il faut effectuer une authentification en même temps que l’échange de clefs. Ces deux notions sont donc liées et ont été très étudiées depuis lors. De nombreuses solutions ont été élaborées pour assurer l’authentification lors d’un échange de clefs.
Grâce aux nouvelles fonctionnalités apportées par la cryptographie asymétrique et au développement de l’informatique, la cryptographie est maintenant très répandue et on l’utilise quotidiennement par le biais d’objets courants (carte bleue, ordinateurs, cartes vitales,. . .).
De nos jours, les outils cryptographiques sont conçus pour remplir de plus en plus de fonctionnalités différentes. Parmi ces nombreuses fonctionnalités, il y en a trois qui sont particulièrement importantes : les protocoles cryptographiques doivent assurer la confidentialité, l’intégrité et l’authentification.
Éthymologiquement, la cryptologie est « la science du secret », définition qui correspond avec son objectif originel qui était de préserver le secret des messages. C’est la propriété à laquelle tout le monde pense quand on évoque la cryptologie : garantir la confidentialité, ce qui signifie que l’on garde le contenu d’un message secret vis à vis de tout le monde, sauf de ceux qui sont autorisés à le voir.
Cependant, cette fonctionnalité ne suffit pas à garantir la sécurité des communications. Un adversaire peut intercepter un message puis, même s’il n’en connait pas le contenu, modifier ce message de telle sorte que sa signification soit différente. Il ne lui reste plus qu’à faire suivre le message altéré vers son destinataire légitime. Ainsi, même s’il ne connaît pas le contenu du message initial et donc ne sait ni ce qu’il a changé exactement, ni le sens du message obtenu, il peut au moins réussir à désorganiser le camp qu’il attaque et en tirer profit. C’est pourquoi on exige que les protocoles cryptographiques permettent de repérer les messages qui ont été altérés de ceux qui sont restés inchangés : on demande que les protocoles préservent l’intégrité.
Enfin, un adversaire peut se mettre entre les deux parties communiquant. Comme il est habituel en cryptologie, appelons ces deux entités Alice et Bob. Placé entre Alice et Bob, l’adversaire peut intercepter les conversations et essayer de se faire passer pour Bob auprès d’Alice et/ou pour Alice auprès de Bob, et ainsi obtenir des informations. Pour éviter cette attaque, dite attaque par le milieu, il faut qu’Alice puisse vérifier que les messages viennent bien de Bob et réciproquement. En d’autres termes, le récipiendaire d’un message doit pouvoir s’assurer de l’identité de l’entité qui a généré le message. On dit que le message est authentifié et que le protocole assure l’authentification.
|
Table des matières
Chapitre 1 Introduction
1.1 Brève histoire de la cryptologie
1.1.1 De l’antiquité aux premiers ordinateurs
1.1.2 De la naissance d’une science
1.2 Établissement d’un canal sécurisé
1.2.1 Les trois principes fondamentaux
1.2.2 Modularité des protocoles
1.2.3 Constitution d’un protocole établissant un canal sécurisé
1.3 Dérivation de clefs
1.4 Modes opératoires de fonctions de hachage
Chapitre 2 Introduction aux preuves de sécurité
2.1 Machine de Turing, réduction et adversaires
2.1.1 Machine de Turing
2.1.2 Cadre des définitions de sécurité
2.1.3 Techniques de preuves
2.2 Modèle de la théorie de l’information
2.2.1 Distance statistique
2.2.2 L’entropie et ses mesures
2.2.3 Les extracteurs d’aléa
2.3 Modèle standard
2.3.1 Hypothèses calculatoires
2.3.2 Primitives cryptographiques
2.4 Modèles de l’oracle aléatoire et du chiffrement idéal
2.4.1 Modèle du chiffrement idéal
2.4.2 Modèle de l’oracle aléatoire
2.5 Fonctions de hachage
2.5.1 Résistance aux collisions
2.5.2 Résistance en seconde préimage
2.5.3 Résistance en préimage
2.5.4 Mode cascade
Conclusion
Télécharger le rapport complet