• Aucun résultat trouvé

Les fonctions booléennes

Propriétés des boîtes-S

7.1 Les fonctions booléennes

7.1.1 Définition

Définition 7.2. On appelle fonction booléenne à n variables toute application f de Fn

2 dans F2. L’ensemble des fonctions booléennes à n variables est noté Bn. Comme il existe une bijection entre l’espace vectoriel Fn

2 et le corps F2n, les vecteurs de Fn

2 peuvent être identifiés aux les éléments du corps fini F2n.

Définition 7.3. Soit f une fonction booléenne à n variables. On appelle support de f l’ensemble des vecteurs de Fn

2 qui ont une image non nulle, c’est-à-dire supp(f ) ={x|f(x) 6= 0}.

Définition 7.4. Soit f une fonction booléenne, le poids de Hamming de f est égal au cardinal du support de f :

wt(f ) = #supp(x).

Une fonction booléenne peut être définie par sa table de vérité : la table de vérité d’une fonction booléenne f ∈ Bn est l’ensemble des couples (x, f(x)) où x parcourt Fn

2.

Exemple 7.1. Soit f une fonction booléenne à trois variables définie par sa table de vé-rité :

x (000) (001) (010) (011) (100) (101) (110) (111)

f (x) 0 1 0 0 0 1 1 0

Le support de f est supp(f) =(001), (101), (110) et le poids de f est wt(f) = 3. Définition 7.5. Une fonction booléenne est dite équilibrée si son image possède autant de 0 que de 1. C’est-à-dire f ∈ Bn est équilibrée si et seulement si

wt(f ) = 2n−1.

Définition 7.6. Soit f une fonction booléenne à n variables. La transformée de Mo-bius de f est définie par

f : Fn

2 → F2

u 7→ Lvuf (v) où v  u signifie vi ≤ ui ∀i ∈ {1..n}.

Exemple 7.2. Soit f la fonction définie dans l’exemple 7.1. La transformée de Mobius f de f satisfait

f(1, 0, 1) = f (0, 0, 0)⊕ f(0, 0, 1) ⊕ f(1, 0, 0) ⊕ f(1, 0, 1) = 0.

A partir de la définition de la transformée de Mobius on peut calculer la forme algé-brique normale d’une fonction booléenne.

Définition 7.7. Soit f une fonction booléenne à n variables. La forme algébrique normale(ANF1) de f est définie par

M u=(u1,..un) f(u) xu1 1 ...xun n , où ui ∈ {0, 1} et u parcourt Fn 2.

Exemple 7.3. Soit f la fonction définie dans l’exemple 7.1. La forme algébrique normale de f est :

f (x1, x2, x3) = x3⊕ x2x3⊕ x1x2⊕ x1x2x3.

À partir de la forme algébrique normale d’une fonction booléenne on peut définir le degré algébrique de cette fonction.

Définition 7.8. Le degré algébrique d’une fonction booléenne f à n variables est le degré de sa forme algébrique normale. C’est-à-dire si f est définie par

M u=(u1,··· ,un) f(u) xu1 1 ...xun n , alors deg(f ) = max u∈Fn 2 {wt(u)|f(u)6= 0}.

On dit que f est affine si deg(f) = 1 et que f est constante si deg(f) = 0.

7.1.2 Spectre de Walsh

En cryptographie nous avons besoin de calculer la distance des fonctions booléennes aux fonctions affines. Pour cela nous étudions la transformée de Walsh de la somme de f avec une fonction affine.

Définition 7.9. Soit u ∈ F2n, nous notons par ϕu la fonction booléenne affine définie par

ϕu : F2n → F2

x 7→ Tr(ux)

Nous définissons alors la Transformée de Walsh d’une fonction booléenne f comme la corrélation de (−1)f avec la fonction signe d’une fonction linéaire. Nous parlerons plus commodément de corrélation centrée de f avec une fonction linéaire.

Définition 7.10. Soit f ∈ Bn une fonction booléenne. Le coefficient de Walsh de f au point u ∈ Fn

2 est noté F(f + ϕu). Il correspond à la quantité F(f + ϕu) = X x∈Fn 2 (−1)f (x)+u·x L’ensemble {F(f + ϕu), u∈ Fn2}, est appelé spectre de Walsh de la fonction f.

144 7.1 Les fonctions booléennes La non-linéarité d’une fonction booléenne mesure la distance entre la fonction boo-léenne et l’ensemble des fonctions affines.

Définition 7.11. Soit f ∈ Bn une fonction booléenne. La non-linéarité de f notée N L(f) est la distance de Hamming entre la fonction f et l’ensemble des fonctions affines. Elle est définie par la valeur

N L(f) = 2n−11

2L(f) où L(f) = max

u∈F2n|F(f + ϕu)| .

La plus petite valeur pour L(f) est 2n2. Cette valeur est atteinte par les fonctions dites courbes. Les fonctions courbes font partie d’une famille plus grande, appelée fonctions plateaux.

Définition 7.12. [ZZ99][CCCF00] Soit f ∈ Bnune fonction booléenne. La fonction f est dite plateau si ses coefficients de Walsh prennent au plus trois valeurs, {0, ±L(f)}. On a alors L(f) = 2s avec s ≥ n/2.

Les fonctions courbes sont les fonctions plateaux qui vérifient s = n/2. Les fonctions courbes existent si et seulement si n est pair. Dans ce cas particulier ses coefficients de Walsh ne prennent que deux valeurs ±2n2.

De plus, f est dite plateau optimal si s = (n + 1)/2 pour n impair ou si s = (n + 2)/2 pour n pair.

Dans le contexte des fonctions booléennes, la relation de Parseval est la suivante X

a∈F2n

F2(f + ϕa) = 22n.

En appliquant cette relation il est facile de voir que le s défini dans la définition précédente ne peut pas être inférieur à n

2.

Avant de donner un exemple de fonction plateau. Nous donnons deux formules simples que nous utilisons à maintes reprises dans ce chapitre et dans le suivant.

Lemme 7.1. Soient t et n deux entiers positifs. Nous avons

pgcd(2t− 1, 2n− 1) = 2pgcd(t,n)− 1 (7.1)

A partir de l’égalité précédente on peut montrer [McE87][lemme 11.1] : pgcd(2t+ 1, 2n− 1) =



1, si pgcd(t, n) = pgcd(2t, n)

2pgcd(t,n)+ 1, si 2pgcd(t, n) = pgcd(2t, n). (7.2) Exemple 7.4. Soit f ∈ Bn la fonction booléenne définie par f(x) = Tr(x2t+1) et soit k = pgcd(2t, n). A partir de l’égalité (7.2), on peut calculer la transformée de Walsh des fonctions f + ϕu pour u ∈ F2n.

F(f + ϕu) nombre de u

0 2n− 2n−k

2(n+k)/2 2n−k−1+ 2(n−k−2)/2 −2(n+k)/2 2n−k−1− 2(n−k−2)/2.

Il est aussi intéressant d’étudier les moments d’ordre supérieur de la transformée de Walsh d’une fonction booléenne. Nous donnons ici la définition du moment d’ordre quatre normalisé.

Définition 7.13. Le moment d’ordre quatre normalisé d’une fonction booléenne f ∈ Bn est défini par :

ν(f ) = 2−n X u∈F2n

F4(f + ϕu) .

Le moment d’ordre quatre normalisé de f est relié au moment d’ordre deux de la transformée de Walsh des dérivées de la fonction f.

Définition 7.14. Soit f : F2n → F2 une fonction booléenne. La dérivée au point a de f est définie par

Daf (x) = f (x) + f (x + a). Remarque 7.1. On vérifie facilement que

ν(f ) = X

a∈F2n

F2(Daf ). (7.3)

C’est sous cette forme que le moment d’ordre quatre normalisé a été introduit dans [ZZ95] comme un critère cryptographique sous le nom de "sum of square indicator". Cette quan-tité a été particulièrement étudiée dans [CCCF00, CCCF01, ZZ99].

Le théorème suivant donne une borne sur la valeur du moment d’ordre quatre norma-lisé. La preuve de ce théorème se trouve dans [CCCF00] et [ZZ99].

Théorème 7.1. Toute fonction booléenne f ∈ Bn vérifie ν(f) ≤ 2nL2(f ). L’égalité est vraie si et seulement si f est plateau. Dans ce cas on a

L(f) = 2s et ν(f) = 2n+2s, pour n

2 ≤ s ≤ n. (7.4)