• Aucun résultat trouvé

QUELQUES ATTAQUES EXPLOITANT UN DEGR ´ E ALG ´ EBRIQUE FAIBLE 39

Dans le document The DART-Europe E-theses Portal (Page 56-60)

Propri´ et´ es alg´ ebriques des cryptosyst` emes sym´ etriques

2.2. QUELQUES ATTAQUES EXPLOITANT UN DEGR ´ E ALG ´ EBRIQUE FAIBLE 39

F F

x

b

F(x) F(x) a

x =x+a

F(x) +F(x) =b

Figure 2.1 – Une diff´erentielle pour une fonctionF

Une “bonne diff´erentielle” (a, b) pour une famille de fonctions (Fk)K est une diff´erentielle pour laquelle la quantit´e

δFK(a, b) =

{x∈Fn2, DaFK(x) =b} ,

est ´elev´ee pour toute valeur deK. Les diff´erentielles pour lesquellesδFk(a, b) est ´elev´ee pour certaines clefs sont ´egalement tr`es utiles car elles permettent d’identifier les clefs faibles. La r´esistance deFK contre la cryptanalyse diff´erentielle est alors clairement d´etermin´ee par les valeurs suivantes :

δ(FK) = max

a6=0,bδFK(a, b).

Cette quantit´e est invariante par la composition de F avec une fonction lin´eaire. Pour cette raison, la r´esistance d’un syst`eme sym´etrique contre la cryptanalyse diff´erentielle d´epend essentiellement des propri´et´es de sa partie non-lin´eaire. Si cette partie est constitu´ee d’une couche de boˆıtes-S, S, alors la r´esistance du syst`eme contre la cryptanalyse diff´erentielle d´ependra de la valeur deδ(S). Il est alors naturel de rechercher des fonctionsSdont la valeur δ(S) soit la moins ´elev´ee possible.

Il est facile de voir que le nombre δ(S) est toujours pair. Ceci provient du fait que pour toutx∈Fn2,DaS(x) =DaS(x+a). Kaisa Nyberg a prouv´e dans [Nyb94] le th´eor`eme suivant : Th´eor`eme 2.1 ([Nyb94]). Soit S une fonction de Fn2 dans Fm2 . Alors,

δ(S)≥2nm. Et, sin=m, alors

δ(S)≥2. (2.3)

D´efinition 2.25. Les fonctions atteignant la borne (2.3) sont dites presque parfaitement non-lin´eairesou APN (abr´eviation de l’anglais almost perfect nonlinear).

Les diff´erences en entr´ee et en sortie, sont le plus souvent consid´er´ees selon l’op´eration XOR, c’est-`a-dire l’addition bit `a bit des deux vecteurs de la mˆeme longueur, car c’est l’op´eration la plus souvent utilis´ee pour l’insertion des sous-cl´es dans un chiffrement par blocs.

Dans ce cas, pour deux vecteursx, x ∈Fn2, leur diff´erencex+x exprime les positions des bits diff´erents entrexetx. N´eanmoins, selon les op´erations utilis´ees par l’algorithme, il est possi-ble d’utiliser d’autres op´erations internes additives. Dans le cas par exemple des fonctions de

hachage de la famille MD-SHA, plusieurs op´erations sont consid´er´ees modulo 232. Dans cette situation, la diff´erence entre deux messages est souvent exprim´ee par la soustraction modulo 232.

Dans une attaque diff´erentielle appliqu´ee sur un chiffrement par blocs, l’attaquant doit ˆetre en mesure de choisir les textes clairs qu’il va ensuite chiffrer. C’est pour cette raison que cette m´ethode fait partie des attaques dites`a clair choisi. Dans le cas des fonctions de hachage, un attaquant peut toujours avoir le contrˆole des messages `a hacher.

Cryptanalyse diff´erentielle d’ordre sup´erieur

Dans l’attaque diff´erentielle classique, l’´etude porte sur l’analyse de la diff´erence entre deux vecteurs `a l’entr´ee et `a la sortie de l’algorithme. Il est possible d’´etendre de fa¸con naturelle la notion d’une d´eriv´ee d’une fonction vectorielle `a un ordre sup´erieur. L’introduction des d´eriv´ees d’ordre sup´erieur d’une fonction en cryptographie est g´en´eralement attribu´e `a Xuejia Lai en 1994 [Lai94], mais cette notion est d´ej`a pr´esente dans le th`ese de John Dillon en 1974 [Dil74].

D´efinition 2.26. SoitF une fonction vectorielle deFn2 dansFm2 etV un sous-espace vectoriel de Fn2 de dimension k. Nous appelons d´eriv´ee d’ordre k de F relativement `a V la fonction not´ee parDV qui est d´efinie pour chaque x∈Fn2 par :

DV(x) =Da1Da2. . . Dak(x) =X

vV

F(x+v), (2.4)

o`u(a1, a2, . . . , ak) est une base deV.

Nous pouvons voir que la valeur de DV en x est ind´ependante du choix de la base pour V.

Selon cette d´efinition, la d´eriv´ee d’une fonction donn´ee par la d´efinition 2.23 correspond

`

a la d´eriv´ee d’ordre 1 d’une fonctionF.

Exemple 2.4. Soit F une fonction de Fn2 dans Fm2 et V = ha, bi un sous-espace de Fn2 de dimension 2. La d´eriv´ee d’ordre 2 deF par rapport `a V ´evalu´ee au vecteur x vaut :

DV(x) = Da1Da2(x) =Da1(F(x) +F(x+a2))

= F(x) +F(x+a1) +F(x+a2) +F(x+a1+a2).

En 1994, Lars Knudsen a utilis´e des d´eriv´ees d’ordre sup´erieur pour attaquer des chiffre-ments par blocs [Knu95] et a introduit ainsi un nouveau type d’attaque, connu depuis sous le nom de cryptanalyse diff´erentielle d’ordre sup´erieur. L’id´ee de cette attaque est bas´ee sur l’observation suivante.

Proposition 2.5. Soit F une fonction de Fn2 dans Fm2 de degr´e d. Alors pour tout a∈Fn2, nous avons

DaF ≤d−1.

L’id´ee derri`ere cette proposition est tr`es naturelle. Puisque toute fonction dans un corps fini peut ˆetre vue comme un polynˆome multivari´e, d´eriver diminue d’au moins 1 le degr´e. De cette propri´et´e, et en d´erivant la fonctionF “suffisamment de fois”, nous d´eduisons facilement la proposition suivante.

2.2. QUELQUES ATTAQUES EXPLOITANT UN DEGR ´E ALG ´EBRIQUE FAIBLE 41 Proposition 2.6 ([Lai94]). Soit F une fonction de Fn2 dans Fm2 de degr´e d. Alors pour tout sous-espace V ⊂Fn2 de dimension strictement sup´erieure `a d, nous avons

DV(x) = 0, pour tout x∈Fn2.

Nous allons voir comment la proposition 2.6 peut ˆetre appliqu´ee pour conduire `a une attaque contre un chiffrement par blocs. Pour ceci, nous allons d´ecrire une des premi`eres attaques de ce genre `a avoir ´et´e appliqu´ee. Il s’agit de l’attaque de Thomas Jakobsen et Lars Knudsen [JK97] contre le chiffrement par blocs KN, pr´esent´e par Lars Knudsen et Kaisa Nyberg en 1995 [NK95].

Le chiffrement par blocs KN

Le chiffrement par blocs KN (pour les initiales de ces auteurs Knudsen et Nyberg) est un chiffrement de type Feistel, propos´e en 1995 [NK95]. Il s’agit d’une construction chiffrant des blocs de messages de 64 bit en utilisant une cl´e secr`ete de 198 bits. En particulier, aucun cadencement de cl´e n’est utilis´e, donc chaque sous-cl´e est simplement constitu´e de 33 bits cons´ecutifs de la cl´e maˆıtre. Le nombre d’it´erations est fix´e `a 6. La permutation de tour est d´efinie de la mani`ere suivante :

F322 ×F322 → F322 ×F322 (x, y) 7→ (y, Fki(y) +x).

La fonction de tour param´etr´ee par la sous-cl´eki, Fki(x), est : F322 → F322

x 7→ Fki(x) =x+T ◦S(E(x) +ki),

o`u E est une expansion lin´eaire de F322 dans F332 qui concat`ene au vecteur d’entr´ee une combinaison affine de ses coordonn´ees, T une troncation lin´eaire de F332 dansF322 qui ´ecarte un bit du vecteur d’entr´ee et S la fonction puissance x3 sur le corpsF233.

Nous pouvons voir un tour du chiffrement `a la figure2.2.

La conception de ce chiffrement avait comme but principal de pr´esenter une m´ethode g´en´erale de construction d’un chiffrement de type Feistel r´esistant aux attaques diff´erentielles et lin´eaires. Ce chiffrement est d’ailleurs aussi connu sous le nom CRADIC (abr´eviation de

“Cipher Resistant Against Differential Cryptanalysis” en anglais [Nyb12]). Le choix de la fonctionS, qui est le seul ´el´ement non-lin´eaire de cette construction, joue un rˆole crucial dans cette direction. Pour cette raison, la fonctionx3 sur le corpsF233, qui est une fonction presque courbe, a ´et´e choisie. Ces fonctions sont connues pour avoir une bonne r´esistance contre les attaques lin´eaires et diff´erentielles.

Par ailleurs, les auteurs ont pr´esent´e des bornes inf´erieures sur la probabilit´e des meilleurs chemins diff´erentiels et lin´eaires en prouvant que ce chiffrement est r´esistant contre ces deux types d’attaques. Plus pr´ecisement, ils ont prouv´e que toutes les diff´erentielles pour 4 et 5 tours sont de probabilit´e au plus 261.

Une caract´eristique tr`es important de la fonctionx3 surF233 est que son degr´e alg´ebrique est assez bas, seulement ´egal `a 2. Cet ´el´ement a ´et´e utilis´e par Jakobsen et Knudsen pour monter une attaque diff´erentielle d’ordre sup´erieur contre le chiffrementKN.

T S E

ki

xi1 yi−1

xi yi

Figure2.2 – Le tour idu chiffrement par blocsKN Attaque contre le chiffrement KN

Nous allons d´ecrire l’attaque contre le chiffrement KN, pr´esent´ee dans [JK97]. Nous faisons cela premi`erement pour montrer le principe g´en´eral d’une attaque diff´erentielle d’ordre sup´erieur et ensuite pour montrer l’importance de l’utilisation d’une fonction de substitution de degr´e ´elev´e afin que le cryptosyst`eme r´esiste `a cette attaque.

Le but de cette attaque est de r´ecup´erer la cl´e secr`ete k du chiffrement. Elle consiste `a retrouver d’abord la sous-cl´e de 33 bits, k6, utilis´ee pour le dernier tour et `a r´ep´eter ensuite la mˆeme m´ethode pour r´ecup´erer les autres sous-cl´es. Si la taille de la cl´e n’est pas grande, alors les autres sous-cl´es peuvent ´egalement ˆetre retrouv´ees avec une recherche exhaustive.

Tr`es souvent, les deux m´ethodes sont combin´ees.

Nous consid´erons des clairs choisis, c’est-`a-dire des vecteurs d’entr´ee (x0, y0)∈F322 ×F322 du chiffrement KN dont la partie droite est ´egale `a une constante de 32 bits, y0 =c. Alors, nous pouvons d´ecrire les bits de la partie droite du chiffrement apr`es r tours, xr, comme des fonctions des bits de x0.

Nous allons suivre l’´evolution de la partie droite du chiffrement, yi. y0(x) = c

y1(x) = x+Fk1(c) :=x+c y2(x) = Fk2(x+c) +c

y3(x) = Fk3(Fk2(x+c) +c) +x+c

y4(x) = Fk4(Fk3(Fk2(x+c) +c) +x+c) +Fk2(x+c) +c

Nous allons maintenant ´evaluer le degr´e alg´ebrique dey4. Il est facile de voir que son degr´e est inf´erieur ou ´egal au degr´e de la fonction

G=Fk4◦Fk3 ◦Fk2.

2.2. QUELQUES ATTAQUES EXPLOITANT UN DEGR ´E ALG ´EBRIQUE FAIBLE 43

Dans le document The DART-Europe E-theses Portal (Page 56-60)