• Aucun résultat trouvé

5.2.1 “Filter Permutator”

Par analogie aux g´en´erateurs filtr´es dont nous avons r´ealis´e l’´etude au cha-pitre 4, les auteurs de FLIP ont appel´e la structure g´en´erique de leur chiffrement filter permutator. Le sch´ema g´en´erique de FLIP, d´ecrit `a la figure 5.2, combine trois composantes cryptographiques :

— un registre de taille N (jamais mis `a jour) dans lequel est stock´ee la clef secr`ete ;

— un algorithme, initialis´e uniquement par l’IV, qui engendre de mani`ere publique des permutations de {1, . . . , N } n’ayant pas de propri´et´es distin-guantes ;

— une fonction bool´eenne de filtrage not´ee F ∈ BN.

Ces trois composantes sont combin´ees de la mani`ere suivante : une fois que l’algorithme de g´en´eration de permutations est initialis´e par le vecteur d’initialisation, la clef secr`ete est stock´ee dans le registre. `A chaque instant t, le g´en´erateur de permutations engendre une permutation Pt de l’ensemble {1, . . . , N }, qui m´elange les bits de la clef, avant d’appliquer la fonction de filtrage F qui produit un bit zt, g´en´erant ainsi la suite chiffrante z. Suivant le principe des chiffrements `a flot additifs, le texte chiffr´e est ensuite obtenu en XORant bit `a bit le message clair et la suite chiffrante.

Le g´en´erateur pseudo-al´eatoire utilis´e est bas´e sur AES-128, cependant, notre attaque n’exploite pas la g´en´eration de permutations, mais uniquement la fonction de filtrage utilis´ee. Nous supposons donc que le PRNG utilis´e est suffisamment bon, et qu’aucune faiblesse n’est exploitable sur cette partie du chiffrement.

5.2.2 La fonction de filtrage

Naturellement, la fonction de filtrage ne peut pas ˆetre choisie n’importe comment : celle-ci doit avoir de bonnes propri´et´es cryptographiques afin d’´eviter les attaques connues sur les chiffrements `a flot comme les attaques alg´ebriques ou les attaques par corr´elation. Ainsi, les auteurs de FLIP ont choisi une fonction

F K PRNG Pt IV N L zt mt ct

Figure 5.2 –Le chiffrement FLIP.

bool´eenne qui suit une construction particuli`ere, afin d’assurer une certaine s´ecurit´e au regard des attaques classiques.

La fonction de filtrage F est construite `a l’aide de la somme de 3 fonctions f1, f2 et f3 dont les variables sont ind´ependantes. Ces fonctions sont d´efinies selon les trois familles sp´ecifiques qui suivent, pour lesquelles nous reprenons les notations des auteurs de FLIP.

D´efinition 5.2 (Fonctions de type L). Pour n ∈ N, la n-i`eme fonction bool´eenne de typeL, not´ee Ln, est la premi`ere fonction sym´etrique ´el´ementaire `a n variables, c’est-`a-dire la somme de tous les monˆomes de degr´e1 :

Ln(x0, . . . , xn−1) = n−1 X i=0 xi. Par exemple, L4(x0, x1, x2, x3) = x0+ x1+ x2+ x3.

D´efinition 5.3(Fonctions de type Q). Pour n ∈ N, lan-i`eme fonction de type Q, not´ee Qn, est une fonction bool´eenne quadratique `a2n variables d´efinie par

Qn(x0, . . . , x2n−1) = n−1 X i=0 x2ix2i+1. Par exemple, Q3(x0, x1, x2, x3, x4, x5) = x0x1+ x2x3+ x4x5.

D´efinition 5.4(Fonctions de type T ). Pour n ∈ N, lan-i`eme fonction de type T (fonction dite “triangulaire”) est la fonction bool´eenne de degr´e k `a k(k+1)2 variables d´efinie par

Tk(x0, . . . , xk(k+1) 2 −1) = k X i=1 i−1 Y j=0 xj+Pi−1 `=0`. Par exemple, T3(x0, x1, x2, x3, x4, x5) = x0+ x1x2+ x3x4x5.

L’int´erˆet de ces trois types de fonctions bool´eennes est que chacune d’elle poss`ede une propri´et´e cryptographique particuli`ere : les fonctions de type L ap-portent une bonne r´esilience, les fonctions de type Q ont une bonne non-lin´earit´e, alors que les fonction triangulaires poss`edent une bonne immunit´e alg´ebrique. L’id´ee des auteurs de FLIP pour choisir la fonction de filtrage est d’utiliser une somme de ces trois familles, dont les variables sont prises ind´ependamment, afin que la fonction de filtrage globale h´erite des trois propri´et´es cryptographiques classiques.

Plus pr´ecis´ement, soit trois entiers n1, n2pair et n3de la forme k(k+1)2 . On d´efinit f1, f2 et f3 trois fonctions bool´eennes `a n1 (respectivement n2 et n3

variables) telles que

— f1(x0, . . . . , xn1−1) = Ln1 ; — f2(xn1, . . . , xn1+n2−1) = Qn2/2;

— f3(xn1+n2, . . . , xn1+n2+n3−1) = Tk o`u n3=k(k+1)2 . Alors la fonction de filtrage utilis´ee dans FLIP est d´efinie par

F (x0, . . . , xn1+n2+n3−1) = Ln1+ Qn2/2+ Tk

o`u n1+ n2+ n3= N . En utilisant cette construction particuli`ere, les auteurs de FLIP ont alors pu d´eterminer exactement la valeur de la non-lin´earit´e, de l’immu-nit´e alg´ebrique et de la r´esilience de F . Cependant, l’analyse cryptographique de ce permutateur filtr´e [MJSC16] a ´et´e r´ealis´ee par les auteurs en transposant les arguments classiques, notamment les arguments utilis´es pour analyser la s´ecurit´e des registres filtr´es. Or, ´etant donn´e le caract`ere tr`es particulier de la construction de FLIP, ces arguments ne peuvent plus ˆetre utilis´es, puisque le poids de Hamming en entr´ee de la fonction de filtrage est constant. Comme les crit`eres de non-lin´earit´e et d’immunit´e alg´ebrique sont ´etudi´es sur tout l’espace Fn2, il convient d’affiner ces crit`eres. Nous avons communiqu´e ces remarques aux auteurs de FLIP, ce qui nous a conduit `a une collaboration avec Pierrick M´eaux et Claude Carlet, o`u nous justifions rigoureusement le choix de conception de FLIP. Ces travaux seront d´ecrits dans le chapitre 6 et ont ´et´e publi´es dans un article aux IACR Transactions on Symmetric Cryptology [CMR17a].

Afin d’´eviter l’existence de clefs faibles, et d’assurer un espace des clefs plus grand que 280 ou 2128, les auteurs de FLIP ont sugg´er´e que la clef soit choisie avec un poids de Hamming de N2. Toujours au chapitre 6 nous verrons pourquoi il est important d’avoir une clef ´equilibr´ee. Au regard de leur analyse initiale, les

auteurs de FLIP ont `a l’origine propos´e les param`etres d´ecrits dans la table 5.1, en pr´etendant une s´ecurit´e de 80 bits (respectivement 128 bits) pour une taille de clef de 192 bits (respectivement 400 bits).

FLIP(n1, n2, n3) Taille de clef (N ) S´ecurit´e (en bits) FLIP(47,40,105) 192 80 FLIP(87,82,231) 400 128

Table 5.1 – Param`etres des premi`eres versions de FLIP et le niveau de s´ecurit´e revendiqu´ee par les auteurs.

5.2.3 Caract´eristiques g´en´erales de FLIP

Rappelons tout d’abord les principales caract´eristiques de FLIP que nous allons exploiter pour mettre `a mal sa s´ecurit´e.

— Le registre dans lequel la clef est stock´ee initialement n’est jamais mis `a jour ;

— la clef est de poids de Hamming N2 afin d’´eviter les clefs faibles ;

— une permutation al´eatoire est engendr´ee `a chaque instant (not´ee Pt pour t ≥ 0), impliquant que les ´equations d´ecrivant la suite chiffrante sont toutes de la forme

zt= F (KPt(0), KPt(1), . . . , KPt(N −1)) o`u Ki pour 0 ≤ i ≤ N − 1 d´esigne le i-i`eme bit de la clef K ;

— F est une fonction bool´eenne ayant de bonnes propri´et´es cryptographiques.