Séminaire de Cryptographie

Accueil     Présentation     Archives

Sihem Mesnager


Sur le rayon de recouvrement des codes de Reed-Muller binaires

Soit X un alphabet fini (le plus souvent un corps, et en pratique le corps à deux éléments). Le rayon de recouvrement d'un code sur X (un sous-ensemble de X^n muni de la métrique de Hamming) est le plus petit entier r tel que la réunion de toutes les boules de rayon r centrées en les éléments de C recouvre X^n tout entier. En d'autres termes, le rayon de recouvrement mesure la distance maximale entre le code et les vecteurs de l'espace. Il est relié ( par l'inégalité de Hamming ) à la distance minimale d_min du code et il permet de mesurer le maximum d'erreurs dans le contexte du décodage par le maximum de vraisemblance. Les codes de Reed-Muller sont parmi les plus anciens et les plus connus des codes linéaires. Un de leurs principaux avantages est la relative simplicité à mettre en place les mécanismes de décodage. La détermination de leur rayon de recouvrement est un problème ouvert. A ce jour, il existe très peu de résultats exacts concernant le rayon de recouvrement de ces codes et on ne dispose essentiellement que de bornes inférieures et supérieures qui semblent très éloignées des valeurs exactes.

La connaissance d'une bonne borne supérieure sur leur rayon de recouvrement constituerait un apport a la fois théorique et pratique ( en particulier, pour l'analyse de la complexité des algorithmes de décodage) en théorie des codes. La correspondance entre les codes de Reed-Muller binaires et les fonctions booléennes fait que le rayon de recouvrement a également une importance en cryptographie symétrique. En effet, le rayon de recouvrement d'ordre d coïncide avec la non-linéarité maximale d'ordre d des fonctions booléennes, notion généralisant la non-linéarité d'ordre 1 qui est un des paramètres importants en cryptographie symétrique permettant de quantifier le niveau de résistance aux attaques linéaires des schémas de chiffrement implémentant une fonction booléenne. La non-linéarité d'ordre d est ainsi un paramètre qui permet de quantifier le niveau de résistance des cryptosystèmes à des attaques généralisant l'attaque linéaire, en particulier quadratiques ou plus généralement de degré borné. Dans le cadre d'un chiffrements par flot, la non-linéarité d'ordre d pourrait être amené à jouer également un rôle pour les registres linéaires filtres. En effet, les attaques algébriques ont montré comment l'existence de relations de bas degré entre les bits de la clé et les sorties du registre pouvait être exploitée pour retrouver la clé a partir de la résolution d'un système algébrique impliquant la fonction booléenne f du registre. Une extension naturelle pourrait être de chercher une fonction g de bas degré approximant la fonction booléenne f du registre puis de retrouver la clé en utilisant g à la place de f dans ce système algébrique. La non-linéarité d'ordre d permettrait alors d'estimer la difficulté de l'étape consistant à décoder l'observation produite par le registre filtre par f pour trouver celle produite par le registre filtre par g.

Claude Carlet et moi-même, avons etabli une borne superieure sur le rayon de recouvrement de ces codes ameliorant sensiblement le meilleur resultat connu a ce jour (datant de 1992). Nous reussissons a obtenir cette borne superieure en etablissant des bornes inferieures sur les sommes de caracteres des fonctions booleennes elements d'un code de Reed-Muller, faisant intervenir les elements de son dual, puis en utilisant les caractarisations, donnees par Kasami (1970) et Tokura (1976), des mots des codes de Reed-Muller binaires dont les poids de Hamming sont inferieurs a 2.5d_{min} ou d_{min} est la distance minimale du code du Reed-Muller.