Notre action s'articule autour de trois équipes très complémentaires : le projet CODES (INRIA Rocquencourt), le projet ARENAIRE du LIP (ENS Lyon, CNRS, INRIA Rhônes-Alpes et Université Claude Bernard de Lyon) et l'équipe Arithmétique Informatique du LIRMM (CNRS, Montpellier). Le projet CODES possède une solide expérience de la cryptologie, et en particulier des cryptosystèmes basés sur les codes correcteurs d'erreurs. L'équipe Arithmétique Informatique du LIRMM est spécialisée sur l'arithmétique des ordinateurs et l'implantation d'algorithmes de cryptographie au niveau arithmétique. Finalement, le projet ARENAIRE travaille dans le thème de l'arithmétique des ordinateurs depuis plus d'une dizaine d'années et possède de solides connaissances dans la réalisation d'opérateurs matériels, aussi bien sur FPGA que sur ASIC.
Le but du projet OCAM (Opérateurs Cryptographiques et Arithmétique Matérielle) est d'étudier l'implantation matérielle de primitives cryptographiques utilisant la théorie algébrique des codes. Plus particulièrement, nous nous proposons de mettre en oeuvre en FPGA, un algorithme récent de signature numérique qui permet d'obtenir avec un niveau de sécurité élevé les signature les plus courtes connues à ce jour (moins de 100 bits). Le principal défaut de cet algorithme étant sa lenteur pour créer une signature en logiciel (une à deux minutes), son implantation matérielle pourrait présenter un intérêt considérable.
Au-delà du système de signature nous envisagerons la mise en oeuvre matérielle d'autres algorithmes cryptographiques à clé publique (McEliece, Niederreiter, Gabidulin,...) qui posent des problèmes similaires d'implantation matérielles. Un effort particulier sera consacré à l'étude des opérateurs arithmétiques sur des extensions de corps finis, dont l'impact en cryptologie est particulièrement important.
La recherche en cryptographie est en plein essor depuis quelques années. Les importants efforts fournis ont permis l'émergence de solutions à la fois sûres et accessibles pour le plus grand nombre. Des primitives existent qui permettent d'assurer les principales fonctionnalités : confidentialité, intégrité, authenticité. Cependant, avec l'accroissement des réseaux, la demande en sécurité augmente et évolue. Les enjeux de la recherche sur les aspects algorithmiques évoluent également. Aujourd'hui, en plus de la « maintenance » des systèmes existants en fonction des évolutions scientifiques et technologiques, il faut explorer et proposer des alternatives afin de se mettre à l'abri de percées dans un domaine particulier, mais aussi pour être à même de répondre à des demandes de nouvelles fonctionnalités de sécurité.
Dans ce contexte, nous nous proposons d'étudier la réalisation matérielle d'un nouveau mécanisme de signature numérique basé sur la théorie des codes. Ce mécanisme est en plein essor dans le commerce électronique ou la gestion bancaire par Internet : il permet de garantir l'identité de la personne effectuant les opérations. Son étude est donc fondamentale. Une signature numérique est une information de petite taille permettant au destinataire d'un message de s'assurer de l'identité de l'auteur. Un schéma de signature se construit à partir de systèmes de chiffrement à clef publique. La grande majorité des produits commerciaux actuels ainsi que leur sécurité reposent sur des problèmes difficiles de théorie des nombres et dépendent ainsi d'une unique technologie. La théorie des codes représente une alternative attrayante : la sécurité des systèmes repose cette fois sur la difficulté du décodage des codes linéaires. Très étudiées théoriquement depuis plus de vingt ans, ces méthodes devraient maintenant conduire à d'importants développements pratiques. Les algorithmes de signature auxquels elles conduisent ont toutefois le défaut d'être lents en logiciel.
L'implantation matérielle qui, de manière générale est une étape importante dans l'étude d'un algorithme cryptographique, devient ainsi cruciale dans notre projet. Cela amène à notre objectif central qui est la réalisation d'un prototype sur FPGA (Field Programmable Gate Array) de l'algorithme de signature CFS01. L'enjeu essentiel est autour de la manipulation de nouvelles représentations de nombres. En effet, les représentations implantables en circuits sont actuellement limitées aux entiers à travers des codages élémentaires (complément à deux ou signe/valeur absolue). Les opérations sur ces données sont de même restreintes à l'addition et à la multiplication. Il faut donc concevoir et mettre en place de nouvelles structures de données puis développer des opérateurs arithmétiques dédiés à notre application. Ceci se place dans un contexte plus large de réalisation d'unités de calcul spécifiques à la cryptologie pour les futures générations de processeurs. Il s'agit pour nous en particulier de prouver la pertinence en pratique, voire au plan commercial, des alternatives basées sur la théorie des codes que nous proposons.