Les Fonctions Courbes

 



Soit X un ensemble fini. Une application booléenne sur X est une application de X dans F2 = {0,1} , le corps à deux éléments. L'ensemble des antécédents de 1 par l'application booléenne f s'appelle le support de f. L'ensemble des applications booléennes est muni d'une métrique : la distance de Hamming. La distance entre f et g est égale au cardinal du support de f + g.

Lorsque X est un F2 espace vectoriel, disons de dimension m, l'ensemble des applications booléennes s'identifie à l'algèbre des polynômes de m variables F2[x,y, ...], réduite modulo x2-x, y2-y, ... On peut parler du degré d'une application et, en particulier, les fonctions affines forment un espace de dimension m + 1; C'est le code de Reed-Muller du premier ordre dont on connaît les paramètres classiques : poids minimum, distribution de poids, groupe d'automorphismes. Si m est pair le rayon de recouvrement est parfaitement déterminé et curieusement, lorsque m est impair, on sait peu de choses !

Le degré de non-linéarite d'une application f, noté d( f ) , est égal à la distance de f au code de Reed-Muller du premier ordre. La valeur maximale du degré de non-linéarité est égale au rayon de recouvrement du code de Reed-Muller du premier ordre. Les applications de degré de non-linearité maximale sont dites courbes; Elles sont recherchées pour des applications cryptographiques. Combien y-a-t-il de fonctions courbes ? Quelle est la non-linéarité d'une fonction courbe ? La théorie des codes ne donne pas encore de réponse à ces questions. Le but de mon exposé est de présenter trois nouvelles pistes dans le langage des fonctions booléennes, des graphes et des mots infinis.