Sous-sections

Primitives du chiffrement symétrique



Participants : Anne Canteaut, Claude Carlet, Pascale Charpin, Éric Filiol, Caroline Fontaine.

Dans ce thème, nous voulons étudier et construire des classes de fonctions, polynômes ou séquences qui augmentent la potentialité des systèmes de codage.

Les fonctions booléennes sont utilisées dans de nombreux systèmes de codage. Ils interviennent par exemple dans les protocoles de chiffrement ou dans la définition de séquences fortement autocorrélées. Leurs propriétés ont surtout été étudiées par les théoriciens des codes, car elles sont étroitement liées aux propriétés des codes cycliques. Il s'agit là d'un des thèmes de recherche importants du projet, qui contribue à sa reconnaissance dans la communauté internationale en théorie des codes et en cryptologie. Le travail se poursuit depuis plusieurs années tant sur le plan strictement théorique que pour répondre à la demande en cryptologie. Cette démarche est précisément décrite par A. Canteaut, dans son exposé pour la 27e École de printemps d'informatique théorique [37].

Haute non-linéarité.

Une fonction est de haute non-linéarité lorsqu'elle se situe à grande distance de l'espace R(1, m) des fonctions affines de m variables. Cela signifie qu'elle définit un translaté de l'espace R(1, m) 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 m est un nombre pair. Ce maximum est inconnu lorsque m 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.

C. Fontaine a mené une étude exploratoire de la propriété de non linéarité, s'appuyant sur un corpus de fonctions ayant une représentation courte, correspondant à des mots idempotents. Ce corpus, algébriquement très structuré, est aisément manipulable. Les premiers résultats ont montré une bonne distribution des éléments du corpus dans l'ensemble des fonctions booléennes.

L'exploration du corpus des idempotents a permis d'obtenir des fonctions à m variables présentant la meilleure non-linéarité connue pour m $ \leq$ 15. Certaines possèdent un spectre de Fourier jusqu'alors inconnu, et donnent ainsi de nouvelles distributions des poids pour des translatés du code R(1, m), dont le poids minimum est maximal. Ces nouveaux spectres correspondent à des fonctions équilibrées, i.e. dont la sortie est équidistribuée, qui sont de degré élevé. Elles permettent de construire des fonctions présentant de plus un ordre de résilience élevé, qui peuvent être directement utilisées dans certains générateurs pseudo-aléatoires dédiés au chiffrement à flot. Ces résultats ont été présentés à deux conférences internationales dont EUROCRYPT'98 (avec É. Filiol [6]). Un article vient de paraître dans IEEE Transactions on Information Theory [27]. C. Fontaine a soutenu sa thèse en Novembre 98 [11].


C. Carlet poursuit un ensemble de travaux sur les fonctions courbes [40,43]. Il a obtenu avec Ph. Guillot, une caractérisation univoque des fonctions courbes binaires, la forme numérique normale (NNF). Celle-ci permet d'exprimer par des formules explicites le poids et le spectre de Fourier d'une fonction, de caractériser directement les fonctions courbes, de déduire de nouveaux invariants affines sur les fonctions booléennes et d'obtenir des propriétés de divisibilité des poids des fonctions. Ce travail est présenté au colloque AAECC'13 [39].

Les différentes caractérisations existantes des fonctions courbes binaires mènent à des définitions qui, sur l'alphabet Z/qZ, désignent des notions différentes ; on distingue en particulier la famille des fonctions courbes et la sous-famille des fonctions parfaitement nonlinéaires. C. Carlet et S. Dubuc ont montré qu'une seule des constructions connues de fonctions courbes définit des fonctions parfaitement non-linéaires. Ils ont introduit une nouvelle construction qui est la seule connue à ce jour pour des longueurs impaires. Ces résultats sont rassemblés dans un article présenté à Fifth International Conference on Finite Fields and Applications [38].

Critère de propagation.

La notion de diffusion [*] signifie, dans le cas du chiffrement par blocs par exemple, qu'une faible modification en entrée est diffusée dans l'ensemble du bloc de sortie. C'est un critère de fiabilité en cryptographie, dit critère de propagation pour les fonctions.

Le travail de C. Carlet sur les fonctions hypercourbes se poursuit maintenant dans l'étude et la construction des fonctions qui satisfont le plus généralement les critères de propagation (caractère PC($ \ell$)). Ses premiers résultats constituent un article invité dans un volume de Theoretical Computer Science dédié à la cryptographie [25].

Fonctions presque courbes, presque parfaitement non-linéaires, et chiffrement à clés secrètes.

La cryptanalyse linéaire et la cryptanalyse différentielle sont les principales attaques connues des systèmes de chiffrement à clé secrète. Actuellement l'algorithme DES répond à ces impératifs puisqu'aucune technique de cryptanalyse n'est sensiblement plus efficace que l'énumération de toutes les clefs possibles. Toutefois, comme la clef secrète ne comporte que 56 bits, le DES est aujourd'hui extrêmement vulnérable à une recherche exhaustive de la clef. C'est pourquoi un nouvel algorithme de type DES est en cours de standardisation. Pour cela il est nécessaire de remplacer la fonction itérée dans le DES (spécifiée par les boîtes S) par une permutation définie sur un corps fini d'ordre plus élevé ; cette permutation doit de plus vérifier certains critères afin que le système de chiffrement résiste aux attaques classiques.

Dans ce cadre, on utilise des fonctions presque parfaitement non linéaires et presque courbes car elles assurent une résistance optimale aux cryptanalyses différentielle et linéaire. Ces propriétés apparaissent également dans l'étude des suites de longueur maximale puisque les fonctions puissances (i.e. x $ \mapsto$ xd) presque courbes coïncident avec des couples de suites de longueur maximale dont la corrélation croisée est optimale.


C. Carlet, P. Charpin et V. Zinoviev ont 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 ``boîte à outils'' des codes cycliques dans ce contexte. Ce travail a fait l'objet de plusieurs conférences et un article est paru dans Designs, Codes and Cryptography [23]. Une étude complémentaire est menée avec A. Tietäväinen (cf. 4.1.6).


Il est montré dans [23] que les fonctions presque courbes correspondent à des codes linéaires dont la distribution des poids est optimale. Dans le cas des fonctions puissances, ces codes sont en fait les duaux de certains codes cycliques à deux zéros. Grâce à cette analogie, A. Canteaut, P. Charpin et H. Dobbertin ont prouvé que les fonctions presque courbes sont entièrement caractérisées par la distance duale et la divisibilité des poids du code qui leur est associée. Ceci leur a notamment permis de démontrer une conjecture formulée par Welch en 1968, selon laquelle la fonction x $ \mapsto$ x2d, où d = (m - 1)/2 + 3, est presque courbe sur  $ \bf F_{2^m}^{}$ quand m est impair. Ce résultat est l'objet d'une note à l'académie des sciences de Paris [21] et sera publié dans IEEE Transactions on Information Theory [20].

Ce travail a été présenté à Fast Software Encryption 99 [35]. Un article présentant l'ensemble des résultats obtenus va paraître dans Siam Journal of Discrete Mathematics [22].

Fonctions équilibrées.

Ce critère signifie qu'une fonction présente en sortie autant de ``1'' que de ``0''. É. Filiol étudie les propriétés combinatoires des fonctions booléennes équilibrées. Il s'agit, à partir de la forme algébrique normale d'une fonction booléenne, de détecter la classe de poids (sous-équilibrée, suréquilibrée ou équilibrée) à laquelle elle appartient. Les premiers résultats ont été publiés dans les actes de la conférence Cryptography and Coding [44].

Fonctions t-résilientes.

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 flot. Elles interviennent également dans la conception de nombreuses primitives conventionnelles telles les fonctions de hachage. P. Camion et A. Canteaut ont é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. 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 [19].