• Aucun résultat trouvé

Les r´eseaux NTRU

5.5 Comparaison avec les attaques pr´ec´edentes bas´ees sur les r´eseaux

5.5.2 Les r´eseaux NTRU

5.5- Comparaison avec les attaques pr´ec´edentes bas´ees sur les r´eseaux 95

Valeur de (N, q) (107,64) (167,128) (503,256) Facteur de Hermite requis (1.00976)2N (1.00729)2N (1.00276)2N

Tab. 5.3 – Facteur de Hermite requis pour r´esoudre les trois jeux de param`etres historiques de NTRU.

BKZ projet´e Nous avons construit de nouveaux algorithmes, inspir´es par lafigure 5.14 page 93: l’id´ee ´etait donc de r´eduire artificiellement la dimension du r´eseau sur lequel BKZ travaille r´eel-lement, afin que le temps de calcul deviennent raisonnable sur des tailles de bloc plus ´elev´ees, et avec une tr`es bonne constante. L’algorithme consiste donc en :

– Pr´e-calcul : r´eduire la base publique de NTRU-107 avec BKZ par taille de blocs croissante pendant quelques heures, puis prendre la matrice en cours de r´eduction. En pratique, on peut se contenter d’une base en cours de BKZ-24 r´eduction.

– Puis, `a partir de ce moment l`a, on ne travaille plus que sur le r´eseau projet´e sur l’orthogonal des 107 premiers vecteurs (on a choisi 107 d’apr`es la pente de la GSL) : cela donne un r´eseau projet´e de dimension 107 (suffisamment petit) dont les plus courts vecteurs sont tr`es probablement les projections des plus courts vecteurs du r´eseau initial (de dimension 214).

– On lance BKZ sur le r´eseau projet´e par taille de bloc croissante jusqu’`a ce qu’un vecteur anormalement court soit trouv´e : puisque le r´eseau est de dimension bien inf´erieure `a celle du r´eseau initial, lafigure 5.14 page 93implique que l’on peut atteindre des tailles de bloc beaucoup plus importantes. En pratique, on peut sans probl`eme atteindre la taille de bloc 40.

Si l’un des vecteurs courts du r´eseau projet´e est bien une projection d’un plus court vecteur du r´eseau total, on peut retrouver ce dernier par r´eduction faible.

Concr`etement, la mani`ere la plus efficace de forcer les versions de LLL et BKZ de la librairie NTL `a ne travailler que sur le projet´e d’un r´eseau (disonsπp(L)) consiste `a faire les modifications suivantes dans le code source de LLL :

– Calculer initialement les coefficients de Gram Schmidt et size-r´eduire toute la base initiale avec la pr´ecision flottante maximale (c’est `a dire RR)

– Commencer la boucle principale de LLL `a partir de l’indicepau lieu de 1.

– Ne jamais tester la condition de Lov´asz entre les indicesp−1 et p, toujours faire comme si cette condition ´etait remplie `a cette position. Tester les conditions de Lov´asz normalement sur toutes les autres positions. Cela force l’indice courant de LLL `a rester sup´erieur `a p, et donc `a travailler dans le projet´e.

– effectuer toutes les size-r´eductions du vecteur courant par rapport `a tous les autres vecteurs de la base, y compris ceux qui sont avant la positionp. Puisque l’on ne calcule pas les projet´es explicitement, mais que l’on travaille sur les vecteurs complets, ceci garantit que les vecteurs manipul´es ne grossissent pas d´emesur´ement.

Pour BKZ, les seules modifications pour travailler dans lap i`eme projection sont d’appeler Pro-jectedLLL `a la place de LLL, et modifier les bornes des indices courants, afin qu’ils d´ecrivent l’intervalle [p, n−1] au lieu de [1, n−1].

Cette exp´erience a fonctionn´e sur les trois r´eseaux NTRU : quel que soit le niveau de r´eduction initial du pr´e-calcul, nous avons toujours pu retrouver au moins une des rotations de la cl´e secr`ete.

La version de BKZ projet´e a ´et´e lanc´ee par taille de blocs croissants, et a trouv´e la cl´e entre les blocs 35 et 41 sur le r´eseau projet´e. Le temps de calcul total pour faire le pr´e-calcul puis retrouver la cl´e est de quelques heures. Par comparaison, une r´eduction BKZ pure sur l’ensemble du r´eseau n’a permis d’en r´esoudre qu’un sur les trois.

BKZ recycl´e D`es lors qu’on lance un algorithme de r´eduction de r´eseau en tr`es grande dimension, il est difficile d’allier une bonne qualit´e de r´eduction et un bon temps de calcul. Mais comme l’a montr´e l’exemple de NTRU, on n’a pas toujours besoin que l’algorithme termine la r´eduction : s’il trouve la cl´e dans les premi`eres heures d’une ex´ecution infinie, c’est largement suffisant. Ainsi, l’id´ee n’est plus d’essayer `a tout prix d’obtenir un algorithme qui termine, mais d’optimiser au maximum les premi`eres ´etapes, et r´ealiser le plus gros de la r´eduction le plus tˆot possible. Dans cet algorithme compl`etement heuristique, que nous avons baptis´e BKZ recycl´e, nous reprenons la notion de gros blocs entrelac´es de la semi-bloc 2kr´eduction de Schnorr : on va r´eduire des gros blocs de taille entre 70 et 80 qui se chevauchent de moiti´e, mais au lieu d’effectuer une HKZ r´eduction ou une Rankin r´eduction, ce qui n’est pas faisable, on utilise ce qu’on peut faire de mieux : une BKZ-r´eduction en taille de bloc 30 `a 35 combin´ee `a une DEEP r´eduction.

Sur tous les r´eseaux NTRU107 (randomis´es ou non), l’algorithme BKZ-recycl´e a trouv´e non seulement la cl´e priv´ee, mais mˆeme toutes les rotations de la cl´e priv´ee. Cet algorithme semble donc meilleur que la version seulement projet´ee de BKZ. De plus, mˆeme les versions en simple pr´ecision FP (utilisant des long et des double) permettent de retrouver la cl´e secr`ete. En partant

5.5- Comparaison avec les attaques pr´ec´edentes bas´ees sur les r´eseaux 97

de la base publique, le temps de calcul pour trouver la cl´e (en pr´ecision QP) est aussi de quelques heures. Il faut environ 24 heures de calcul pour retrouver les autres rotations. En partant d’une base randomis´ee puis BKZ-22 r´eduite (donc avec des vecteurs globalement plus gros), il faut entre 24 et 48 heures pour retrouver la cl´e, et les autres rotations suivent 24h plus tard.

Sur les r´eseaux al´eatoires, les param`etres les plus efficaces semblent correspondre `a des gros blocs de taille 80 sur lesquels BKZ est lanc´e en taille de bloc 30 `a 35. Il faut bien remarquer que cet algorithme ne termine en g´en´eral jamais : il faut donc monitorer la base en cours de r´eduction et arrˆeter la r´eduction manuellement. C’est ainsi que l’on obtient exp´erimentalement le meilleur facteur de Hermite, qui reste malgr´e tout sup´erieur `a la pr´ediction de 1.01n.

Tout cela confirme que le facteur de Hermite 1.01n donne une bonne id´ee de ce que l’on peut atteindre en pratique. De plus, mieux connaˆıtre les vraies performances et les limites des algorithmes courants permet de construire de meilleurs algorithmes.

Troisi` eme partie

Etude sp´ ´ ecifique de NTRU

99

Introduction

Nous nous int´eressons ici `a la cryptanalyse de NTRU. Dans lechapitre 6, nous nous pencherons sur la propri´et´e de symplecticit´e du r´eseau NTRU : une isom´etrie entre le r´eseau primal et le dual permet de reconstruire la deuxi`eme moiti´e d’une base lorsqu’on connaˆıt la premi`ere moiti´e. De plus, on remarque que si la premi`ere moiti´e est tr`es r´eduite, alors la base compl´et´ee par propri´et´e de symplecticit´e est aussi compl`etement r´eduite. Cela sugg`ere que l’on peut construire des algorithmes de r´eduction sp´ecialis´es pour les r´eseaux NTRU, dont la complexit´e correspondrait `a celle de la r´eduction de r´eseaux de dimension moiti´e. Bien que tr`es orient´e sur le cas particulier de NTRU, les techniques utilis´ees dans ce chapitre ont des applications dans un cadre beaucoup plus g´en´eral : par exemple, la notion de dual renvers´e s’applique `a tous les r´eseaux, et permet de beaucoup simplifier les preuves des algorithmes qui utilisent la dualit´e (comme la slide r´eduction par exemple). C’est aussi la pr´esence du demi-espace secret de NTRU (l’espace engendr´e par les rotations de la cl´e secr`ete, dont le volume est tr`es petit) qui a inspir´e la Rankin-r´eduction.

Le dernier chapitre du m´emoire se distingue des autres par le fait qu’il n’utilise pas du tout de r´eseaux. En effet, d’autres moyens que la r´eduction de r´eseaux permettent d’attaquer NTRU.

Comme nous l’avions vu dans le premier chapitre, il y a beaucoup plus de niveaux de s´ecurit´e que l’on peut tenter d’atteindre, certains de ces niveaux permettent `a l’attaquant d’avoir acc`es

`a des oracles. Dans lechapitre 7, nous ´etudions une s´erie d’attaques `a chiffr´e choisis contre des versions anciennes de NTRU. Ces attaques exploitent une faiblesse au niveau de l’algorithme de d´echiffrement, qui permettaient `a un attaquant mal intentionn´e de retrouver la cl´e en un nombre raisonnable de requˆetes.

101

Chapitre 6

R´ eduction symplectique de r´ eseau

Devenir son propre reflet dans un miroir et observer celui que nous croyons ˆetre, voil`a une inversion qui ne manque pas de profondeur et qui m´erite r´eflexion ! inspir´e de : L’exercice du miroir,www.cheztom.com

Ce chapitre pr´esente les r´esultats de l’articleSymplectic lattice reduction and NTRU [25], r´e-dig´e en collaboration avec Nick Howgrave-Graham, and Phong Q. Nguyen, qui a ´et´e pr´esent´e `a Eurocrypt 2006. Cet article est en fait la toute premi`ere publication de ma th`ese, et c’est celui dans lequel nous introduisons entre autres les notions de dual renvers´es et dual symplectiques, qui ont

´et´e r´eutilis´ees dans un cadre beaucoup plus g´en´eral dans la Slide-r´eduction. La version anglaise est disponible dans lesProceedings of EUROCRYPT ’06.

Nous avons pr´esent´e le cryptosyst`eme NTRU au chapitre 1 et son interpr´etation en termes de r´eduction de r´eseau au chapitre 2. Ici, on ´etudie principalement une particularit´e importante des r´eseaux NTRU : plus pr´ecis´ement, nous montrons qu’ils sont proportionnels aux r´eseaux dits symplectiques. Cela sugg`ere d’adapter la th´eorie classique de r´eduction de r´eseau au cas particu-lier des r´eseaux symplectiques, aussi bien d’un point de vue math´ematique qu’algorithmique. Tout d’abord, nous montrons que les techniques d’orthogonalisation (Cholesky, Gram-Schmidt, d´ecom-position QR, etc.) qui sont au coeur de tous les algorithmes de r´eduction de r´eseau connus, sont compatibles avec la symplecticit´e, et qu’ils peuvent ˆetre consid´erablement acc´el´er´es sur des ins-tances symplectiques. ´Etrangement, en faisant cela, nous avons aussi mis en ´evidence une variante enti`ere de Gram-Schmidt, qui est plus rapide que les algorithmes usuels sur toutes les matrices.

Enfin, nous ´etudions des variantes symplectiques du c´el`ebre algorithme LLL, et obtenons un taux d’acc´el´eration int´eressants.

6.1 Introduction

Comme nous l’avons vu au chapitre 2, la s´ecurit´e de NTRU repose sur la difficult´e de deux c´e-l`ebres probl`emes de r´eseaux : le CVP et le SVP, dans une classe tr`es particuli`ere de r´eseaux, appel´ee r´eseaux de convolution modulaire dans [66]. Plus pr´ecis´ement, les auteurs de NTRU, Coppersmith et Shamir ont constat´e [20] que des algorithmes id´eaux de r´eduction de r´eseau retrouveraient la cl´e secr`ete `a partir de la cl´e publique. Cela ne signifie pas n´ecessairement que NTRU n’est pas sˆur, puisqu’il y a un foss´e th´eorique et exp´erimental entre les algorithmes de r´eduction existants (comme LLL [60] ou ses am´eliorations par blocs [91]) et une r´eduction de r´eseau id´eale (qui r´e-soudrait un probl`emeN P-complet). Cela ne signifie pas non plus que la s´ecurit´e des primitives NTRU est strictement ´equivalente `a la difficult´e des probl`emes de r´eseaux. En tout cas, NTRU est jusqu’`a pr´esent le seul cryptosyst`eme reposant sur des r´eseaux, qui fonctionne en grande di-mension sans sacrifier les performances. En fait, la plupart des attaques pratiques contre NTRU ont pu compl`etement court-circuiter la difficult´e calculatoire des probl`emes de r´eseaux. Cela fut notamment le cas des attaques exploitant les erreurs de d´echiffrement [50] surNTRUEncrypt,

103

les attaques [30,32] sur l’ancˆetre NSS [46] deNTRUSign[44], ainsi que l’attaque r´ecente [72] sur NTRUSign[44] sans perturbation. Presque dix ans apr`es la cr´eation de NTRU [45], aucune fai-blesse significative des r´eseaux NTRU n’a ´et´e trouv´e, en d´epit de la forme tr`es particuli`ere de leurs bases : les bases publiques et priv´ees NTRU sont toutes les deux des matrices 2N×2Ncompos´ees de 4 blocsN×N circulants. C’est cette repr´esentation compacte qui rend NTRU beaucoup plus efficace que les autres cryptosyst`emes `a base de r´eseaux ou de sac-`a-dos. (voir la revue [77]). Une question ouverte fondamentale est de savoir si cette forme tr`es particuli`ere rend les r´eseaux NTRU plus simples `a r´eduire ou non.

Dans ce chapitre, nous allons exploiter la structure des r´eseaux NTRU dans les algorithmes de r´eduction de r´eseaux. Pour commencer, nous observons une propri´et´e particuli`ere des r´eseaux NTRU : nous montrons que les r´eseaux NTRU sont proportionnels aux r´eseaux ditssymplectiques (voir la revue [9]). Comme leur nom l’indique, les r´eseaux symplectiques sont associ´es au groupe symplectique classique [103] : un r´eseau est dit symplectique s’il a au moins une base dont la matrice de Gram est symplectique, ce qui peut seulement se produire en dimension paire. De tels r´eseaux sontisoduaux : il existe une isom´etrie du r´eseau sur son dual. Il se trouve que la plupart des r´eseaux bien connus en petite dimension paire sont proportionnels `a des r´eseaux symplectiques, par exemple les r´eseaux racinesA2,D4andE8, le r´eseau de BarnesP6, le r´eseau de Coxeter-ToddK12, le r´eseau de Barnes-WallBW16 et le r´eseau de Leech Λ24(voir la bible des r´eseaux [18]). D’autre part, il y a une bijection entre les r´eseaux symplectiques et les vari´et´es ab´eliennes principalement polaris´ees, parmi lesquelles les jacobiens forment un cas int´eressant (voir [13]). Ceci a motiv´e l’´etude des r´eseaux symplectiques en g´eom´etrie des nombres.

Toutefois, `a notre connaissance, les r´eseaux symplectiques n’ont jamais ´et´e ´etudi´es dans le cadre de la th´eorie de la r´eduction. L’objectif `a long terme de cet article est d’explorer le nouveau concept de r´eduction de r´eseau symplectique dans lequel la th´eorie classique de la r´eduction est adapt´ee aux r´eseaux symplectiques, d’un point de vue aussi bien math´ematique qu’algorithmique, dans le but d’acc´el´erer les algorithmes de r´eduction. Dans une premi`ere ´etape, nous montrons que le processus d’orthogonalisation de Gram-Schmidt – qui est au cœur de tous les algorithmes de r´eduction de r´eseaux connus – pr´eserve la symplecticit´e. Ceci est rendu possible par un changement l´eger mais essentiel dans la d´efinition classique d’une matrice symplectique, ce qui est heureusement compatible avec la th´eorie standard de groupe symplectique. Nous exploitons ensuite cette propri´et´e pour acc´el´erer son calcul dans les r´eseaux symplectiques. Ce faisant, nous d´eveloppons en fait une m´ethode nouvelle plus rapide pour calculer Gram-Schmidt entier, qui est applicable `a toutes les matrices, et non seulement aux matrices symplectiques. La m´ethode est bas´ee sur la dualit´e : elle est plus rapide que la m´ethode classique, parce qu’elle r´eduit significativement le nombre de divisions par des grands entiers. Quand on applique cette approche aux matrices symplectiques, une acc´el´eration suppl´ementaire est possible grˆace aux liens entre symplecticit´e et dualit´e : en pratique, la m´ethode devient alors environ 30 fois plus rapide que la m´ethode classique de Gram Schmidt, ce qui correspond environ au temps qu’il faudrait pour une matrice de dimension moiti´e.

Finalement, nous ´etudions les versions symplectiques du c´el`ebre algorithme de r´eduction de r´eseau LLL [60] et obtenons un facteur d’acc´el´eration de 6 pour les r´eseaux NTRU de taille standard.

Nous nous restreignons aux versions dites enti`eres de LLL pour faciliter les comparaisons : il serait difficile de comparer deux versions flottantes [78] qui ont des propri´et´es de stabilit´e diff´erentes. Ce travail sugg´ererait que les algorithmes de r´eduction de r´eseaux pourraient ˆetre optimis´es pour les r´eseaux NTRU de telle mani`ere `a ce que les r´eseaux NTRU de dimension 2nprendraient plus de temps `a r´eduire qu’un r´eseau de dimensionαnpour α <2. C’est le cas pour l’orthogonalisation de Gram-Schmidt et LLL.