Systèmes de chiffrement fondés sur les codes

Critères de sécurité généraux
pour les systèmes de chiffrement itératifs par blocs


Dans un algorithme de chiffrement itératif par blocs, le chiffré d'un bloc de message est obtenu en itérant une permutation paramétrée par une clef secrète dont la valeur est modifiée à chaque tour. Les clefs utilisées successivement dans les différentes itérations sont en général produites à partir d'une unique clef-maître. De par sa rapidité et sa simplicité, ce principe est employé dans tous les algorithmes de chiffrement à clef secrète utilisés actuellement (DES, IDEA, SAFER...). Tous ces systèmes sont cependant sujets à la cryptanalyse différentielle, introduite en 1991 par Biham et Shamir, ainsi qu'à la cryptanalyse linéaire présentée par Matsui en 1993.

Résistance à la cryptanalyse différentielle

La cryptanalyse différentielle consiste à chiffrer deux messages clairs dont la différence pour une certaine loi de groupe (généralement le OU exclusif bit-à-bit) est fixée, et à estimer la valeur de la différence de leurs images en sortie de l'avant-dernière itération de l'algorithme de chiffrement. Si, pour une différence fixée des textes clairs, la distribution de probabilités de la différence des sorties de l'avant-dernier tour s'éloigne de la distribution uniforme, il est possible de déterminer la valeur de la clef secrète utilisée à la dernière itération dès que l'on connaît suffisamment de couples clairs/chiffrés.

Un chiffrement de Feistel, tel le DES, opérant sur des blocs de message de 2m bits (on choisit généralement m égal à 32 ou 64), est construit sur la base d'une permutation f de GF(2^m). Sa résistance à la cryptanalyse différentielle dépend alors du nombre de solutions x de l'équation f(x+a) +f(x) = b pour a et b non nuls. Lorsque toutes les équations de ce type ont au plus d solutions, la fonction f est dite différentiellement d-uniforme et la complexité de la cryptanalyse différentielle du système est une fonction en 1/(d^2).

Un premier axe de recherche est donc de trouver des fonctions f optimales en ce sens, i.e. des permutations différentiellement 2-uniformes, également appelées permutations presque parfaitement non-linéaires (APN). Ces permutations correspondent également à des codes linéaires binaires dont la distance minimale est au moins 5. Jusqu'ici, très peu de familles infinies de permutations APN sont connues et la plupart d'entre elles sont extrêmement vulnérables à d'autres méthodes de cryptanalyse (cryptanalyse linéaire ou cryptanalyse différentielle d'ordre supérieur).

Un second problème vient du fait que l'on ne connaît aucune permutation de GF(2^m) qui soit APN lorsque m est pair. Or ce cas est le plus fréquent en cryptographie car on chiffre généralement des blocs de message dont le nombre de bits est une puissance de 2. Si, comme le suggèrent les explorations numériques, de telles permutations n'existent pas dans ce cas, les meilleures permutations au regard de la cryptanalyse différentielle seraient celles qui sont différentiellement 4-uniformes. Par une étude poussée de la cryptanalyse différentielle des chiffrements de Feistel (et notamment de l'hypothèse de l'équivalence stochastique), nous avons récemment construit plusieurs familles infinies de permutations différentiellement 4-uniformes sur GF(2^m) pour n pair.

Résistance à la cryptanalyse linéaire

Pour résister à la cryptanalyse linéaire les fonctions utilisées dans un système de chiffrement à clef secrète doivent être aussi éloignées que possible des fonctions affines. Ainsi une permutation de GF(2^m) offre la meilleure résistance possible à la cryptanalyse linéaire si sa non-linéarité est maximale. Dans le cas où m est impair, la valeur de la plus grande non-linéarité possible est connue ; les fonctions qui l'atteignent sont appelées fonctions presque courbes (AB).

Cette propriété apparaît également dans l'étude des suites de longueur maximale ( m-sequences). En effet les exposants s qui sont tels que la permutation x -> x^s est de non-linéarité maximale coïncident avec les valeurs de s pour lesquelles la corrélation croisée entre une suite de longueur maximale et sa décimation par s est minimale.

C. Carlet, P. Charpin et V. Zinoviev ont récemment montré que la non-linéarité d'une fonction f de GF(2^m) dans GF(2^m) est donnée par la distance minimale du dual d'un code linéaire binaire de longueur (2^m-1). En particulier quand f est la fonction puissance x -> x^s, ce code est le code cyclique à deux zéros ayant pour ensemble de définition {1,s}. On sait également que, pour m impair, toute fonction AB sur GF(2^m) est APN, mais la réciproque est fausse. Dans un travail commun avec Pascale Charpin et Hans Dobbertin, nous avons montré que cette condition devient nécessaire et suffisante si l'on y ajoute une condition sur la divisibilité des poids du dual du code associé à la fonction AB. En combinant cette nouvelle caractérisation des fonctions AB et le théorème de McEliece sur la divisibilité des codes cycliques, nous avons notamment démontré une conjecture énoncée par Welch en 1968 stipulant que, pour m=2t+1 et s=2^t+3, la fonction x -> x^s est AB sur GF(2^m).


Publications sur le sujet


Retour à la page principale.
Anne Canteaut
septembre 1998