• Aucun résultat trouvé

APPLICATION ` A HAMSI 133 V liste de λ

Dans le document The DART-Europe E-theses Portal (Page 150-156)

Sur la propagation des relations lin´ eaires ` a travers une boˆıte-S

6.2. APPLICATION ` A HAMSI 133 V liste de λ

h1,2i {1,6,7,8,9, e, f} h1,4i {1, e, f}

h1,6i {1,4,5, a, b, e, f} h1,8i {1, e, f}

h1, ai {1,2,3, c, d, e, f} h1, ci {1, e, f}

h1, ei {1, e, f} h2,4i {1,8,9} h2,5i {1,8,9} h2,8i {e} h2,9i {e} h2, ci {f} h2, di {f} h3,4i {1,6,7} h3,5i {1,6,7} h3,8i {e} h3,9i {e} h3, ci {f} h3, di {f} h4,8i {1, e, f} h4,9i {1, e, f} h4, ai {1} h4, bi {1} h5,8i {1, e, f} h5,9i {1, e, f} h5, ai {1} h5, bi {1} h6,8i {4, a, e} h6,9i {4, a, e} h6, ai {2, d, f} h6, bi {3, c, f} h7,8i {5, b, e} h7,9i {5, b, e} h7, ai {2, d, f} h7, bi {3, c, f}

Table 6.3 – Liste de tous lesλ∈F42 tels quex7→λ·S(x) est de degr´e au plus 1 sur tous les translat´es de V, pour chaque sous-espace V de dimension 2.

mots a et c. En particulier, chaque variable d’un mot d affecte au plus trois bits de l’´etat apr`es l’application de la partie lin´eaire.

Toutefois, les variables des mots b ont la mˆeme propagation lente que les variables des motsd, et cette propri´et´e n’a pas ´et´e exploit´ee dans [Fuh10]. En ce sens, la propri´et´e suivante

de la boˆıte-S de Hamsi peut alors ˆetre tr`es utile :

S(1, x,0, x) = (0, x,1,0) pour toutx∈F2. (6.3) Avant de pr´esenter notre m´ethode de recherche des relations affines entre les variables d’entr´ee et de sortie de la fonction de compression de Hamsi-256, nous avons besoin d’une

´enum´eration des 512 bits de l’´etat. La notation que nous allons introduire sera ensuite utilis´ee pour pr´esenter les r´esultats exp´erimentaux `a la fin de cette section.

Notation : Nous d´esignons par 0 le bit le plus `a gauche du mot s0, par 31 le bit le plus `a droite du mˆeme mot, par 32 le bit le plus `a gauche du mots1, par 128 le bit le plus `a gauche du mot s4 etc. Cette notation est illustr´ee `a la table 6.4. De la mˆeme fa¸con, les boˆıtes-S, S0, . . . , S127 sont ´enum´er´ees de gauche `a droite.

0.. . . . ..31 32. . . . .63 64. . . . .95 96. . . . .127 128. . .159 160. . .191 192. . .223 224. . .255 256. . .287 288. . .319 320. . .351 352. . .383 384. . .415 416. . .447 448. . .479 480. . .511

Table 6.4 – ´Enum´eration des bits de l’´etat de Hamsi-256

Nous cherchons un ensemble de variables I `a l’entr´ee de la fonction de compression, tel que l’ensemble de bits en sortie de la fonction de compression, O, qui sont affines en les variables de I, soit maximis´e. Le principal probl`eme est alors la fa¸con de choisir les boˆıtes-S de l’´etat pendant le premier tour qui seront actives. Afin de r´esoudre ce probl`eme, nous suivons l’approche suivante.

Pour chacun de 256 bits de sortiebi de la fonction de compression, nous avons ´etudi´e leur propagation en arri`ere `a travers la fonction de compression, afin de d´eterminer les bits en entr´ee dont il d´epend. Nous avons alors pu observer un ph´enom`ene int´eressant. Pour chaquei il existe plusieurs bits de sortie de la couche non-lin´eaire du premier tour qui n’affectent pas bi. Ce comportement constitue une faiblesse importante de la diffusion de la fonction et est principalement li´e au fait que la permutation interne de Hamsi n’est constitu´ee que de 3 tours.

Par exemple, en consid´erant b0 nous pouvons identifier une liste de boˆıtes-S du premier tour qui ont au moins un bit de sortie qui n’affecte pasb0. Cette liste est :

{4,8,12,15,17,23,24,26,31,45,58,59,64,66,76,78,89,103,114,117}.

Dans cette liste, pour les boˆıtes-S dans{12,15,17,26,64,66,114,117} c’est la quatri`eme sortiey3 qui n’influence pasb0, tandis que pour les boˆıtes-S{4,23,31,45,58,76,78,89,103}, b0 n’est pas affect´e par y1. Enfin, pour les boˆıtes-S {8,24,59} ni la coordonn´ee y1 ni y3 n’influenceb0.

La mˆeme recherche peut ˆetre effectu´ee pour les 255 autres bits de sortie de la fonction de compression. Une premi`ere remarque que nous pouvons faire est qu’un bit de sortieb est rarement ind´ependant de la premi`ere ou troisi`eme sortie (coordonn´eey0ety2respectivement)

6.2. APPLICATION `A HAMSI 135 d’une boˆıte-S du premier tour. Par contre, il est courant de trouver des boˆıtes-S du premier tour dont la deuxi`eme ou quatri`eme sortie (coordonn´eey1ety3respectivement) n’affectent pas b. Ce comportement est clairement dˆu `a la propagation plus rapide des variables se trouvant dans des motsaouc, en comparaison des variables des motsbetd. L’id´ee est alors de trouver un ensemble de bits de sortie de la fonction de compressionOqui partagent un grand nombre de boˆıtes-S du premier tour qui n’influencent que tr`es peu de bits dans O.

Nous allons cependant restreindre notre recherche aux 64 premi`eres boˆıtes-S de l’´etat. La raison pour cela est que nous cherchons, exactement comme dans [Fuh10], une pr´eimage h d’une valeur de chaˆınage donn´ee h. Par cons´equent, nous choisissons des variables dans la partie de l’´etat interne qui, apr`es la concat´enation, contient des bits de la valeur de chaˆınage.

En utilisant les relations (6.1) et (6.3) cette contrainte est v´erifi´ee pour la premi`ere moiti´e de l’´etat. Au contraire, ceci n’est plus valide pour la deuxi`eme moiti´e de l’´etat, puisque les rˆoles du message et de la valeur de chaˆınage sont invers´es.

Il est ´evident que nous ne pouvons pas tester tous les ensembles de sortie possibles O pour tous les ensembles d’entr´ee possibles I, `a cause de la complexit´e trop ´elev´ee d’une telle recherche. Pour cette raison, nous avons adopt´e la strat´egie suivante, d´ecrite par l’algo-rithme4. Nous choisissons au hasard une boˆıte-S du premier tour, parmi les 64 possibles, et nous ´eliminons tous les bits de sortie de la fonction de compression qui d´ependent enti`erement de chacune des sorties de cette boˆıte-S. Nous regardons ensuite les bits de sortie qui restent apr`es cette premi`ere ´elimination et nous comptons le nombre de fois o`u la deuxi`eme coor-donn´ee de cette boˆıte-S n’influence pas ces bits. Nous faisons la mˆeme chose pour la quatri`eme coordonn´ee et nous choisissons le plus grand nombre parmi les deux. Nous ´eliminons ensuite les bits de sortie qui correspondent au plus petit nombre. Apr`es cette nouvelle ´elimination, nous sommes sˆurs que les bits qui restent dans notre liste ne sont pas influenc´es par la deuxi`eme (ou la quatri`eme coordonn´ee) de cette boˆıte-S. Nous choisissons ensuite une deuxi`eme boˆıte-S du premier tour et nous utilisons la mˆeme technique afin de restreindre encore un peu la liste de bits en sortie. Apr`es cette ´etape, pour un nombre de variables d’entr´eeNvar = 9, seulement 12-14 bits restent dans notre liste. Nous notons la liste de ces bits L. Pour Nvar = 9 deux tours de cette ´etape sont suffisants pour avoir un nombre de bits en sortie raisonnable. Toute-fois, pour un nombre plus petit de variables, nous pouvons r´ep´eter cette ´etape encore une ou deux fois. Au contraire, pour un nombre plus grand de variables, une seule ´etape aurait probablement suffit. Notons net le nombre de r´ep´etitions de cette proc´edure.

La deuxi`eme ´etape consiste maintenant `a trouver un nombre de boˆıtes-S du premier tour qui ont une coordonn´ee qui n’influence pas un grand nombre de bits de L. Par exemple, pour 9 variables nous pouvons trouver un ensemble S de 20 boˆıtes-S du premier tour qui ont une coordonn´ee qui n’influence pas plus de 5 bits de L. Pour chacune des boˆıtes-S dans S, si la majorit´e des bits dans L ne sont pas influenc´es par la deuxi`eme coordonn´ee de cette boˆıte-S, nous leur imposons alors la relation (6.1). Au contraire, si majoritairement les bits dansLne sont pas influenc´es par la quatri`eme coordonn´ee de la boˆıte-S, nous imposons alors la relation (6.3). S’il n’est pas clair si la majorit´e appartient `a la deuxi`eme ou la quatri`eme coordonn´ee, nous fixons alors une des deux relations au hasard. Th´eoriquement, il est possible que l’ind´ependance provienne majoritairement d’une autre composante de la boˆıte-S, mais cela n’arrive en pratique que tr`es rarement. Pour cette raison, nous ne traitons pas du tout ce cas.

Apr`es avoir fix´e une relation d’entr´ee pour toutes les boˆıtes-S dans S, nous cherchons exhaustivement une combinaison de 9 boˆıtes-S, c’est-`a-dire de 9 variables dansI qui donnent le plus grand nombre de relations lin´eaires. Pour chaque combinaison deNvar boˆıtes-S, nous proc´edons comme suit. Pour chaque colonne de l’´etat qui correspond `a une boˆıte-S active,

nous fixons les bits de l’´etat apr`es la premi`ere couche non-lin´eaire selon la relation (6.1) ou la relation (6.3). Dans le premier cas, nous fixons comme variable le quatri`eme bit de la colonne tandis que pour le deuxi`eme cas c’est le deuxi`eme bit qui nous consid´erons comme variable.

Les autres bits de la colonne sont des valeurs constantes d´etermin´ees par la relation (6.1) ou la relation (6.3) respectivement. Enfin, les bits de l’´etat qui correspondent aux boˆıtes-S non-actives, sont ´egalement consid´er´es comme des bits constants.

Nous calculons ensuite la propagation des bits variables `a travers la transformation lin´eaire et les tours deux et trois de la permutation. Pour chaque boˆıte-S de l’´etat du deuxi`eme et troisi`eme tour, nous regardons si la premi`ere relation identifi´ee par Thomas Fuhr ou une des relations d´ecrites par la table 6.3est v´erifi´ee. Nous pouvons alors d´eterminer apr`es la couche des boˆıtes-S de chaque tour, quels bits de l’´etat s’expriment de fa¸con affine en les variables deI. Cette ´etape est d´ecrite dans l’algorithme 5.

Algorithme 5:AlgorithmeRelations Affinesqui d´etermine pour un ensemble donn´e de variables d’entr´ee I le nombre de bits en sortie de la fonction de compression de Hamsi-256 qui d´ependent de fa¸con affine des variables dans I.

Donn´ees: Un ensemble de variablesI de taille Nvar

R´esultat: Un ensembleO de bits de sortie de la fonction de compression de

Hamsi-256 qui d´ependent de fa¸con affine des variables de I etNout=|O|. Calculer la propagation des variables `a travers la fonction lin´eaire ;

pouride 1 `a 2 faire E ← ∅,Z ← ∅;

pourj de0 `a 127faire

si la premi`ere relation identifi´ee par Thomas Fuhr ou une des relation d´ecrites par la table 6.3 est v´erifi´ee pour Sj alors

Ajouter dans E les bits en sortie de Sj qui sont des combinaisons affines des bits variables de I ;

pourk dans E faire

Calculer la propagation du bit k `a travers de la fonction lin´eaire ; Ajouter `a Z les bits de l’´etat apr`es le touri+ 1 qui d´ependent dek ; I ← Z ;

O ← Z; Nout← |O| ; RenvoyerO, Nout;

Avec cette m´ethodologie nous avons trouv´e les r´esultats suivants pour Nvar = 9 et pour Nvar= 10.

R´esultats pour9variables : Pour les 9 boˆıtes-S d´ecrites par la liste{0,7,24,30,35,37,51, 59,61}, nous avons fix´e la relation (6.1) pour les boˆıtes-S {0,30,35,37} et la relation (6.3) pour les boˆıtes-S restant. Alors, les 13 bits de sortie suivants de la fonction de compression de Hamsi-256 d´ependent de fa¸con affine des neuf variables d’entr´ee :

{6,8,43,78,262,278,313,320,343,345,350,355,380}.

En particulier nous avons trouv´e deux relations de plus que dans les r´esultats d´ecrits dans [Fuh11]

pour le mˆeme nombre de variables.

6.3. CONCLUSION 137 R´esultats pour10variables : Nous avons consid´er´e les 10 boˆıtes-S suivantes :{0,7,12,16, 30,35,37,51,59,61}. Nous avons fix´e la relation (6.1) pour les boˆıtes-S dans{0,16,30,35,37} et la relation (6.3) pour les autres. Les 11 bits suivants d´ependent alors de fa¸con affine des 10 variables en entr´ee :

{6,8,43,78,278,313,320,343,345,350,380}.

Egalement pour ce cas, nous avons identifi´e deux relations en plus de celles d´ecrites dans´ [Fuh11].

6.3 Conclusion

Dans ce chapitre nous avons pr´esent´e une m´ethode de recherche de relations affines `a travers une primitive sym´etrique. Cette analyse, a ´et´e d’abord appliqu´ee afin d’am´eliorer une cryptanalyse connue de la fonction de hachage Hamsi. Puisque nous avons trouv´e des param`etres Nvar et Nout plus grands que dans l’attaque originale, notre analyse permet d’am´eliorer l´eg`erement la complexit´e de celle-ci en appliquant les nouveaux param`etres `a l’´equation (6.2). Nous avons montr´e que cette attaque peut ˆetre g´en´eralis´ee `a d’autres con-structions dont la partie non-lin´eaire est compos´ee de plusieurs petites boˆıtes-S et qui sont de degr´e alg´ebrique bas. L’application de ce type d’attaque `a une primitive cryptographique d´epend principalement des propri´et´es des boˆıtes-S utilis´ees. Nous avons analys´e certaines de ces propri´et´es afin d’isoler les caract´eristiques qui rendent une boˆıte-S susceptible de ne pas r´esister `a ce type de cryptanalyse. Nous avons appliqu´e la mˆeme attaque `a des versions de Hamsi o`u la boˆıte-S ordinaire a ´et´e remplac´e par une autre boˆıte-S `a 4 variables ne poss`edant aucune composante quadratique. Plus pr´ecisement, nous avons d’abord essay´e avec la boˆıte-S representative de la classe G3 comme d´ecrit dans [LP07] et puis avec la boˆıte-S S0 de la fonction de hachage JH. Dans les deux cas, nous avons constat´e que l’attaque ne fonctionnait plus.

Algorithme 4: M´ethode pour la recherche des relations affines pour Hamsi-256 Donn´ees: Un nombreNvar de variables, un seuils, une constantenet

R´esultat: Un ensembleI de taille Nvar de variables en entr´ee et un ensemble deO de bits en sortie de la fonction de compression tels que tous les bits dansO soient des combinaisons affines des variables de I

MettreS =∅ etL={0,. . . ,127} ∪ {256, . . . ,383}; pouride 1 `a net faire

Choisir une boˆıte-SS,S 6∈ S parmi les 64 premi`eres boˆıtes-S de l’´etat ; S ←S∪ {S};

pour j dans L faire

sibj d´epend de toutes les coordonn´es de Si alors L ← L \ {j};

compteur2 ←0, compteur4 ←0 ; L2 ← ∅,L4 ← ∅ ;

pour j dans L faire

sibj ne d´epend pas de la deuxi`eme coordonn´ee deSi alors compteur2←compteur2+ 1 ; L2← L2∪ {j};

sib ne d´epend pas de la quatri`eme coordonn´ee de Si alors compteur4←compteur4+ 1 ; L4← L4∪ {j};

sicompteur2≥compteur4 alors L ← L \ L4 ;

sinon

L ← L \ L2 ; pouride 0 `a 63 faire

siSi 6∈ S alors

siau moins une coordonn´ee de Si n’influence pas au moinss bits dans L alors S ← S ∪ {Si};

compteur2 ←0, compteur4 ←0 ; pour Si dansS faire

sib ne d´epend pas de la deuxi`eme coordonn´ee de Si alors compteur2←compteur2+ 1

sib ne d´epend pas de la quatri`eme coordonn´ee de Si alors compteur4←compteur4+ 1

sicompteur2≥compteur4 alors imposer la relation (6.3) pour Si ; sinon

imposer la relation (6.1) pour Si ; max←0 ;

sila relation (6.3) est impos´ee pour Si alors E ← E ∪ {x128+i}

sila relation (6.1) est impos´ee pour Si alors E ← E ∪ {x384+i}

(Nout,Oout)←Relations Affines(E) ; siNout ≥max alors

I ← E;O ← Oout;max←Neq; RenvoyerI,O;

Dans le document The DART-Europe E-theses Portal (Page 150-156)