• Aucun résultat trouvé

Avec plusieurs constantes de tour

3.4 Crit`ere de conception sur la couche lin´eaire et les constantes de tour 38

3.4.2 Avec plusieurs constantes de tour

Jusqu’`a maintenant, nous avons consid´er´e un seul ´el´ement c (c’est-`a-dire 2 constantes de tour puisque c’est la diff´erence entre les constantes de tour qui est `a prendre en compte pour les attaques par invariant). Il est donc naturel de se demander ce qui se produit lorsque l’on consid`ere un nombre arbitraire de constantes, c’est-`a-dire un nombre arbitraire de tours dans la conception du chiffrement. Nous cherchons donc dans cette partie `a analyser la dimension possible de WL(D) lorsque D est un sous-ensemble de Fn

2 de taille arbitraire. Pour situer plus pr´ecis´ement l’int´erˆet de l’´etude qui va suivre, il est n´ecessaire de se rappeler que le cryptographe qui con¸coit un chiffrement cherche `a s’assurer que la dimension de l’espace de WL(D) est la plus grande possible, sachant que si celle-ci est ´egale `a la taille des blocs, alors il n’existe pas d’invariant `a la fois pour l’´etage lin´eaire et pour la couche de substitution, et cela quelque soit le choix (non-trivial) de la boˆıte-S. Il est donc n´ecessaire de garder en tˆete que le cas optimal pour le concepteur est celui o`u WL(D) = Fn

2.

Nous consid´erons donc que dans toute la suite D = {c1, . . . , ct}. La valeur de la dimension maximale de WL(D) s’av`ere ˆetre li´ee `a la forme canonique rationnelle de l’´etage lin´eaire (et au cardinal de D ´evidemment). Ainsi, il est n´ecessaire ici de faire un rappel d’alg`ebre lin´eaire.

Proposition 3.30 (Forme canonique rationnelle, facteurs invariants). [DF04, Page 476] SoitL une permutation lin´eaire sur Fn

2. Il existe une base de Fn2 dans laquelle la matrice deL est de la forme

     C(Qr) C(Qr−1) . .. C(Q1)     

o`u les Qi sont des polynˆomes tels que Qr|Qr−1| · · · |Q1. De plus, le polynˆome Q1 est ´egal au polynˆome minimal deL. Dans cette d´ecomposition, les Qi sont appel´es les facteurs invariants deL.

La forme canonique rationnelle est `a diff´erencier de la forme utilis´ee dans la preuve de la proposition 3.27 o`u l’on factorise en fonction des facteurs irr´eductibles du polynˆome minimal, ce qui est fondamentalement diff´erent de la forme cano-nique rationnelle.

Par exemple, la forme canonique rationnelle de la couche lin´eaire utilis´ee dans Prince est la suivante :

            C(Q8) 0 0 0 0 0 0 0 0 C(Q7) 0 0 0 0 0 0 0 0 C(Q6) 0 0 0 0 0 0 0 0 C(Q5) 0 0 0 0 0 0 0 0 C(Q4) 0 0 0 0 0 0 0 0 C(Q3) 0 0 0 0 0 0 0 0 C(Q2) 0 0 0 0 0 0 0 0 C(Q1)             avec Q1(X) = Q2(X) = MinL(X) = X20+ X18+ X16+ X14+ X12+ X8+ X6+ X4+ X2+ 1 Q3(X) = Q4(X) = X8+ X6+ X2+ 1 = (X + 1)4(X2+ X + 1)2 Q5(X) = Q6(X) = Q7(X) = Q8(X) = (X + 1)2.

Un de nos r´esultats principaux est que les facteurs invariants de la couche lin´eaire d´eterminent la dimension maximale de WL(c1, . . . , ct), au travers du th´eor`eme fondamental suivant.

Th´eor`eme 3.31. Soit Q1, . . . , Qr les facteurs invariants d’une permutation lin´eaireL sur Fn

2 ett ≤ r. Alors max c1,...,ct∈Fn 2 dim WL(c1, . . . , ct) = t X i=1 deg Qi.

Ce th´eor`eme implique la n´ecessit´e de prendre au moins r + 1 constantes de tour diff´erentes dans le chiffrement o`u r est le nombre de facteurs invariants de L afin de pouvoir engendrer tout l’espace et de se pr´emunir des attaques par invariant.

La preuve de ce th´eor`eme ´etant assez longue, nous la s´eparons en plusieurs lemmes. Tout d’abord, nous commen¸cons par repr´esenter L sous sa forme ca-nonique rationnelle d´efinie `a la proposition 3.30. On note alors V1, . . . , Vr les sous-espaces invariants par L qui sont en somme directe, tels que Fn

2 =Lr i=1Vi

et que l’application lin´eaire induite par L restreinte `a chaque Vi (application not´ee L|Vi) pour i allant de 1 `a r soit repr´esent´ee par la matrice compagnon C(Qi) o`u les Qi sont les facteurs invariants de L. De plus, pour tout 1 ≤ i ≤ r, on d´efinit eVi comme un vecteur de Vi tel que Vi est engendr´e par eVi et l’action de L, i.e. Vi = hLk(eVi), 0 ≤ k < deg Qii, et ordL|Vi(eVi) = Qi (l’existence de tels ´el´ements est assur´ee par la proposition 3.26).

Dans un premier temps, nous pouvons prouver le lemme suivant. Lemme 3.32. Soit1 ≤ t ≤ r, L une application lin´eaire inversible, alors

max c1,...,ct∈Fn 2 dim WL(c1, . . . , ct) ≥ t X i=1 deg Qi

D´emonstration. En choisissant c1 = eV1, on obtient que WL(c1) = V1. Par d´efinition de V1, on a donc dim WL(c1) = deg Q1. Pour choisir c2, on s’int´eresse alors `a l’application L|V2⊕···⊕Vr. Celle-ci est de polynˆome minimal Q2par construc-tion, ce qui nous permet de choisir la constante c2= eV2 de mani`ere `a ce que WL(c1, c2) = V1⊕ V2. En it´erant ce processus, on construit pas `a pas un espace vectoriel WL(c1, . . . , ct) qui est ´egal `a Lt

i=1WL(ci) =Lt

i=1Vi et qui est donc de dimensionPt

i=1deg Qi.

Cependant, il nous reste `a prouver l’´egalit´e, c’est-`a-dire l’in´egalit´e dans l’autre sens ; pour cela nous utilisons les deux lemmes suivants.

Lemme 3.33. Soit c appartenant `a Fn2 =Lr

i=1Vi d´ecrit, grˆace `a la somme directe comme c =P

i∈Iui avec I ⊂ {1, . . . , r} et ui∈ Vi\{0}. Alors WL(c) ⊆ WL(¯c)

o`uc =¯ P

i∈IeVi.

D´emonstration. Soit v un vecteur de WL(c). Alors v =X j∈N αjLj(c) =X j∈N αjLj(X i∈I ui) =X j∈N X i∈I αjLj(ui) =X j∈N X i∈I αjLj(X k∈N βkLk(eVi)) =X j∈N X i∈I X k∈N αjβkLj+k(eVi) =X j∈N X k∈N αjβkLj+k(X i∈I eVi) =X j∈N X k∈N αjβkLj+k(¯c) ∈ WL(¯c).

En appliquant le mˆeme raisonnement `a v = Pt k=1

P

j∈NαjLj(ck) quand on a plusieurs constantes, on obtient le mˆeme r´esultat, c’est-`a-dire que pour tout ensemble de vecteurs c1, . . . , ctde Fn

2, on a WL(c1, . . . , ct) ⊆ WL( ¯c1, . . . , ¯ct). Comme il s’agit de prouver l’in´egalit´e dans l’autre sens, nous pouvons supposer, sans perte de g´en´eralit´e que ck=Pr

i=1λk,ieVi pour tout k allant de 1 `a t avec λk,i ∈ F2. De plus, `a chaque t-uplet, avec t ≤ r, (c1, . . . , ct) ∈ (Fn

2)t, on associe la matrice de taille t × r not´ee M(c1,...,ct) telle que [M(c1,...,ct)]k,i = λk,i pour tout i allant de 1 `a r et k allant de 1 `a t. Ceci nous permet de montrer le lemme suivant :

Lemme 3.34. Soit(c1, . . . , ct) un t-uplet d’´el´ements de Fn 2 tel que ck= r X i=1 λk,ieVi et soit M(c0 1,...,c0

t)n’importe quelle matrice obtenue par op´erations ´el´ementaires sur les colonnes de M(c1,...,ct). Alors pour (c0

1, . . . , c0 t) le t-uplet correspondant `a M(c0 1,...,c0 t), on a WL(c01, . . . , c0t) = WL(c1, . . . , ct)

D´emonstration. Pour une matrice binaire, une op´eration ´el´ementaire peut ˆetre : — soit un ´echange de deux colonnes ;

— soit une addition d’une colonne `a une autre.

Pour la premi`ere op´eration ´el´ementaire qui consiste `a ´echanger deux co-lonnes arbitraires index´ees par k1 < k2, cela revient `a consid´erer la matrice M(c1,...,c

k1,...,ck2,...,ct) et la matrice M(c1,...,ck2,...,ck1,...,ct). Par d´efinition mˆeme de WL(D), il est clair que

WL(c1, . . . , ck1, . . . , ck2, . . . , ct) = WL(c1, . . . , ck2, . . . , ck1, . . . , ct) . Il nous reste donc `a montrer que la propri´et´e est v´erifi´ee pour l’op´eration qui consiste `a additionner une colonne `a une autre. Comme

WL(c1, . . . , ct) =

t

X

k=1

WL(ck) , il nous suffit de montrer que pour tout ck1 et ck2 dans Fn

2, WL(ck1) + WL(ck2) = WL(ck1+ ck2) + WL(ck2). Soit u ∈ WL(ck1) + WL(ck2), alors u =X j∈NjLj(ck1) + βjLj(ck2)) =X j∈NjLj(ck1) + αjLj(ck2) + αjLj(ck2) + βjLj(ck2)) =X j∈NjLj(ck1+ ck2) + (αj+ βj)Lj(ck2)) ∈ WL(ck1+ ck2) + WL(ck2). L’inclusion r´eciproque se montre de la mˆeme mani`ere, ce qui conclut la preuve de ce lemme.

Grˆace `a ces trois lemmes, nous sommes finalement en mesure de prouver le th´eor`eme 3.31.

D´emonstration. (Th´eor`eme 3.31) Grˆace au lemme 3.32, on a d´ej`a l’in´egalit´e ≥. Il nous reste donc `a montrer l’in´egalit´e dans l’autre sens (≤). Soit c1, . . . , ct

t ´el´ements appartenant `a Fn

2, avec t ≤ r o`u r est le nombre de facteurs in-variants. D’apr`es le lemme 3.33, on a WL(c1, . . . , ct) ⊆ WL( ¯c1, . . . , ¯ct) pour

¯ ck=Pr

i=1λkieVi avec λki∈ F2.

On consid`ere alors la matrice binaire M( ¯c1,..., ¯ct)d´efinie comme pr´ec´edemment. En utilisant les op´erations ´el´ementaires sur les colonnes de cette matrice, on peut se ramener `a une matrice not´ee M( ˜c1,..., ˜ct)sous la forme ´echelonn´ee r´eduite. D’apr`es le lemme 3.34, on sait que

De plus, on a WL( ˜c1, . . . , ˜ct) = t X k=1 WL( ˜ck) .

Comme la matrice M( ˜c1,..., ˜ct) est sous sa forme ´echelonn´ee r´eduite, on a, pour tout 1 ≤ k ≤ t, ˜ck=Pr

i=1λ˜kieV

i, avec ˜λki= 0 pour tout k < i ce qui implique que pour tout k allant de 1 `a t, WL( ˜ck) = W|LVk⊕···⊕Vr( ˜ck).

Finalement, WL( ˜c1, . . . , ˜ct) = t X k=1 W|LVk⊕···⊕Vr( ˜ck) .

Comme le polynˆome minimal de l’application lin´eaire L|Vk⊕···⊕Vr vaut Qk

pour tout k ≤ r, on obtient finalement que :

dim WL(c1, . . . , ct) ≤ dim WL( ¯c1, . . . , ¯ct) = dim

t X k=1 WL|Vk⊕···⊕Vr( ˜ck) ≤ t X k=1 deg Qk. 3.4.2.1 Exemples

Afin d’illustrer ce r´esultat, nous expliquons ce qui se passe sp´ecifiquement pour certains SPN dont les facteurs invariants sont relativement nombreux.

Prince. La couche lin´eaire du chiffrement Prince admet 8 facteurs invariants :

Q1(X) = Q2(X) = MinL(X)

= X20+ X18+ X16+ X14+ X12+ X8+ X6+ X4+ X2+ 1 Q3(X) = Q4(X) = X8+ X6+ X2+ 1 = (X + 1)4(X2+ X + 1)2 Q5(X) = Q6(X) = Q7(X) = Q8(X) = (X + 1)2

D’apr`es notre th´eor`eme fondamental (th´eor`eme 3.31), on sait donc que pour un ensemble D de cardinal 5, la dimension maximale que l’on peut avoir est 20 + 20 + 8 + 8 + 2 = 58, alors que l’on obtient une dimension 56 pour les constantes de tour choisies par les concepteurs. On constate ici que le choix des constantes de tour dans Prince n’est donc pas optimal, mais aussi que peu importe le choix de ces constantes, il n’est pas possible d’atteindre la dimension 64 avec le nombre de tours utilis´e dans ce chiffrement. Il faudrait en effet un ensemble de cardinal 8 pour cela.

Mantis et Midori-64. Pour ces chiffrements, la couche lin´eaire admet, elle, 16 facteurs invariants :

Q1(X) = · · · = Q8(X) = (X + 1)6 et Q9(X) = · · · = Q16(X) = (X + 1)2. D’apr`es l’ensemble D de cardinal 7 (respectivement 8) obtenu par le choix des constantes de tour fait par les concepteurs de Mantis7(respectivement Mantis8), on engendre un espace de dimension 42 (respectivement 48) ce qui est optimal : on ne peut pas faire mieux avec le mˆeme nombre de tours et la mˆeme couche lin´eaire. De plus, pour ces chiffrements, on sait qu’il faut au moins 16 ´el´ements dans D pour atteindre la dimension maximale 64 (c’est-`a-dire 17 constantes de tour) et ainsi couvrir tout l’espace.

Dans le cas de Midori, les constantes de tour ont ´et´e particuli`erement mal choisies, puisque celles-ci sont non-nulles uniquement sur les bits de poids faible, impliquant que l’espace WL(D) ne peut avoir une dimension plus grande que 16. Ce ph´enom`ene est la principale faiblesse de Midori au regard des attaques par invariant, et c’est donc ici un mauvais choix de constantes qui rend le chiffrement faible, puisque Mantis utilise la mˆeme couche lin´eaire que Midori.

Skinny. Le cas de Skinny est relativement simple : la couche lin´eaire est une matrice binaire de taille 16 et son polynˆome minimal est X16+ 1 = (X + 1)16. Dans ces conditions, si on regarde l’application de la matrice sur F64

2 , on peut assurer que Skinny admet 4 facteurs invariants tous ´egaux au polynˆome minimal. Ainsi, il est n´ecessaire d’avoir 4 ´el´ements dans l’espace D pour atteindre la dimension 64.

Afin d’avoir une explication plus visuelle, nous avons calcul´e la dimension maximale que l’on peut atteindre avec t constantes de tour pour les couches lin´eaires des chiffrements Skinny, Mantis et Midori. Ces r´esultats illustrant le th´eor`eme 3.31 sont d´ecrits `a la figure 3.4. On constate assez rapidement que les couches lin´eaires ont une grande influence sur ce comportement, puisque selon les applications lin´eaires utilis´ees, le nombre de tour n´ecessaires pour couvrir tout l’espace varie ´enorm´ement. Il est aussi important de remarquer que ce ph´enom`ene n’est en rien li´e aux crit`eres classiques employ´es pour choisir la couche lin´eaire.