• Aucun résultat trouvé

APPLICATION ` A LA PERMUTATION DE FINALISATION DE HAMSI-256 73 de chaˆınage h i suivante :

Dans le document The DART-Europe E-theses Portal (Page 90-94)

Distingueurs ` a somme nulle

3.7. APPLICATION ` A LA PERMUTATION DE FINALISATION DE HAMSI-256 73 de chaˆınage h i suivante :

h:F322 ×F2562 → F2562 (mi, hi1) 7→ hi.

Nous allons pr´esenter les ´etapes les plus importantes du calcul.

Expansion de message : Un code lin´eaire sur F4 est utilis´e afin d’´etendre un bloc de message de 32 bits `a une valeur de 256 bits, (m0, . . . , m7), o`u chaque mi est un mot de 32 bits.

Concat´enation : La valeur de chaˆınage (c0, . . . , c7) est concat´en´ee au message ´etendu (m0, . . . , m7) afin de former un ´etat de 512 bitss= (s0, . . . , s15), repr´esent´e par une matrice 4×4. L’´etats, ainsi que la mani`ere dont les mots de message et de la valeur de chaˆınage sont r´epartis danss, peut ˆetre visualis´e `a la figure 3.5.

s0

Figure3.5 – Concat´enation du message et de la valeur de chaˆınage pour Hamsi-256 Une permutation non-lin´eairePdansF5122 est ensuite appliqu´ee `a l’´etat concat´en´e. Elle est constitu´ee d’une fonction de tour R qui est it´er´ee trois fois. La permutationR est compos´ee de trois op´erations diff´erentes. D’abord, des constantes sont ajout´ees `a l’´etat. Ensuite, une transformation non-lin´eaire compos´ee des applications parall`eles d’une boˆıte-S 4×4, S, est appliqu´ee `a l’´etat. `A la fin, les bits de l’´etat sont m´elang´es, grˆace `a une fonction lin´eaireL.

Ajout des constantes : Des constantesai ∈F322 , 0≤i <16, sont ajout´ees `a l’´etat avant l’application de la couche non-lin´eaire, `a l’aide d’une op´eration XOR. De plus, un compteur, c, est utilis´e pour distinguer les tours entre eux. Ces deux op´erations sont d´efinies comme suit :

(s0, s1, . . . , s15) := (s0⊕a0, s1⊕a1⊕c, . . . , s15⊕a15).

La transformation non-lin´eaire : La couche non-lin´eaire de Hamsi est bas´ee sur une boˆıte-S de 4 bits,S, qui est une des boˆıtes-S utilis´ees dans le chiffrement par blocsSerpent:

S[16] ={8,6,7,9,3,12,10,15,13,1,14,4,0,11,5,2}.

Le degr´e alg´ebrique deS ainsi que de son inverse est 3. Cette boˆıte-S est appel´ee en parall`ele sur les 128 colonnes de l’´etat. Au premier tour, `a cause de la mani`ere dont l’´etat est concat´en´e, S m´elange deux bits du message avec deux bits de la valeur de chaˆınage.

La transformation lin´eaire : La couche de diffusion dans Hamsi-256 est bas´ee sur une fonction lin´eaireL:F1282 →F1282 qui s’applique aux mots de 32 bits. La fonctionLest appel´ee 4 fois dans un tour, une fois par diagonale de l’´etat :

(s0, s5, s10, s15) := L(s0, s5, s10, s15) (s1, s6, s11, s12) := L(s1, s6, s11, s12) (s2, s7, s8, s13) := L(s2, s7, s8, s13) (s3, s4, s9, s14) := L(s3, s4, s9, s14) La fonctionL(a, b, c, d), aveca, b, c, d∈F322 est d´ecrite comme suit :

a := a≪13 c := c≪3 b := b⊕a⊕c d := d⊕c⊕(a≪3)

b := b≪1 d := d≪7 a := a⊕b⊕d

c := c⊕d⊕(b≪7) a := a≪5

c := c≪22

Troncation : Apr`es l’application de la permutation P, la moiti´e des bits de l’´etat sont tronqu´es. Plus pr´ecis´ement, la transformation T : F5122 → F2562 ´elimine tous les bits de la deuxi`eme et de la quatri`eme ligne.

T(s0, s1, s2,. . . , s14, s15) = (s0, s1, s2, s3, s8, s9, s10, s11).

Feed-forward : Apr`es la troncation, les 256 bits de l’´etat sont additionn´es (par un XOR)

`

a la valeur de chaˆınagehi1 pr´ec´edente, afin de former hi.

La permutation Pf : Pour le dernier bloc du message rembourr´e, la permutation P est remplac´ee par une autre permutation, appel´ee Pf. La permutation Pf est presque identique

`

a P. La seule diff´erence consiste en les constantes appliqu´ees `a chaque tour et en le nombre de tours, qui est 6 pourPf.

Nous allons maintenant montrer comment trouver des partitions en sommes nulles pour la permutation Pf.

Partitions en sommes nulles pour Pf

Comme un tour de la fonction est de degr´e 3, le degr´e de 3 tours deRest au plus 33 = 27.

C’est ´egalement vrai pour la fonction inverse. Cette remarque a ´et´e utilis´ee dans [ADMS09]

afin de trouver des partitions en sommes nulles de taille 228. Nos techniques peuvent toutefois ˆetres utilis´ees afin de mettre en ´evidence des partitions en sommes nulles de plus petite taille.

3.7. APPLICATION `A LA PERMUTATION DE FINALISATION DE HAMSI-256 75 Nous commen¸cons par d´efinir une num´erotation pour les bits de l’´etat interne. Le bitj du mot de 32 bits qui se trouve `a l’intersection de la ligneiet la colonne kde l’´etat, 0≤k <4, 0≤j <32 est num´erot´e 128k+ 4j+i. Dans le cas de Hamsi, le rˆole des mots est maintenant jou´e par les colonnes de l’´etat, commeS s’applique aux colonnes et non pas aux lignes comme c’´etait le cas de Keccak. Pour cette raison, nous d´efinissons un sous-espaceBi, 0≤i <128, comme l’espace engendr´e par la colonne ide l’´etat, c’est-`a-dire

Bi =he4i, e4i+i, e4i+2, e4i+3i.

Nous choisissons des ´etats apr`est= 3 tours de la permutation, dans l’espace de dimension 19 suivant :

V = M16

i=14

Bi⊕ he68, e237, e241, e245, e249, e507, e511i. Nous consid´erons ensuite les ensembles

Xa={((R1)2◦S1)(a+z), z∈V},

et nous utilisons la technique du th´eor`eme 3.3. Les sous-espaces V et S1(V) peuvent ˆetre vus tous les deux comme une union de translat´es de B14⊕B15⊕B16. Comme le degr´e de deux it´erations deR1 est au plus 9, la somme de tous les ´el´ements de Xaest nulle, puisque dim(⊕16i=14Bi)>9. De plus, he0, e4, e8, e12i ⊂ L(V) et il a ´et´e remarqu´e dans [ADMS09] que trois tours de R sont de degr´e 3 par rapport aux bits de poids faible de la premi`ere colonne de l’´etat. Par cons´equent, comme L(V) est une union de translat´es de Bf =he0, e4, e8, e12i etDBfR3(x) = 0 pour tous les x, nous d´eduisons que les images de tous les ´el´ements de Xa par six tours de R ont une somme nulle. Plusieurs partitions en sommes nulles de taille 219 peuvent ˆetre construites de cette fa¸con. En effet, la seule condition qui doit ˆetre satisfaite, est que L(V) contienne le sous-espace g´en´er´e par les 4 premiers bits de n’importe quel mot (colonne) de l’´etat interne.

Nous d´ecrivons enfin une technique diff´erente pour trouver des partitions en sommes nulles pour Pf. Cette m´ethode conduit `a des partitions en sommes nulles de taille 210 seulement.

Pour cela, il suffit de consid´erer dix ´el´ements quelconques dans un mot de 32 bits, apr`es 3 tours de permutation et d’imposer le reste des bits de l’´etat `a une valeur fixe. Alors, 3 tours de la permutation appliqu´es `a un tel ´etat sont de degr´e au plus 9. La raison est que puisque il existe au plus un bit par boˆıte-S active, tous les bits apr`es le premier tour seront une combinaison affine des dix variables en entr´ee. C’est ´egalement vrai pour la permutation inverse. Comme apr`es l’application deL1 `a cet ´etat, il aura une variable par colonne et donc au plus un bit par boˆıte-S active.

Chapitre 4

Borne sur le degr´ e des

Dans le document The DART-Europe E-theses Portal (Page 90-94)