• Aucun résultat trouvé

Notre cryptanalyse de FLIP a ´et´e r´ealis´ee sur les instances pr´esent´ees dans une version soumise `a EUROCRYPT 2016, et dont nous avons eu connaissance lors des journ´ees Codage et Cryptographie de 2015. Nous avons alors averti les auteurs de FLIP des vuln´erabilit´es de leur syst`eme de chiffrement. Ils ont donc modifi´e les param`etres de FLIP en prenant en compte notre cryptanalyse, assurant ainsi une plus grande s´ecurit´e.

Principalement, les auteurs ont augment´e la taille des clefs d’un facteur 3 pour les mˆemes objectifs de s´ecurit´e, et ont rajout´e plusieurs fonctions de type triangulaire, afin de garder la mˆeme profondeur multiplicative, pour rester performant vis-`a-vis du chiffrement compl`etement homomorphe, tout en rajoutant des monˆomes dans la forme alg´ebrique normale. La forme des ´equations reste tr`es particuli`ere, car l’ANF de la fonction de filtrage reste tr`es creuse par rapport au nombre de variables pris en entr´ee.

Plus pr´ecis´ement, la construction g´en´erique reste la mˆeme : la fonction de filtrage est toujours une fonction bool´eenne ayant autant de variables qu’il y a de bits de clef. F est d´efinie de la mani`ere suivante : c’est toujours la somme directe de trois fonctions bool´eennes f1, f2 et f3 `a n1 (respectivement n2 et n3) variables, o`u f1 et f2sont toujours de type L et Q, mais f3 est d´efinie comme la somme de plusieurs fonctions de type T . La notation utilis´ee par les auteurs de FLIP est ∆k

nbqui d´efinit une fonction bool´eenne comme la somme directe de nb fonctions triangulaires de degr´e k.

Par exemple, on a

3

2= x0+ x1x2+ x3x4x5+ x6+ x7x8+ x9x10x11. La fonction bool´eenne ∆k

nb est donc une fonction bool´eenne `a nb ×k(k+1)2 variables. Finalement, dans la version finale de FLIP [MJSC16], les auteurs ont propos´e quatre nouvelles instances, not´ees naturellement de la mˆeme mani`ere que pr´ec´edemment : FLIP(n1, n2, ∆k

nb), o`u n1 correspond au nombre de variables de la partie lin´eaire de F , n2 `a la partie de type Q et ∆ est d´efinie ci-dessus.

Pour une s´ecurit´e revendiqu´ee de 80 bits, les auteurs ont alors propos´e deux versions concr`etes :

— FLIP(42, 128, ∆9

8), o`u N = 530 ; — FLIP(46, 136, ∆15

4 ), o`u N = 662.

Ces valeurs de 530 et 662 sont `a comparer `a l’ancienne valeur de 192, pour une mˆeme s´ecurit´e de 80 bits.

Pour une s´ecurit´e revendiqu´ee de 128 bits, les instances sont les suivantes : — FLIP(82, 224, ∆16

8 ), o`u N = 1384 ; — FLIP(86, 238, ∆23

4 ), o`u N = 1704.

Les tailles de clef consid´er´ees sont donc bien plus grandes que dans les versions pr´ec´edentes. ´Evidemment, comme ces param`etres ont ´et´e choisis pour r´esister `a notre attaque, cette derni`ere ne s’applique plus, puisque le nombre d’hypoth`eses `a effectuer devient trop important, et la taille du syst`eme augmente aussi consid´erablement.

Les tailles de clef utilis´ees peuvent paraˆıtre aberrantes en comparaison de la majorit´e des syst`emes sym´etriques, puisque l’on essaye le plus souvent de garantir un niveau de s´ecurit´e ´egal `a la taille de la clef (ce qui est loin d’ˆetre le cas ici). Cependant, il est `a noter que ce syst`eme de chiffrement n’est pas fait pour ˆetre utilis´e classiquement, mais seulement dans le cadre d’un chiffrement hybride, combin´e avec un chiffrement compl`etement homomorphe, contexte dans lequel la transmission de la clef secr`ete sym´etrique (que l’on ne fait qu’une seule fois) coˆute beaucoup moins cher qu’une profondeur multiplicative importante.

FLIP est donc extrˆemement performant en terme de profondeur multiplicative. Cependant, une autre m´etrique est `a prendre en compte quand on combine un chiffrement sym´etrique avec un chiffrement compl`etement homomorphe : le nombre de multiplications r´ealis´ees pour 1 bit de chiffr´e, ce qui dans le cas de FLIP est assez important (environ une centaine de portes AND par bit). Le pari des auteur.e.s de Rasta [DEG+18] est donc de proposer un syst`eme de chiffrement sym´etrique, dont la profondeur multiplicative est faible ainsi que le nombre de multiplications par bit de chiffr´e. Ces travaux refl`etent donc une des directions r´ecentes investigu´ees en cryptographie sym´etrique : concevoir des chiffrements adapt´es `a des contraintes extrˆemes de performance et `a des applications particuli`eres (MPC, FHE).

5.6 Conclusion

Notre travail exploite une structure tr`es particuli`ere des ´equations d´ecrivant la suite g´en´er´ee par FLIP : la pr´esence d’un tr`es faible nombre de monˆomes. C’est exactement la mˆeme caract´eristique que nous utilisons sur le PRG de Goldreich au chapitre 7, et dans une moindre mesure dans notre cryptanalyse sur Ketje au chapitre 8. Une question sous-jacente est la capacit´e `a identifier les syst`emes non-lin´eaires qui sont faciles `a r´esoudre. En effet, d’un point de vue plus g´en´eral, notre attaque peut ˆetre consid´er´ee comme une mani`ere non classique de r´esoudre un certain type de syst`emes d’´equations non-lin´eaires, largement plus efficace que la recherche exhaustive ou qu’une simple lin´earisation. Ce n’est sˆurement pas la m´ethode la plus efficace, mais notre attaque permet une nouvelle fois de constater qu’une structure suffisamment forte sur les objets que l’on ´etudie a beaucoup de chances de pouvoir ˆetre exploit´ee d’une mani`ere ou d’une autre dans un sens favorable `a l’attaquant.e. Il semble difficile en cryptographie d’avoir `

Chapitre 6

Fonctions bool´eennes `a

entr´ees restreintes

6.1 Introduction

6.1.1 Contexte

Suite `a la cryptanalyse de FLIP r´ealis´ee avec S´ebastien Duval et Virginie Lallemand, nous nous sommes rendu.e.s compte d’une particularit´e propre `a cette famille de chiffrements. En effet, comme nous l’avons vu au chapitre pr´ec´edent, FLIP poss`ede une sp´ecificit´e inhabituelle qui d´ecoule de la non mise `a jour du registre : le poids de Hamming de l’entr´ee de la fonction de filtrage est invariant tout au long du chiffrement. En effet, comme une permutation des bits de la clef est appliqu´ee `a chaque cycle d’horloge, cela ne modifie pas le poids de la clef “permut´ee”, rendant constant le poids de Hamming en entr´ee de la fonction de

filtrage tout au long du chiffrement.

Alors que l’utilisation d’un LFSR permet d’assurer diverses propri´et´es statis-tiques sur les ´etats internes successifs1, ce n’est donc plus du tout le cas pour le chiffrement FLIP, o`u nous devons analyser le chiffrement en prenant en compte cette particularit´e. En supposant que le g´en´erateur pseudo-al´eatoire est de bonne qualit´e, on peut supposer que toutes les permutations ont la mˆeme probabilit´e d’occurrence, impliquant que tout mot de poids de Hamming ´egal `a celui de la clef a la mˆeme probabilit´e de constituer l’entr´ee de la fonction de filtrage, les autres n’arrivant jamais.

Ce ph´enom`ene peut sembler anodin, cependant, il implique que les arguments de s´ecurit´e qui reposent sur les bonnes propri´et´es cryptographiques de la fonction bool´eenne n’ont plus aucun sens. L’analyse classique de s´ecurit´e d’un chiffrement `a flot consiste `a ´etudier l’´equilibre de la sortie du g´en´erateur, afin d’´eviter l’existence d’un distingueur tr`es simple, ainsi que la r´esistance aux attaques alg´ebriques et

aux attaques par corr´elation (rapides). L’argument classique consiste `a dire que les ´etats internes successifs du registre se comportent de mani`ere al´eatoire (raison pour laquelle on emploie des constructions connues telles les LFSR), puis de conclure en utilisant les propri´et´es de la fonction de filtrage (´equilibre, immunit´e alg´ebrique, r´esilience et non-lin´earit´e). Cependant, ceci ne fonctionne que si tous les ´etats internes sont ´equiprobables.

Exemple 7. Examinons un cas compl`etement d´eg´en´er´e qui suit la construction de FLIP, avec une fonction de filtrage lin´eaire `a N variables (o`u N est la taille de clef dans FLIP) d´efinie par F (x0, . . . , xN −1) = x0+x1+x2+· · ·+xN −1, c’est-`a-dire la premi`ere fonction sym´etrique ´el´ementaire. Cette fonction bool´eenne est ´equilibr´ee, et sa valeur est ´egale `a la parit´e du poids de Hamming de (x0, . . . , xN −1) ∈ {0, 1}N. Alors appliquer cette fonction de filtrage au contenu d’un LFSR engendrerait une suite ´equilibr´ee, l’appliquer dans la construction de FLIP engendre une suite constante puisque le poids de Hamming de son entr´ee est constant.

Cet exemple, certes compl`etement d´eg´en´er´e, montre cependant le fait que la fonction de filtrage soit ´equilibr´ee dans FLIP n’assure en aucun cas que la suite chiffrante n’est pas biais´ee. Donc, il est absolument n´ecessaire de trouver les crit`eres pertinents pour assurer une certaine s´ecurit´e sur le chiffrement FLIP, c’est-`a-dire affiner les crit`eres cryptographiques classiques afin que ceux-ci aient un r´eel sens dans notre contexte.

C’est ce que nous faisons dans ce chapitre : nous analysons les fonctions bool´eennes lorsque l’entr´ee est r´eduite `a un sous-ensemble donn´e, et plus par-ticuli`erement lorsque le poids de Hamming de l’entr´ee est fix´e, de mani`ere `a analyser rigoureusement la s´ecurit´e de FLIP. Nous montrerons `a quel point restreindre l’entr´ee peut d´egrader les qualit´es cryptographiques des fonctions bool´eennes : l’´equilibre, l’immunit´e alg´ebrique, et la non-lin´earit´e. Les r´esultats de ce chapitre sont le fruit d’une collaboration avec une partie des auteurs de FLIP : Claude Carlet et Pierrick M´eaux et ont ´et´e publi´es dans un article aux IACR Transactions on Symmetric Cryptology en 2017 [CMR17a].

6.1.2 Aper¸cu des crit`eres

6.1.2.1 La r´esilience

Dans le cas de FLIP, l’´etat interne est stock´e dans un unique registre. Ainsi, la d´ecomposition de l’´etat en plusieurs parties ne peut se faire qu’en exploitant les permutations. Un.e attaquant.e qui chercherait `a isoler dans une attaque de type diviser pour mieux r´egnerune partie des variables de mani`ere `a obtenir un syst`eme d’´equations probabiliste en une partie des bits de clef devrait n´ecessairement exploiter une r´egularit´e des permutations Pt. De mani`ere g´en´erale, le nombre de bits pris dans la partie lin´eaire, ainsi que les calculs que nous ferons sur le biais indiquent qu’une telle action est suffisamment coˆuteuse pour ne pas nous en pr´eoccuper. Il semble difficile `a premi`ere vue de g´en´eraliser l’attaque de Siegenthaler sur le chiffrement FLIP, mˆeme si nous verrons dans le chapitre 7 que la r´esilience peut jouer un rˆole quand mˆeme, mais dans des proportions bien

plus faibles qu’attendu. C’est la raison pour laquelle nous ne nous attarderons pas sur le crit`ere de la r´esilience dans FLIP, car il est peu pertinent.

6.1.2.2 L’´equilibre

Comme expliqu´e au chapitre 2, le premier crit`ere que l’on demande aux fonc-tions bool´eennes utilis´ees en cryptographie est l’´equilibre, afin d’´eviter l’existence de distingueurs triviaux. Alors qu’il est assez facile de construire des fonctions bool´eennes ´equilibr´ees sur tout l’espace en rajoutant simplement une variable lin´eaire ind´ependante des autres, cela ne fonctionne plus lorsque l’entr´ee est res-treinte `a un sous-ensemble quelconque. Nous nous int´eresserons donc `a l’´etude de fonctions bool´eennes dont toutes les restrictions `a une famille d’ensemble disjoints sont ´equilibr´ees. Pour le cas particulier de la restriction aux sous-ensembles des mots de poids de Hamming fix´e, nous donnerons des constructions de fonctions (presque) ´equilibr´ees au moyen de leur forme multivari´ee, i.e. de leur forme

alg´ebrique normale.

6.1.2.3 La non-lin´earit´e

La non-lin´earit´e est une quantit´e importante pour quantifier la r´esistance aux attaques par corr´elation. Ainsi, nous ´etudierons la non-lin´earit´e restreinte `a des sous-ensembles de Fn

2, et nous verrons que se restreindre `a des sous-ensembles d’entr´ees peut d´egrader fortement la non-lin´earit´e. Nous construirons notamment des fonctions courbes sur tout l’espace qui deviennent de non-lin´earit´e restreinte nulle.

6.1.2.4 Immunit´e alg´ebrique

L’immunit´e alg´ebrique est un troisi`eme param`etre qui joue un rˆole important pour quantifier la r´esistance aux attaques de type alg´ebrique puisqu’elle d´efinit le degr´e minimal du syst`eme alg´ebrique `a r´esoudre. Nous d´eriverons alors des r´esultats sur l’immunit´e alg´ebrique restreinte, en nous focalisant sur les sous-ensembles des mots de poids fix´e.