
La SSI > CryptologieCryptologie28 septembre 2007 17:36
La cryptologie, littéralement science du secret en grec, a longtemps été associée à de mystérieux enjeux d’espionnage militaire et diplomatique bien éloignés des préoccupations scientifiques habituelles. Après s’être longtemps résumée à un jeu sans fondements théoriques profonds entre ingénieux concepteurs de codes secrets et cryptanalystes acharnés, elle s’est transformée, à l’aube du 21ème siècle, en une science dynamique à l’intersection de nombreuses autres plus orthodoxes que sont les mathématiques, l’informatique et la micro-électronique. Le développement de la société de l’information associé à la révolution des moyens de communication offerts aux entreprises mais aussi aux simples particuliers, a en effet radicalement transformé les questions posées à la cryptologie, la faisant sortir des cabinets noirs pour se développer au grand jour dans le cadre de la recherche académique. Parmi les problèmes que l’on s’attache à résoudre de nos jours, on retrouve bien entendu celui du chiffrement des messages afin d’en garantir la confidentialité mais aussi celui de l’authentification dans un environnement éliminant toute présence physique, celui de la signature de documents numériques immatériels, celui de la garantie d’intégrité des transmissions à travers des réseaux ouverts à des menacés multiples... Chiffrement conventionnelOn distingue classiquement deux grandes catégories en matière de chiffrement : le chiffrement conventionnel et le chiffrement à clé publique. Le premier appelé chiffrement conventionnel, ou chiffrement symétrique, fait l’hypothèse qu’une clé secrète, une simple suite de bits, est initialement partagée par les correspondants. Un schéma de chiffrement se définit comme un algorithme paramétré par la clé ayant la propriété de transformer un message clair en un message chiffré de telle façon que la transformation inverse soit aussi facile si l’on connaît la clé mais difficile autrement. L’algorithme de chiffrement symétrique le plus connu est certainement la norme commerciale américaine DES adoptée en 1976. Il met en œuvre les principes classiques formalisés par Shannon dès 1949 de diffusion et de confusion des données, et ce de manière étonnamment robuste comme l’ont montré vingt ans de tentatives infructueuses d’attaque. DES a été une formidable motivation pour les cryptanalystes et les concepteurs de cryptosystèmes : des attaques "académiques" telles que les méthodes de cryptanalyse linéaire et différentielle n’ont pas suffi à entamer sa solidité mais ont permis de casser de nombreuses autres propositions apparemment solides. Elles ont de plus entraîné une meilleure analyse de la sécurité heuristique des schémas de chiffrement symétrique. Toutefois, l’algorithme DES utilise des clés secrètes de 56 bits ce qui est aujourd’hui notoirement insuffisant pour assurer un bon niveau de sécurité. Afin de bien comprendre l’importance de ce paramètre, il suffit de remarquer qu’une attaque dite exhaustive, toujours possible dès que l’algorithme de chiffrement est public, consiste à tester l’ensemble des clés possibles, soit au total 2 à la puissance 56 pour DES, afin de déterminer celle qui fournit un texte clair cohérent. Une telle énumération peut sembler impossible, mais une association américaine à but non lucratif a été capable de construire pour 175.000 € une machine capable d’effectuer un tel calcul en moins d’une semaine ! Afin d’éviter de telles attaques, une riposte très simple consiste à augmenter la taille des clés utilisées. On utilise donc actuellement des algorithmes utilisant des clés de taille allant de 112 à 256 bits, tel l’AES (Advanced Encryption Standard). La sécurité face aux attaques exhaustives devient alors colossale, un nombre comme 2 à la puissance 256 étant comparable au nombre d’électrons estimés dans l’univers. Chiffrement à clé publiqueUn problème inhérent à la cryptologie symétrique demeure cependant : quelle procédure suivre pour s’accorder initialement sur une clé secrète partagée ? Ceci pose peu de problèmes dans le cadre d’applications restreintes à de petits réseaux reliant peu de participants mais devient fondamental dans celui de grands réseaux ouverts à l’image d’internet. La cryptologie asymétrique, encore appelée cryptologie à clé publique, s’attache à résoudre ce difficile problème. Son principe fondamental est de donner à chaque utilisateur deux clés associées, l’une secrète et l’autre rendue publique. Afin de chiffrer un message à l’intention d’un utilisateur, l’idée consiste à n’utiliser que sa clé publique alors que le déchiffrement doit nécessiter la connaissance de la clé secrète. Ce concept naturel permet de communiquer de manière confidentielle sans avoir à partager la moindre information secrète initialement. Il n’a pourtant été proposé qu’en 1976 par Whitfield Diffie et Martin Hellman, marquant ainsi véritablement la naissance de la cryptologie moderne. Les mécanismes permettant la réalisation d’une telle asymétrie se fondent sur l’utilisation d’opérations mathématiques que l’on ne sait pas inverser efficacement d’un point de vue algorithmique. Considérons par exemple la multiplication de deux grands nombres premiers ; cette opération est facilement réalisable et inversible d’un point de vue purement mathématique par simple factorisation mais on ne connaît pas d’algorithme efficace permettant de factoriser de tels entiers. Le premier cryptosystème asymétrique, RSA, a été proposé en 1978 par Ronald Rivest, Adi Shamir et Leonard Adleman. Il repose sur la difficulté d’un problème proche de celui de la factorisation. Déchiffrer un message codé avec le système RSA sans connaître la clé secrète correspondante nécessite d’être capable de résoudre un problème très difficile. Les connaissances actuelles en théorie algorithmique des nombres ne permettant pas de réaliser une telle opération, même en disposant d’une très importante puissance de calcul, une telle hypothèse apparaît bien improbable, d’où une forme de preuve de sécurité ramenant le problème de l’attaque contre un système de chiffrement à un problème mathématique bien défini et étudié. On ne peut cependant pas parler de sécurité inconditionnelle car rien n’exclut que d’importants progrès mathématiques ou matériels ne viennent à bout d’un problème actuellement réputé insoluble. La cryptographie asymétrique résout le problème de la mise en accord de clés. Ceci est très important lorsque l’on ne connaît pas son correspondant, par exemple pour transmettre un numéro de carte de crédit à un serveur commercial sur internet. Deux problèmes se posent cependant. D’un point de vue pratique tout d’abord, la cryptographie à clé publique nécessite des calculs bien plus complexes que ceux requis par la cryptographie symétrique. On peut contourner ce problème en ne l’utilisant que pour se mettre d’accord sur une clé symétrique qui sera ensuite utilisée pour chiffrer les communications de manière conventionnelle. Un second problème, bien plus fondamental, est celui de la certification des clés publiques. En effet, il est très facile pour quiconque de générer des couples de clés publique et secrète associées. Comment peut-on alors s’assurer que la clé publique que l’on utilise pour chiffrer un message à l’intention d’un correspondant lui appartient effectivement et n’est pas celle d’un pirate ? Une solution consiste à faire signer la clé publique par une autorité certifiant son appartenance à un individu. Il est ainsi possible d’organiser une infrastructure de gestion de clés. Ceci nécessite toutefois de disposer d’un équivalent numérique à la signature manuscrite. Signature numérique et authentificationUn algorithme de signature numérique doit concilier diverses propriétés. Le signataire doit pouvoir générer facilement une information attachée à un document numérique quelconque de manière à ce que n’importe qui puisse en vérifier la validité. Toutefois, la vérification ne doit pas donner à celui qui l’exécute la capacité de reproduire une telle signature. Ceci interdit en particulier les solutions naïves consistant à scanner une signature manuscrite car il est alors très facile pour un tricheur de signer un message quelconque. La signature électronique jouit d’une propriété fondamentale dite de non-répudiation ; puisque seul le signataire est capable de générer des signatures valides, une telle signature attachée à un document est nécessairement authentique et le signataire ne peut, par conséquent, contester l’avoir générée. La définition d’une signature numérique fait donc apparaître de nouveau une asymétrie entre le processus de signature proprement dit et celui de vérification qui doit être réalisable par n’importe qui. Il n’est par conséquent pas surprenant que des techniques de chiffrement à clé publique telles que RSA puissent être utilisées à des fins de signature. L’idée consiste à utiliser sa clé secrète afin de signer un document de manière à ce que la signature puisse être vérifiée à l’aide de la clé publique uniquement. La signature permet d’authentifier un message comme provenant bien d’un émetteur. Un problème similaire concerne l’authentification d’individus. Dans le monde courant, l’authentification se fait en général par présentation de papiers d’identité dont on suppose qu’ils ne sont ni falsifiables, ni reproductibles. Dans un contexte numérique, la modification et la copie sont rendues particulièrement aisées d’où la nécessité de définir de nouveaux mécanismes d’authentification. La notion de preuve interactive à divulgation nulle de connaissance permet de résoudre ce problème de manière particulièrement élégante : afin de démontrer que l’on est bien celui que l’on prétend être, on dispose d’une clé secrète, par exemple deux grands nombres premiers, et d’une clé publique, le produit des deux entiers secrets. On a de plus un certificat signé par une autorité attestant que tel individu possédant telle clé publique est bien celui qu’il prétend être. Afin de faire la preuve de son identité, on produit sa clé publique et le certificat associé et on prouve que l’on connaît bien la clé secrète correspondant à la clé publique, par exemple sa factorisation. Une telle preuve doit convaincre un vérifieur sans pour autant lui fournir d’information sur le secret afin d’éviter qu’un espion ou bien que le vérifieur lui-même puisse ensuite se faire passer pour vous. L’étonnant concept de preuve à divulgation nulle de connaissance proposé en 1985 permet d’effectuer de telles démonstrations, transformant la conception habituelle de la notion de preuve en montrant qu’il est possible de démontrer un savoir sans dévoiler la moindre information à son sujet ! Ces preuves peuvent de plus être modifiées en schémas non interactifs, par exemple à des fins de signature. C’est ainsi que l’on a défini la norme de signature DSS fondée sur un problème classique de théorie algorithmique des nombres, problème dit du logarithme discret. Cette norme entre en concurrence avec le système RSA mais le même paradigme peut aussi être utilisé avec d’autres problèmes, en particulier non issus de la théorie des nombres. On a ainsi réalisé des protocoles d’authentification et de signature fondés sur des problèmes combinatoires NP-complets ne nécessitant pas de calcul sur de grands entiers et par conséquent bien plus adaptés à certains dispositifs de calcul comme les cartes à puce. Applications et mise en œuvreL’apparition d’un réseau mondial accessible facilement permet d’envisager de nombreuses applications nouvelles et en particulier le développement d’une nouvelle forme de commerce que l’on qualifie d’électronique. L’internet n’est cependant pas à l’abri d’actions d’espionnage ou de malveillance d’où l’urgence actuelle de mettre en place des procédures de sécurisation. Il est également important de bien comprendre que la cryptologie fournit des primitives qu’il faut ensuite assembler convenablement afin de réellement sécuriser les réseaux. Il est par exemple inutile d’utiliser un chiffrement fort comme RSA si les clés secrètes ne sont pas elles-mêmes protégées sur les ordinateurs des utilisateurs, lesquels peuvent être victimes d’intrusions. Aux erreurs de conception de protocole s’ajoutent de plus celles d’implémentation. Finalement, au-delà du cadre purement technique, un dernier problème majeur est celui de la sensibilisation des utilisateurs aux problèmes de sécurité. Les recherches modernes en micro-électronique fournissent cependant des outils qui permettent de résoudre efficacement le problème central de la protection des clés secrètes. Au premier rang de ces dispositifs figure la carte à puce, alliant des capacités de calcul parfois moins limitées qu’on ne le croit à des capacités de stockage d’information de manière sécurisée. Après avoir imaginé que l’on pourrait concevoir des cartes totalement inviolables, on admet aujourd’hui que les techniques développées pour la conception et la réparation de microcircuits permettent de contourner la plupart les protections envisageables mais à des coûts importants. Les stratégies actuelles d’emploi de carte à puce doivent donc suivre des principes élémentaires d’économie : une analyse de la mémoire de la carte doit coûter plus cher qu’elle ne peut rapporter. Il convient par conséquent d’abandonner certains protocoles utilisés actuellement qui se fondent sur quelques clés secrètes stockées dans l’ensemble des cartes. Perspectives en Cryptologie à l’aube d’un nouveau millénaireOn a longtemps analysé la sécurité des cryptosystèmes conventionnels en termes purement pratiques, un système étant considéré comme sûr tant que personne ne l’avait cassé. Le développement d’une méthodologie issue des travaux de recherche a permis de passer en une vingtaine d’années à une sécurité que l’on peut qualifier d’heuristique. L’objectif actuel est maintenant de fournir des preuves de sécurité tant dans le domaine de la cryptographie asymétrique que dans celui du chiffrement conventionnel. Des tentatives allant dans ce sens commencent à apparaître mais on est encore loin de pouvoir prouver la sécurité en ne se fondant que sur quelques hypothèses bien délimitées. En matière de cryptologie à clé publique, plusieurs questions se posent encore et de nouvelles apparaissent périodiquement suite aux avancées permanentes de la recherche en cryptologie. Un domaine très actif actuellement est celui qui concerne les fonctions de hachage qui ont connu des découvertes récentes. Dans le domaine de la cryptologie à clé publique, on cherche à développer l’utilisation des cryptosystèmes se fondant sur de nouveaux problèmes, tels ceux utilisant des courbes elliptiques, afin de pouvoir proposer des alternatives à RSA et aux systèmes apparentés, notamment en cas de progrès majeur en matière de factorisation. Un autre axe de recherche concerne l’adaptation des mécanismes asymétriques coûteux en terme de capacité de calcul aux dispositifs portables de faible puissance comme les cartes à puce sans contact. La cryptologie fournit les outils indispensables afin d’assurer la protection des libertés individuelles dans un monde envahi par le numérique. Ceci implique un emploi largement répandu du chiffrement mais aussi le développement de nouveaux mécanismes garantissant notamment l’anonymat dans les transactions électroniques. La cryptologie ne doit cependant pas se transformer en une arme bénéficiant aux criminels ni en un moyen de contrôle des citoyens par un "Big Brother" numérique. Des protections doivent par conséquent être mises en place, permettant par exemple de déchiffrer les communications ou de lever l’anonymat dans certains cas précisément réglementés. Le défi posé actuellement à la cryptologie est par conséquent de fournir des primitives efficaces garantissant de manière si possible prouvée une très forte sécurité mais qui ne puissent pas être détournées à des fins malhonnêtes. |