• Aucun résultat trouvé

Les fonctions bool´eennes cryptographiques

Le choix d’une bonne fonction bool´eenne est un probl`eme difficile et en pratique le concepteur d’un syst`eme de chiffrement a un choix relative- ment restreint. Il convient en effet d’utiliser des fonctions avec de bonnes propri´et´es pour r´esister aux nombreuses attaques d´ecouvertes au cours de l’´evolution de la cryptographie.

Une fonction cryptographique doit par exemple ˆetre ´equilibr´ee, de degr´e relativement ´elev´e et poss´eder une non-lin´earit´e ´elev´ee. Selon les cas, il existe en fait bien d’autres propri´et´es `a consid´erer comme l’autocorr´elation, la

r´esilience, le crit`ere de propagation ou les structures lin´eaires de la fonction. Pour r´esister aux attaques alg´ebriques, il y a aussi l’immunit´e alg´ebrique d´efinie au chapitre 8 et dont on discutera amplement dans cette th`ese. Un bon document de r´ef´erence sur les fonctions bool´eennes et leur propri´et´es cryptographiques est le rapport d’HDR d’Anne Canteaut [Can06].

Mais les crit`eres cryptographiques ne font pas tout, il est aussi imp´eratif que l’on puisse ´evaluer rapidement une fonction bool´eenne pour obtenir des syst`emes efficaces. Cela est particuli`erement vrai pour les chiffrements `a flot o`u l’on recherche une efficacit´e maximale. Malheureusement, il existe une borne sur la complexit´e de calcul d’une fonction bool´eenne en terme de circuit ´electronique [Sha49b, Lup58] qui montre que la plupart des fonctions sont difficiles `a calculer. L’on doit donc se restreindre `a certaines classes de fonctions :

Les fonctions `a petit nombre de variables

Lorsque le nombre de variables est faible (de l’ordre de 8) il est tout `a fait envisageable et performant de stocker le vecteur des valeurs de la fonction. On peut alors choisir n’importe quelle fonction bool´eenne. En revanche, d`es que le nombre de variables devient plus important on est oblig´e de consid´erer des fonctions avec une forte structure de mani`ere `a pouvoir les calculer efficacement.

Les fonctions avec une ANF simple

Une premi`ere solution consiste `a consid´erer des fonctions qui ont peu de termes dans leur ANF, ou bien qui admettent une ANF qui se factorise, ce qui permet un calcul rapide par le biais de la forme polynomiale. Le probl`eme est que de telle fonctions sont rarement optimales au niveau de la s´ecurit´e.

Les fonctions sym´etriques

Ce sont des fonctions qui ne d´ependent que du poids de Hamming de l’entr´ee et qui se calculent donc tr`es efficacement.

D´efinition 3.18 (fonctions sym´etriques). Une fonction bool´eenne `a m va- riables est dite sym´etrique s’il existe un vecteur de m+1 bits v = (v0, . . . , vm)

(dit vecteur de valeurs simplifi´e) tel que ∀x f(x) = v|x| .

L’impl´ementation vraiment efficace de ces fonctions a conduit `a plusieurs ´etudes sur leurs propri´et´es [Sav94, MS02, Gou04]. Plus r´ecemment, Anne Canteaut et Marion Videau ont ´etudi´e leur propri´et´es cryptographiques de mani`ere tr`es pouss´ee. Pour connaˆıtre les r´esultats de cette ´etude, le lecteur

est invit´e `a lire les articles [Vid04, CV05, Vid05b] et la th`ese de Marion Vi- deau [Vid05a]. On verra ´egalement au chapitre 10 des fonctions sym´etriques d’immunit´e alg´ebrique maximale.

Les fonctions puissances

Cette classe est d´eriv´ee de celle des fonctions puissances sur les corps finis. Ces derni`eres sont en fait des fonctions vectorielles que l’on peut rendre scalaires en consid´erant une fonction lin´eaire de la sortie. Elles demandent en g´en´eral plus de travail que les fonctions sym´etriques pour ˆetre calcul´ees mais cela reste tout `a fait raisonnable, notamment quand l’exposant est bien choisi [ABMV93]. C’est d’ailleurs ce type de fonction qui a ´et´e retenu dans les boites S de l’AES mˆeme si dans ce cas pr´ecis le nombre de variables est suffisamment faible pour pouvoir tout tabuler.

D´efinition 3.19 (fonctions puissance). Une fonction de F2m dans F2m est

dite fonction puissance si elle est de la forme x 7→ xa. L’entier a est appel´e l’exposant de la fonction.

Le choix de l’exposant est bien sˆur crucial et de nombreuses familles d’exposants ont ´et´e ´etudi´ees du point de vue cryptographique, notamment les familles d’exposants qui donnent pour m impair des fonctions avec une tr`es bonne non-lin´earit´e, ce sont des fonctions dites AB pour Almost Bent. Citons ´egalement la fonction inverse d’exposant −1 qui est utilis´ee dans l’AES.

Chapitre 4

Cryptanalyses du registre

filtr´e

Nous allons nous int´eresser maintenant `a l’une des constructions les plus simples de chiffrements `a flot. Il s’agit d’un simple registre `a r´etroaction lin´eaire filtr´e par une fonction bool´eenne. Une grande partie de cette th`ese porte sur certains types d’attaques que l’on peut mener sur ce chiffrement. Nous consid´ererons le cas d’un registre sur F2pour simplifier la pr´esentation,

la plupart des r´esultats restent n´eanmoins valides si l’on se place sur un corps plus gros.

Apr`es une pr´esentation du registre filtr´e dans la premi`ere section, nous ´enum´erons les attaques connues sur le registre filtr´e dans les sections qui suivent. Nous ne ferons qu’´evoquer ici les attaques fond´ees sur la complexit´e lin´eaire et les attaques alg´ebriques que nous verrons bien plus en d´etail dans les chapitres 7 et 8. Mentionnons ´egalement l’attaque du chapitre 6 qui se rapproche, par les m´ethodes utilis´ees, des attaques par corr´elation. Toutes les analyses pr´esent´ees ici sur le registre filtr´e consid`erent la suite chiffrante partiellement connue, il s’agit donc d’attaques `a clair connu.

4.1

Le registre filtr´e

Le registre filtr´e est constitu´e d’un registre `a r´etroaction lin´eaire (voir chapitre 2) filtr´e par une fonction bool´eenne (voir chapitre 3) comme d´ecrit sur la figure 4.1. `A chaque pas d’horloge, le LFSR est avanc´e d’un pas et certains bits de l’´etat interne du registre sont utilis´es comme entr´ees de la fonction de filtrage qui produit ainsi un bit de la suite chiffrante.

Nous utiliserons les notations de cette figure dans toute la suite de cette th`ese. Ainsi, le LFSR utilis´e est toujours de longueur l et de polynˆome g´en´erateur g(X) primitif lui-mˆeme de degr´e l. La s´equence binaire engendr´ee par ce LFSR est not´ee (st)t≥0. L’´etat initial, qui est aussi la clef secr`ete

xt

zt f g(X)

st+l−1 st+1 st

Fig. 4.1 – Le registre filtr´e. Seule une partie des bits de l’´etat courant est utilis´ee comme entr´ee xt de la fonction de filtrage f .

toujours choisie ´equilibr´ee `a m variables et de degr´e d. La position des m variables parmi les l n’a pas d’importance dans cette th`ese bien qu’elle puisse en avoir pour certaines attaques. Nous noterons t1, . . . , tm ces positions et

xt = (st+t1, . . . , st+tm) le vecteur de m bits des entr´ees de f au temps t.

Enfin, la suite chiffrante produite par ce registre filtr´e est not´ee (zt)t≥0. `A

chaque indice de temps t positif ou nul, l’´equation suivante est v´erifi´ee : f (xt) = f (st+t1, . . . , st+tm) = zt .

Cette construction n’est pas utilis´ee telle quelle en pratique, les concep- teurs de chiffrements `a flot pr´ef´erant souvent des constructions plus com- pliqu´ees qui conduisent `a de meilleures performances pour un mˆeme niveau de s´ecurit´e. N´eanmoins, du moment que le syst`eme est correctement dimen- sionn´e, les attaques actuellement connues ne mettent pas vraiment un tel syst`eme en danger.

Le registre filtr´e pr´esente en outre l’avantage d’utiliser les principaux blocs de constructions que l’on retrouve dans la majorit´e des chiffrements `a flot. Sa simplicit´e permet ainsi une meilleure compr´ehension des diff´erentes attaques qui s’appliquent bien souvent `a des syst`emes plus compliqu´es.

Par exemple, la plupart des attaques qui marchent sur le registre filtr´e s’appliquent presque directement `a tous les chiffrements `a flot dont la fonc- tion de mise `a jour de l’´etat interne est lin´eaire. On peut montrer qu’un tel syst`eme peut presque toujours se mettre sous la forme d´ecrite sur la figure 4.2 o`u l’´etat interne est en fait constitu´e de plusieurs LFSR de polynˆome g´en´erateur irr´eductible. Le cas du registre filtr´e est donc un cas particulier de cette famille g´en´erale de chiffrement `a flot.

En pratique, pour une taille de l’´etat interne fix´ee, c’est celui qui offre la meilleure s´ecurit´e. Il semble par exemple difficile d’attaquer une sous-partie du syst`eme comme cela peut arriver lorsqu’il y a plusieurs registres (voir par exemple les attaques par corr´elation d´ecrites plus loin dans ce chapitre). En revanche, avoir plusieurs registres peut conduire `a une impl´ementation plus efficace, notamment dans les syst`emes embarqu´es les plus l´egers.

LFSR n LFSR 1

f

Fig.4.2 – Forme g´en´erale d’un chiffrement `a flot avec mise `a jour de l’´etat interne de mani`ere lin´eaire.

L’id´ee d’une preuve que toute fonction de mise `a jour lin´eaire peut ˆetre repr´esent´ee par des LFSR est la suivante. Si l’on appelle L la fonction de mise `

a jour lin´eaire de l’´etat interne qui va de Fl

2 dans Fl2, on peut la repr´esenter

par une matrice. Le polynˆome caract´eristique de cette matrice nous donne alors une formule de r´ecurrence lin´eaire v´erifi´ee par l’´etat interne et donc par chacun de ses bits. On peut alors montrer (voir la discussion au d´ebut de la derni`ere section du chapitre 2) que la d´ecomposition de ce polynˆome en facteurs irr´eductibles nous donne les polynˆomes g´en´erateurs des LFSR de la figure 4.2 dont la somme de la longueur des ´etats vaut l. On peut remarquer que lorsque le polynˆome caract´eristique de la matrice est irr´eductible, on retombe sur le cas d’un seul registre filtr´e.