• Aucun résultat trouvé

d−1 X j=0   X y∈Ei+j τ d (−1)F (y)     .

Alors, la valeur de la fonction H au point αik qui maximise la corr´elation est maintenant d´efinie par le poids de Hamming de F restreint `a l’ensemble Sd−1

j=0Ei+jτ

d. Cet ensemble est aussi de cardinalit´e impaire, ce qui nous permet de conclure de la mˆeme mani`ere que pr´ec´edemment que, pour n’importe quelle fonction F , la corr´elation entre F et G de la forme H(xk) est au moins (1+τd)2−n. Il est important de noter que ce crit`ere est fondamentalement nouveau et n’est a priori pas li´e aux crit`eres habituels. Pour ne donner qu’un exemple, il existe des fonctions courbes qui sont constantes sur les ensembles λhατi pour τ = 2n/2+ 1 [Dil74], ce qui montre bien la n´ecessit´e de consid´erer l’ensemble des nouveaux crit`eres sur les fonctions de filtrage (ce que nous essaierons de faire dans les perspectives `a la fin de ce document) afin d’´evaluer plus en d´etail la s´ecurit´e des registres filtr´es.

4.7 Ce qu’il faut retenir

Dans ce chapitre, nous avons investigu´e la s´ecurit´e des registres filtr´es, au regard de l’´equivalence monomiale introduite par Rønjom et Cid en 2011 qui consiste `a changer la racine primitive qui d´efinit la fonction de mise `a jour de l’´etat interne. Tandis que ce type de registre ´etait consid´er´e sˆur `a partir du moment o`u la fonction de filtrage ´etait choisie avec une bonne immunit´e alg´ebrique et une bonne non-lin´earit´e, nous avons montr´e que des ph´enom`enes

plus ´etranges pouvaient apparaˆıtre.

Tout d’abord, nous avons vu que modifier la racine primitive ne modifie pas la complexit´e des meilleures attaques alg´ebriques. De plus, il est apparu que le crit`ere pertinent `a prendre en compte pour ´evaluer la s´ecurit´e au regard des attaques alg´ebriques n’est pas l’immunit´e alg´ebrique, mais l’immunit´e spectrale, pour laquelle on ne regarde plus les fonctions sous leur forme multivari´ee, mais sous leur forme univari´ee.

Ensuite, comme l’´equivalence monomiale peut modifier la non-lin´earit´e, nous avons aussi expliqu´e que le crit`ere pertinent pour assurer la r´esistance aux attaques par corr´elation n’´etait pas la non-lin´earit´e, mais la non-lin´earit´e g´en´eralis´ee, c’est-`a-dire la distance `a toutes les fonctions composantes de permutations monomiales, et non uniquement aux fonctions affines.

De plus, ce dernier crit`ere n’est pas le plus important, puisque nous avons r´eussi `a d´ecomposer l’´etat interne du registre en utilisant la structure particuli`ere

des corps finis, en exploitant les diff´erents sous-groupes multiplicatifs de F2n, afin de retrouver l’´etat initial par une attaque de type diviser pour mieux r´egner. C’est cette attaque qu’il faut principalement retenir, puisqu’elle est g´en´eralement la plus performante et met en ´evidence de potentielles failles de ce type de g´en´erateurs, sans aucun lien avec les attaques pr´ec´edentes connues.

En revanche, tout n’est pas si rose pour l’attaquant.e. Commme nous l’avons dit plusieurs fois, en pratique, la fonction de filtrage est une fonction ne pre-nant qu’une ou quelques dizaines de variables en entr´ee. Quand on examine la repr´esentation univari´ee, nous devons consid´erer la fonction comme ayant n variables o`u n est la taille du registre, typiquement 128 ou 256. Les crit`eres classiques d’immunit´e alg´ebrique et de non-lin´earit´e peuvent ˆetre naturellement ´evalu´es par un calcul sur la dizaine de variables et non en consid´erant la taille totale du registre, ce qui n’est plus le cas pour la non-lin´earit´e g´en´eralis´ee et pour la distance aux fonctions de la forme H(xk). Ceci rend donc tout calcul exact de ces nouveaux crit`eres hors de port´ee pour les tailles utilis´ees en pratique. Le simple calcul de la repr´esentation univari´ee de F comme polynˆome sur F2n

coˆuterait beaucoup trop cher : c’est d’ailleurs la raison pour laquelle nous n’avons pu donner que des exemples sur des registres de petite taille.

Finalement, la faisabilit´e de notre attaque est principalement due `a la forte structure induite par la fonction de r´etroaction particuli`ere des LFSR, qui correspond `a la multiplication par un ´el´ement primitif du corps. Paradoxalement, cette fonction de r´etroaction est utilis´ee pour assurer les propri´et´es statistiques de la suite chiffrante. Ainsi, d’un cˆot´e, nous avons besoin d’utiliser une structure math´ematique forte afin de pouvoir garantir certaines propri´et´es, cependant, cette mˆeme structure am`ene des vuln´erabilit´es inattendues. Ceci nous interroge donc sur le r´eel int´erˆet de l’utilisation de registres `a d´ecalage `a r´etroaction lin´eaire.

`

A moins d’utiliser par exemple un registre de taille 521, puisque le nombre de Mersenne 2521− 1 est un nombre premier.

Chapitre 5

Cryptanalyse de FLIP

Dans le chapitre pr´ec´edent, nous ´etudiions les LFSR filtr´es. Ceux-ci ne sont g´en´eralement pas utilis´es directement, mais de nombreux algorithmes pratiques peuvent ˆetre vus comme des variantes du LFSR filtr´e. Ceci implique que les attaques g´en´eriques d´ecrites au d´ebut du chapitre pr´ec´edent peuvent ˆetre adapt´ees `

a des cas pratiques. Un exemple est l’algorithme de chiffrement FLIP.

Dans ce chapitre, nous d´ecrivons une attaque sur la famille de chiffrements `a flot nomm´ee FLIP [MJSC16]. C’est lors des journ´ees nationales Codage et Cryptographie de 2015 que Pierrick M´eaux pr´esenta le syst`eme de chiffrement FLIP, adapt´e aux besoins sp´ecifiques du chiffrement compl`etement homomorphe hybride. En collaboration avec S´ebastien Duval et Virginie Lallemand, nous avons cryptanalys´e cette famille de chiffrement puis communiqu´e aux auteurs nos r´esultats, ce qui leur a permis de modifier leur algorithme, qui sera publi´e in fine `a la conf´erence EUROCRYPT en 2016 par P. M´eaux, A. Journault, F.X. Standaert et C. Carlet. Notre travail donna lieu `a l’article intitul´e Cryptanalysis of the FLIP Family of Stream Ciphers [DLR16] `a la conf´erence CRYPTO en 2016 [DLR16]. Ainsi, les param`etres attaqu´es correspondent aux param`etres initiaux pr´esent´es aux journ´ees Codage et Cryptographie et non aux param`etres de la version finale publi´ee `a EUROCRYPT.

5.1 Le chiffrement compl`etement homomorphe

5.1.1 D´efinitions

D´efinition 5.1. Un syst`eme de chiffrement compl`etement homomorphe (FHE -Fully Homomorphic Encryption) est un syst`eme de chiffrement asym´etrique pour lequel pour toute fonctionf de C × C dans C, la propri´et´e suivante est v´erifi´ee :

∀C1, C2∈ C, D(f (C1, C2)) = f (D(C1), D(C2))

En d’autres termes, la fonction de d´echiffrement d’un syst`eme de chiffrement compl`etement homomorphe doit commuter avec deux op´erations (la multiplica-tion et l’addimultiplica-tion) sur l’espace des chiffr´es et l’espace des clairs. Cette propri´et´e permet de d´el´eguer des calculs `a un serveur, sans que celui-ci n’ait acc`es aux donn´ees en entr´ees de la fonction d’´evaluation, ni au r´esultat de celle-ci.

C’est en 2009 que Craig Gentry proposa le premier syst`eme de chiffrement asym´etrique compl`etement homomorphe [Gen09] bas´e sur le probl`eme difficile de recherche de plus court vecteur dans un r´eseau euclidien. Sans rentrer dans les d´etails, ce type de cryptosyst`eme produit le chiffr´e `a partir d’´el´ements d’un r´eseau euclidien auxquels on ajoute une erreur selon une certaine distribution. La clef priv´ee correspond `a une “bonne” base d´efinissant ledit r´eseau et la clef publique `a une “mauvaise” base. Alors, retrouver le point du r´eseau auquel on a ajout´e l’erreur est facile avec la bonne base est difficile avec la mauvaise base, ces deux bases d´efinissant le mˆeme r´eseau euclidien. Alors que l’addition n’augmente que tr`es peu le niveau d’erreur dans les chiffr´es, il n’en est pas de mˆeme pour la multiplication. Ainsi, `a partir d’un certain nombre de multiplications le niveau d’erreur augmente trop, rendant impossible le d´echiffrement. Ce probl`eme est r´esolu par l’utilisation d’une technique appel´ee bootstrapping, qui permet de limiter le niveau d’erreur. Un des probl`emes du chiffrement compl`etement homomorphe est son taux d’expansion : pour chiffrer 1 bit, la taille du chiffr´e correspondant est de l’ordre d’une centaine de kilo-octets. Il est donc impossible de transmettre un message chiffr´e avec un syst`eme de chiffrement asym´etrique compl`etement homomorphe.

5.1.2 Le chiffrement hybride

Cependant, ce probl`eme peut ˆetre r´esolu en utilisant une technique hybride, qui combine un syst`eme de chiffrement compl`etement homomorphe asym´etrique avec un cryptosyst`eme sym´etrique [NLV11].

Consid´erons un algorithme de chiffrement asym´etrique compl`etement homo-morphe donn´e par HEpk la fonction de chiffrement associ´ee `a la clef publique d’Alice, ainsi qu’un algorithme de chiffrement sym´etrique d´efini par EK, la fonc-tion de chiffrement associ´ee `a la clef secr`ete sym´etrique d’Alice. La clef secr`ete d’Alice K est ´evidemment ind´ependante de sa clef priv´ee sk utilis´ee pour le chiffrement asym´etrique compl`etement homomorphe.

Alors le fonctionnement du chiffrement homomorphe hybride est le suivant (voir figure 5.1) :

— Alice chiffre sa clef secr`ete sym´etrique, avec le chiffrement asym´etrique compl`etement homomorphe : HEpk(K), et envoie cette valeur au serveur. — Alice chiffre ses donn´ees m `a l’aide du chiffrement sym´etrique : EK(m), et

envoie cette valeur (accompagn´ee de la fonction d’´evaluation) au serveur. — Le serveur n’a pas acc`es `a K, mais seulement `a HEpk(K). Il ne peut donc pas retrouver les donn´ees m, cependant, il peut ´evaluer homomorphique-ment, en utilisant les propri´et´es de l’algorithme asym´etrique, le syst`eme de

K E EK(m) EK(m) HEpk HEpk(K) HE.EvalE−1 HEpk(m) HEpk(f (m)) f Alice Serveur

Figure 5.1 –Sch´ema g´en´erique du chiffrement homomorphe hybride.

d´echiffrement sym´etrique : EK−1. Ainsi, le serveur est capable de calculer HEpk(m), ce qui lui permettra ensuite d’appliquer la fonction d’´evaluation demand´ee par Alice.

— Alice re¸coit le r´esultat de l’´evaluation de f , chiffr´e homomorphiquement. Il ne lui reste plus qu’`a d´echiffrer `a l’aide de sa clef priv´ee sk.

5.1.3 Les chiffrements sym´etriques adapt´es

Sans rentrer dans les d´etails, la profondeur multiplicative du circuit du chif-frement sym´etrique utilis´e dans un chifchif-frement hybride joue un rˆole fondamental dans le coˆut total du chiffrement. Par exemple, utiliser le standard AES dans le cadre du FHE est extrˆemement coˆuteux [GHS12, CCK+13, DHS16]. Les chif-frements par bloc `a bas coˆut propos´es r´ecemment ne sont pas non plus une bonne solution car ils comportent trop d’it´erations [DSES14, LN14] et peuvent mˆeme amener `a de bien moins bonnes performances que l’AES. En revanche, plusieurs constructions existantes sont mieux adapt´ees. Nous pouvons citer par exemple le chiffrement par bloc appel´e LowMC [ARS+15] (en raison justement de la faible profondeur multiplicative du circuit correspondant), qui fut la premi`ere solution apport´ee pour un chiffrement sym´etrique adapt´e `a la fois au chiffrement homomorphe, mais aussi `a la probl´ematique de MPC (Multi-Parti Computation).

Cependant, les chiffrements par bloc ne sont pas les seules options possibles, et il apparaˆıt que le fonctionnement intrins`eque des chiffrements `a flot permet de bien mieux contrˆoler la profondeur multiplicative, ce qui est tr`es int´eressant

dans le cadre du FHE. Ainsi, dans un article de 2016 [CCF+16], A. Canteaut et ses coauteur.e.s propos`erent d’utiliser une version modifi´ee (Kreyvium) d’un finaliste de la comp´etition eSTREAM : Trivium [Can06].

Finalement, `a EUROCRYPT 2016, Pierrick M´eaux et ses coauteurs ont propos´e la famille de chiffrement `a flot FLIP, dont ils avaient pr´esent´e une premi`ere version aux journ´ees Codage et Cryptographie en 2015. Cependant, cette proposition initiale souffre principalement de l’existence d’un syst`eme d’´equations trop sp´ecifique, introduisant des faiblesses que nous d´ecrivons dans ce qui suit.