Précédent : Logiciels Remonter : Projet CODES, Codage et
cryptographie Suivant : Actions industrielles
Participants : Daniel Augot , Lancelot Pecquet , Gaétan
Haché , Dominique Le Brigand
Ces dernières années, l'évolution des logiciels de calcul formel et le développement du thème Géométrie algèbrique et codage, ont amené les chercheurs à formuler d'importants problèmes de recherche en terme de résolution de systèmes d'équations sur les corps finis. Il en est ainsi pour la détermination du poids minimum (capacité de correction) de certains Codes, ou pour l'étude du rayon de recouvrement, paramètre qui mesure la distance d'un mot quelconque au code utilisé. Des techniques de décodage, fondées sur la recherche de bases standard, sont aussi à l'étude dont les applications intéressent le codage en général.
D'autre part, on assiste depuis une quinzaine d'années, à une diversification des applications, et donc des objets de codage. La communauté scientifique étudie activement d'autres environnements (ainsi les modules plutôt que les corps finis) d'autres Codes que ceux actuellement utilisés et de nouvelles techniques de décodage. Sur ce thème, nous nous situons plutôt en algorithmique Nous nous intéressons d'abord à la construction et les performances des nouveaux objets proposés ( problèmes posés par les implémentations, complexité, programmation de fonctionnelles issues de la géometrie algébrique ...).
Depuis les travaux de GOPPA (1960-70), on sait que les Codes géométriques constituent une classe importante de Codes correcteurs ; leurs ``bons'' paramètres et leur structure algébrique complexe les désignent naturellement pour certaines applications (construction de Codes longs, protocole de protection...). Constructions et classifications sont en cours d'étude, qui nécessitent une collaboration étroite entre Mathématiciens, Théoriciens du Codage et spécialistes de Calcul Formel. L'apport des logiciels de Calcul Formel, qui dans ce contexte doivent être utilisés et même développés par des spécialistes, est très important.
G. Haché a soutenu sa thèse fin 1996 [4]. Il a ensuite (Janvier-Juillet 97) effectué un séjour post-doctoral au département de mathématiques de Limoges, dans l'équipe de calcul formel de D. Duval (voir § 4.). G. Haché est actuellement ``Postdoctoral fellowship'' à l'Université Concordia - Montréal, Québec.
Le décodage des Codes correcteurs connaît un regain d'intêret
parmi les codeurs (voir les recherches menées pour la
cryptographie §).
On considère généralement que les algorithmes de décodage des
Codes géométriques ne sont pas suffisamment efficaces. Il existe
des Codes performants que l'on ne sait pas décoder, ainsi les
Codes résidus quadratiques -- qui sont des codes
cycliques. Il y a là une série de problèmes ouverts (conception
et amélioration d'algorithmes spécifiques). D'autre part, il est
maintenant bien compris que décoder revient à calculer une base
de Groebner d'un idéal. Les algorithmes de ce type, encore trop
lents pour être opérationnels, permettent toutefois de décoder
au-dessus des bornes théoriques. On peut ajouter qu'il est
difficile de décrire maintenant l'ensemble de leurs possibilités
et les applications à venir.
C'est vers ce type de problème que nous nous sommes orientés
cette année. D. Augot et L. Pecquet ont travaillé dans ce sens
[45]. Un des éléments du
travail effectué a été l'étude du langage MAGMA et de son package
``Codes Correcteurs'' dans le contexte décrit.
Les chercheurs du projet s'intéressent aux propriétés
générales structurelles des Codes, dans un espace ambiant donné.
Il s'agit d'un sujet théorique en amont qui a pour but
essentiellement de classifier un ensemble d'objets prédéfinis.
L'ensemble de ces travaux constitue une base théorique
fondamentale pour les actions à finalité cryptographique décrits
plus loin (cf. §). Il s'agit de caractériser des
classes d'objets exceptionnels, de concevoir des outils pour les
traiter, de reconnaitre une structure ...
Participants : Thierry Berger , Pascale Charpin
Reconnaitre deux Codes équivalents, reconnaitre un code destructuré par permutations, accélérer certaines procédures de décodage, tous ces problèmes relèvent de l'étude des automorphismes des Codes - i.e. des transformations isométriques conservant le code. Les chercheurs du projet ont obtenu des résultats importants dans ce domaine. Les plus marquants sont : la détermination du groupe de permutations des Codes BCH primitifs et un nouvel algorithme de preuve de l'équivalence de deux Codes linéaires binaires.
Utilisant les travaux de Delsarte (1969) et la description des Codes affine-invariants par antichaîne, due à P. Charpin (1987), T. Berger et P. Charpin ont pu mettre en place une série d'outils, algorithmiques ou combinatoires, permettant de déterminer effectivement les groupes de permutations. Ce travail, qui donne comme principale application, le groupe de permutations des Codes BCH primitifs, a été présenté dans plusieurs colloques internationaux. Un article complet est paru fin 96 [6]. Un autre article est en préparation.
D'autre part, T. Berger s'est intéressé aux groupes d'automorphismes des Codes alternants. Ces codes sont des sous-codes des codes de Reed-Solomon généralisés et contiennent les Codes de Goppa classique. Il a montré qu'il existe quatre classes de Codes alternants cycliques et que parmi ceux-ci certains sont des Codes de Goppa [20].
Participant : Nicolas Sendrier
Deux Codes sont équivalents par permutation s'il existe une
permutation des coordonnées de l'un le transformant en l'autre.
Le problème de décision associé a été étudié récemment par
PETRANK et ROTH
qui ont montré qu'il n'était pas NP-complet, mais était, en
revanche, au moins aussi dur que le problème de décider de
l'équivalence entre deux graphes. Trouver un algorithme efficace
pour résoudre le problème de l'équivalence des Codes présente
donc un intérêt certain.
N. Sendrier a conçu et mis en oeuvre un nouvel algorithme, permettant de tester l'équivalence de deux Codes linéaires donnés [46]. Cet algorithme est capable de décider, dans presque tous les cas, de l'équivalence (par permutation) de deux Codes à partir d'un invariant (i.e. une propriété d'un code invariante par permutation du support). Cet invariant devra pouvoir se calculer en temps polynômial, et devra être discriminant, c'est-à-dire prendre souvent des valeurs distinctes pour deux Codes non équivalents. La difficulté consiste à faire fonctionner l'algorithme lorsque souvent n'est pas très proche de tout le temps (par exemple une fois sur deux).
Cet algorithme utilise les invariants du Hull - i.e. intersection d'un code avec son dual. L'énumérateur des poids du hull d'un code (intersection du code avec son orthogonal) est un invariant facile à calculer sauf pour une proportion infime de Codes [17] et fournit une discrimination suffisante en pratique pour décider de l'équivalence de deux Codes et pour retrouver la valeur de la permutation.
Ces travaux ont été présentés au colloque IEEE de théorie de
l'information [39]. Les
diverses applications possibles de l'algorithme, en relation avec
la solidité de certains cryptosystèmes (voir §), sont aussi à l'étude.
Participants : Francis Blanchet , Grégoire Bommier ,
Thierry Berger
Les Codes de Goppa binaires sont souvent dits
quasi-aléatoires -- i.e. très "proches" des Codes
aléatoires. C'est sans doute pour cette raison qu'ils sont
utilisés dans certains cryptosystèmes (voir §). D'autre part leurs propriétés,
combinatoires ou algébriques, sont liées aux propriétés générales
des polynômes sur les corps finis (en caractéristique 2), et ceci
de façon plus évidente que pour n'importe quels autres Codes. Une
partie de l'étude demandée par la DRET (voir §
) porte sur la structure des Codes
de Goppa binaires et un certain nombre de travaux ont été
effectués dans ce contexte (voir §
et
).
G. Bommier étudie dans le cadre de sa thèse les Codes de Goppa
binaires dont le groupe d'automorphismes est non trivial. En
collaboration avec F. Blanchet, il a exhibé certaines
contraintes explicites sur les paramètres, induisant la
quasi-cyclicité d'un code de Goppa. Un article est soumis
[50] dont les résultats ont
été présentés au colloque IEEE de théorie de l'information
[21].
Participants : Pascale Charpin , Victor Zinoviev
Suite à une étude sur la distribution de poids des translatés
des Codes BCH binaires -correcteurs, P. Charpin a mis en place
un ensemble d'outils permettant d'aborder de façon plus générale,
les Codes cycliques de grande dimension. Ce travail s'est
poursuivi avec V. Zinoviev. Dans [13], les auteurs montrent notamment
que les propriétés obtenues pour les BCH 2-correcteurs ne sont
plus vraies pour des capacités de correction supérieures.
D'autre part P. Charpin et V. Zinoviev, en collaboration avec A. Tietäväinen (de l'université de Turku) étudient les Codes cycliques de grande dimension. Il s'agit de jeter les bases d'une classification des Codes engendrés par deux polynômes minimaux. Les objets étudiés sont fondamentaux, apparaissant dans plusieurs problèmes issus de la théorie des corps finis (séquences, fonctions booléennes, log. discret ...) [11,2].
Participant : Claude Carlet
L'introduction par Hammons et al. (1993) de la notion de code
-linéaire a ouvert un pan complet de recherche
dans le domaine des Codes correcteurs d'erreurs. Il n'existait
pas jusqu'a présent de généralisation de cette notion à celle de
code
-linéaire. C. Carlet a introduit récemment une
telle généralisation. Il en a déduit de nouveaux Codes, qui
généralisent les Codes de Kerdock et de Delsarte-Goethals
[10]. Enfin, il a pouruivi
l'étude des Codes de Kerdock du point de vue de leur
-linéarité dans un article présenté au colloque
international Finite Fields and Applications [30].
Participant : Eric Filiol
Les Codes convolutifs sont utilisés pour corriger des erreurs lorsque l'information est transmise par flot. E. Filiol, dans son mémoire de DEA, montre comment l'on peut reconstruire un codeur convolutif avec pour seule donnée la suite binaire obtenue en sortie [43]. Ce résultat sera exposé à la conférence internationale Cryptography and Coding [34].
Participants : Daniel Augot
Une étude algorithmique a été menée par P. CAMION et D. AUGOT pour
calculer le polynôme minimal d'un endomorphisme, ainsi que
d'autres paramètres invariants (notamment les ``diviseurs
élémentaires''). Le problème de l'optimisation du calcul d'un
vecteur cyclique a aussi été étudié. Le résultat principal est
l'obtention d'un algorithme déterministe en pour le
calcul d'une base normale dans un corps fini. Les meilleurs
algorithmes déterministes connus étaient de complexité
.
De plus, un algorithme de calcul du polynôme minimal de
complexité
en moyenne sur un corps fini est proposé. La
complexité dans le pire des cas est de
, alors
qu'elle était
pour les algorithmes connus. Tous ces
résultats constituent donc une avancée algorithmique en algèbre
linéaire sur les corps finis.
Ces algorithmes ont été implantés en AXIOM, et, bien que déterministes, sont plus rapides que les algorithmes probabilistes déjà existant en AXIOM. Un article complet va paraître prochainement dans la revue Linear Algebra and Its Applications. [18]
Participants : Anne Canteaut , Nicolas Sendrier , Pierre
Loidreau , David Chauvin
A. Canteaut, en collaboration avec F. Chabaud (GRECC, ENS-Ulm), a élaboré un algorithme de recherche de mots de poids faible dans un code linéaire quelconque. Cet algorithme améliore notablement les performances de tous les algorithmes connus précédemment. [7,22].
D'un point de vue cryptographique, il constitue une amélioration de toutes les attaques connues sur les systèmes cryptographiques fondés sur les Codes correcteurs d'erreurs. Il existe en effet plusieurs systèmes de chiffrement à clef publique (systèmes de McEliece et de Niederreiter) et schémas d'identification (schémas de Girault, de Stern et de Véron) qui reposent sur la difficulté de trouver un mot de poids minimum dans un code linéaire dont seule une matrice génératrice est connue. Leur principal intérêt est qu'ils constituent désormais une des rares alternatives connues aux systèmes à clef publique fondés sur la théorie des nombres (RSA). Une étude très précise de la complexité de cette nouvelle attaque par la théorie des chaînes de Markov a montré que le système de chiffrement de McEliece employé avec ses paramètres originaux n'assure pas une sécurité satisfaisante [3].
Du reste, cet algorithme a également été utilisé dans l'optique de la théorie des Codes puisqu'il a permis à Anne Canteaut de déterminer la distance minimale de certains Codes BCH en longueur 511, qui était jusqu'à ce jour inconnue [3].
L'étude des Codes permutés est un autre aspect de la
recherche sur les protocoles basés sur les Codes correcteurs. Il
s'agit de savoir dans quelle mesure l'action d'une permutation
détruit la structure d'un code donné. C'est en ce sens que les
travaux sur les Codes équivalents ont des applications en
cryptographie (cf. § et
). Cette attaque, dite attaque
par structure, permettrait de retrouver la clé secrète d'un
cryptosystème de type McEliece; de façon générale, il s'agit de
déterminer des classes de clés (i.e. de Codes)
faibles.
Une étude de la structure des Codes concaténés du premier ordre a permis à N. Sendrier d'obtenir des résultats concernant l'utilisation de ces Codes pour des systèmes cryptographiques à clé publique ; la forme très particulière des mots de petit poids du dual des Codes concaténés permet de retrouver la structure concaténée pourtant cachée par une permutation aléatoire [57]. Cette étude a des conséquences immédiates en cryptographie puisqu'elle montre que l'utilisation de ces Codes dans des cryptosystèmes à clé publique de type McEliece ou Niedereitter, n'est pas fiable. Des travaux récents sur les cryptosystèmes à clé publique envisagent l'utilisation de Codes concaténés dont le code externe est choisi dans une famille de Codes géométriques et le code interne est un code de parité simple. Cette famille de Codes concaténés permet d'éviter l'attaque mise au point par N. Sendrier en 1995. Il semble néanmoins possible de généraliser cette attaque et de fragiliser ainsi ce nouveau système.
Jusqu'à ce jour, il n'y a pas de résultat connu sur l'attaque par
structure du système de McEliece basé sur les Codes de Goppa. La
structure des Codes de Goppa semble suffisament complexe, la
classe suffisamment large ... Toutefois nous avons obtenu trés
récemment des résultats encourageants. Nous arrivons à isoler des
classes de Codes de Goppa qui possèdent certains invariants, des
isomorphismes de corps; il s'agit d'une application de
l'algorithme de N. Sendrier (cf. ). Une étude précise des invariants
utilisés a été réalisée par P. Loidreau[44].
D. Chauvin a étudié, pour son mémoire de DEA, les Codes de
Gabidulin et leur implication dans les cryptosystèmes à clé
publique [42].
Participants : Anne Canteaut , Claude Carlet , Pascale
Charpin , Caroline Fontaine , Victor Zinoviev
Les fonctions booléennes sont un objet de codage, au sens large. Ainsi leur utilisation dans les protocoles de chiffrement ou dans la définition de séquences fortement autocorrélées est bien connue.
D'autre part, leurs propriétés ont surtout été étudiées par les théoriciens des Codes. En effet, ces propriétés sont étroitement liées aux propriétés des Codes cycliques. Plus précisemment, le degré d'une fonction détermine son appartenance à l'un ou l'autre des Codes de Reed et Muller, Codes de référence dans la théorie.
Il s'agit là d'un des thèmes de recherche important du projet. Le travail se poursuit surtout dans l'optique cryptographique. On veut étudier et construire des classes de fonctions qui augmentent la potentialité des systèmes ou leur résistance aux différentes cryptanalyses connues.
Une fonction est de haute non-linéarité lorsqu'elle se
situe à grande distance de l'espace des fonctions
affines de
variables. Cela signifie qu'elle définit un
translaté de l'espace
de poids de Hamming élevé.
La notion de fonction courbe, introduite en 1975,
désigne la non-linéarité maximum des fonctions booléennes,
lorsque est un nombre pair. Ce maximum est inconnu
lorsque
est impair. La classification des fonctions
courbes et la détermination de la non linéarité en dimension
impaire, sont des problèmes cruciaux, réputés très difficiles.
Une partie de l'étude demandée par la DRET (voir §
) se situe dans ce contexte.
C. Fontaine mène une étude exploratoire de la propriété de non linéarité, s'appuyant sur un corpus de fonctions ayant une représentation courte. Ce corpus, algébriquement très structuré, est aisément manipulable. Les premiers résultats montrent surtout une bonne distribution des éléments du corpus dans l'ensemble des fonctions booléennes. Ces résultats font l'objet d'un article soumis pour publication [53]. C. Fontaine a exposé ses résultats dans plusieurs séminaires, comme par exemple au SCSSI et à l'école d'hiver de Mölle (Suède) [35].
C. Carlet a introduit plusieurs constructions de fonctions sans corrélation definies sur des corps de Galois et des anneaux de Galois généraux de caractéristiques paires (EUROCRYPT'97 [29]). Ces nouvelles constructions établissent un lien nouveau avec la notion de fonction courbe. Il a caractérisé, en collaboration avec Philippe Guillot, les fonctions courbes en termes de géométries discrètes [8]. Plus récemment, il a obtenu, toujours avec Philippe Guillot, une caractérisation univoque de ces fonctions qui apporte un nouvel outil pour leur étude, dans la perspective, sans doute lointaine, de leur classification [9].
La cryptanalyse linéaire et la cryptanalyse différentielle sont les principales attaques connues des systèmes de chiffrement à clé secrète. Dans les systèmes de type DES, on envisage actuellement de remplacer la fonction itérée par une permutation sur un corps fini d'ordre élevé. L'étude des fonctions résistantes aux cryptanalyses linéaire et différentielle est donc un sujet de recherche important dans lequel plusieurs chercheurs du projet se sont investis.
Au plan théorique, C. Carlet, P. Charpin et V. Zinoviev on
mené une étude fondamentale sur ces fonctions, mettant en
évidence les liens avec la classification des Codes cycliques de
grande dimension . Ceci permet d'utiliser la ``boite à outil''
des Codes cycliques dans ce contexte [51]. Ce travail a fait l'objet de
plusieurs conférences [26,27], en particulier au Workshop IEEE
de théorie de l'information, session ``Coding and Cryptography''.
Une étude complémentaire est menée avec A. Tietäväinen (cf.
§).
Les chiffrements de Feistel, famille dont fait partie le DES,
sont des systèmes de chiffrement itératifs opérant sur des blocs
de message de bits (on choisit généralement
égal à 32 ou 64) qui sont construits sur la base
d'une permutation
de
. A.
Canteaut a récemment établi un critère permettant d'assurer qu'un
chiffrement de Feistel résiste à la cryptanalyse
différentielle [25,24]. Ce critère ne dépend que de la
permutation
utilisée et ne nécessite aucune
hypothèse supplémentaire, contrairement à un résultat précédent
de Nyberg et Knudsen qui était valide uniquement si l'on
supposait que la valeur des clefs utilisées n'avait aucune
influence sur le comportement statistique de l'algorithme.
Précisemment, elle a montré que la résistance à la cryptanalyse
différentielle d'un chiffrement de Feistel utilisant une
permutation
de
dépend
uniquement du nombre de solutions
de l'équation
pour
et
non nuls
dans
. Lorsque chacune de ces équations a au
plus
solutions, la fonction
est dite
différentiellement
-uniforme et la complexité de la
cryptanalyse différentielle du système est une fonction en
.
Les fonctions t-résilientes forment une classe de fonctions
booléennes très utilisées en cryptographie, en particulier pour
l'assemblage des sorties de registres à décalage pour le
chiffrement par flux. Elles interviennent également dans la
conception de nombreuses primitives conventionnelles telles les
fonctions de hachage. P. Camion et A. Canteaut ont récemment
établi plusieurs caractérisations générales de ces fonctions en
exploitant certaines propriétés de leur transformée de Fourier et
leur lien avec les Codes correcteurs [41]. Ces travaux leur ont permis de
construire de nouvelles classes de fonctions résilientes
particulièrement bien adaptées aux applications cryptographiques.
La mise à jour, par ce biais, de nouvelles propriétés algébriques
des fonctions résilientes et sans corrélation a également conduit
à la définition d'un nouveau critère de sécurité pour les
primitives cryptographiques conventionnelles.