• Aucun résultat trouvé

Optimisations

6.6 LLL symplectique

6.6.4 Optimisations

Les deux optimisations suivantes ne modifient pas les sorties de l’algorithme, mais acc´el`erent consid´erablement l’algorithme en pratique :

r´eduction pr´ecoce SoitCi le bloc central de dimension 2ide la base en entr´ee pour 26i6n.

Supposons que l’algorithme 21 ait trouv´e la matrice unimodulaireUp∈Sp(2p,Z) telle que UpCp

soit symplectic-LLL r´eduite, et la GSO r´eduiteλp. Si on veut r´eduire le bloc centralCp+1 initial en utilisant l’algorithme 21, on sait que quand le compteurk atteintp+ 1 pour la premi`ere fois, l’´etat courant (Up+1 etλp+1) est :

Up+1=

1 0 0

0 Up 0

0 0 1

 and λp+1=

λnp,np 0 Upλ.,np λp λn+p+1,np 0

.

On lance donc l’algorithme 21 sur λp+1 avec Uinit = Up+1 pour finir la r´eduction. En utilisant cette astuce simple pourp= 2 `a n, les premi`eres op´erations de l’algorithme 21s’appliquent `a des matrices de dimensions inf´erieures `a n. Sur des matrices NTRU, l’ex´ecution est presque deux fois plus rapide que le LLL symplectique de base. Dans l’algorithme standard LLL, l’analogue est de mettre `a jour seulement les ppremi`eres lignes du GSO, o`u pest l’indice maximum des vecteurs d´ej`a modifi´es par la boucle principale de LLL depuis le d´ebut de l’ex´ecution.

Matrices triangulaires enti`eresCette derni`ere optimisation ne fonctionne que sur les matrices pour lesquelles chaquekbkk2est un entier (au d´epart). C’est le cas de toutes les matrices NTRU `a cl´e publique, et de toutes les matrices triangulaires enti`eres. Le r´esultat cl´e est que dans l’algorithme pr´ec´edent, chaqueλp est initialement divisible parDnp=Qnp

i=1 kbik2. La seule am´elioration est d’utiliser la GSO r´eduiteλp/Dnp`a la place deλp dans l’algorithme pr´ec´edent. Alors les premi`eres transformations de l’algorithme 21s’appliquent aux matrices de dimensions inf´erieures, mais aussi avec des coefficients plus petits. Sur les matrices NTRU, l’ex´ecution devient presque 4 fois plus rapide que le LLL symplectique basique.

6.6- LLL symplectique 117

Tab.6.3 – R´esultats exp´erimentaux (sur Opteron 2GHz avec NTL 5.4 32-bit ) n

demi-dim.

q max.

coefs

Standard LLLen secondes

SympLLL Red.

pr´ecoce.

en secondes

SympLLL optim.

triang.

enti`ereen secondes

speedup Red.

pr´ecoce

speedup triang.

enti`ere

40 64 3.09 2.27 1.98 1.36 1.56

83 64 26.89 6.62 4.46 4.06 6.02

107 64 44.7 6.13 4.51 7.29 9.91

167 128 410.8 98.86 65.40 4.15 6.28

253 128 2028 553 294 3.66 6.89

317 128 3688 1131 519 3.26 7.10

Chapitre 7

Nouvelles attaques ` a chiffr´ es choisis contre NTRU

Soyons pragmatiques : Pourquoi s’acharner contre une porte blind´ee de 10m lorsque la fenˆetre est grande ouverte ?

Ce dernier chapitre est une adaptation fran¸caise de l’article new chosen ciphertext attacks on NTRU [26], dans les proceedings de PKC 07. Cet article a ´et´e ´ecrit en collaboration avec Phong Nguyen, et a ´et´e pr´esent´e `a PKC 2007, `a P´ekin.

Ce chapitre est tr`es diff´erent de tous les autres, car il ne parle quasiment pas de r´eseaux. En effet, tenter de r´esoudre le probl`eme du plus court vecteur pour casser NTRU aurait ´et´e un r´esultat algorithmique puissant avec des cons´equences bien plus vastes que le simple cadre de NTRU, sans doute mˆeme un r´esultat trop fort pour ˆetre r´ealiste. Dans ce chapitre, nous montrons qu’il y a d’autres mani`eres d’attaquer un cryptosyst`eme, beaucoup plus d´etourn´ees : ici, il s’agit de montrer

`a quel point une faille dans l’algorithme de d´echiffrement peut an´eantir une bonne partie de la s´ecurit´e.

Nous pr´esentons de nouvelles attaques efficaces `a chiffr´es choisis qui permettent de retrouver la cl´e priv´ee surNTRUEncrypt. Nos attaques sont en quelque sorte interm´ediaires entre les at-taques `a chiffr´es choisis surNTRUEncryptpubli´ees pr´ec´edemment `a CRYPTO ’00 et CRYPTO

’03. Plus exactement, les attaques ne fonctionnent qu’en pr´esence d’erreurs de d´echiffrement ; nous ne soumettons que des chiffr´es valides `a l’oracle de d´echiffrement, dans lesquels les messages clairs sont choisis al´eatoirement et uniform´ement ; et le nombre de requˆetes `a l’oracle est petit. R´eci-proquement, nos attaques peuvent aussi avoir une signification en termes de s´ecurit´e prouv´ee : en pratique, le fait d’avoir acc`es `a l’oracle de d´echiffrement dans une instance de NTRUEncrypt qui contient des erreurs de d´echiffrement permet de retrouver la cl´e priv´ee. Par exemple, dans le premier jeu de param`etres NTRU-1998, la r´eponse de l’oracle de d´echiffrement sur une seule erreur de d´echiffrement permet de retrouver la cl´e priv´ee.

7.1 Introduction

Le probl`eme difficile sur lequel les primitives NTRU reposent peut s’exprimer de diff´erentes mani`eres en r´eduction de r´eseau, en th´eorie des codes, et en d´ecomposition de polynˆomes dans un anneau non euclidien. Depuis plus de dix ans, aucun moyen raisonnable n’a ´et´e trouv´e pour r´esoudre ce genre de probl`emes, ni sur des ordinateurs actuels, ni mˆeme sur des ordinateurs quantiques.

Cependant, nous avons vu au chapitre 1 que les notions de s´ecurit´e li´ees `a un cryptosyst`eme peuvent ˆetre bien plus fines que la seule impossibilit´e d’inverser la cl´e publique. En particulier, il est possible qu’un attaquant qui observe le fonctionnement d’un oracle de signature ou de d´echiffrement obtienne des informations sur la cl´e priv´ee.

Alors que la cryptanalyse du sch´ema de signature de NTRU a abouti (la version basique de NTRUSign a ´et´e cass´ee r´ecemment dans [72], ainsi que toutes les versions de son ancˆetre NSS

119

dans [30, 32]), on remarque qu’`a l’oppos´e, aucune faiblesse signifiante n’a ´et´e trouv´ee contre le sch´ema de chiffrement NTRU. `A ce jour, les attaques les plus dangereuses contreNTRUEncrypt sont vraisemblablement des attaques `a chiffr´es choisis permettant de retrouver la cl´e. La premi`ere d’entre elles a ´et´e publi´ee par Jaulmes and Joux [53] `a CRYPTO ’00, et utilisait un petit nombre de requˆetes `a l’oracle. Cependant, ces attaques utilisaient des chiffr´es invalides, avec une forme tr`es particuli`ere, et ne semblent pas se g´en´eraliser `a toutes les instances de NTRU. En particulier, il est facile de les contrer en utilisant de simples paddings (qui sont r´eguli`erement utilis´es dans les cryptosyst`emes `a cl´e publique), qui sont de toutes fa¸con n´ecessaires pour atteindre de fortes notions de s´ecurit´e. `A CRYPTO ’03, Howgrave-Grahamet al.[50] ont constat´e qu’une propri´et´e

´etrange de NTRUEncrypt, connue sous le nom d’erreurs de d´echiffrement donnait lieu `a des attaques `a chiffr´es choisis bien plus puissantes. Malheureusement, jusqu’`a la publication de [50]

(et mˆeme [49]), tous les jeux de param`etres propos´es par NTRU pouvaient mener `a des erreurs de d´echiffrement : le chiffr´e d’un message choisi al´eatoirement pouvait dans certains cas ne pas se d´echiffrer correctement avec l’algorithme de d´echiffrement de NTRU. Bien que la probabilit´e d’apparition d’une erreur de d´echiffrement soit faible, c’´etait malgr´e tout suffisant (entre 212 et 240) pour qu’on ne puisse pas ignorer le ph´enom`ene en pratique : en effet, un attaquant peut r´eellement collecter des erreurs de d´echiffrement al´eatoires en pratique. La plus puissante attaque

`

a chiffr´es choisis de [50] permettait alors d’attaquer toute instance de NTRU, ind´ependamment du sch´ema de padding utilis´e, et n’utilisait qu’un faible oracle de d´echiffrement qui d´ecidait si un chiffr´e valide donn´e se d´echiffrait correctement ou non. Cependant, cette attaque n´ecessitait au pr´ealable de r´ecup´erer un tr`es grand nombre d’erreurs de d´echiffrement (estim´e `a environ un million par [50]), et n’a pas ´et´e compl`etement impl´ement´ee. En particulier, la derni`ere ´etape de l’attaque repose sur un algorithme sophistiqu´e de Gentry et Szydlo [32] (con¸cu initialement pour attaquer le sch´ema de signature NSS), qui est certes polynomial, mais n’a, `a notre connaissance, jamais ´et´e impl´ement´e.

Dans ce chapitre, nous pr´esentons de nouvelles attaques `a chiffr´es choisis efficaces sur NTRUEn-crypt. Nos attaques sont en quelque sorte interm´ediaires entre celle de [53], et celles de Howgrave-Grahamet al. [50]. Comme dans [50], les attaques reposent sur des erreurs de d´echiffrement et n’utilisent l’oracle de d´echiffrement que sur des chiffr´es valides. Cependant, contrairement `a [50], nous ne demandons pas seulement si un chiffr´e (valide) se d´echiffrerait correctement, mais nous avons besoin de la r´eponse compl`ete de l’algorithme de d´echiffrement sur ce chiffr´e (valide), ce qui est le cas classique des attaques `a chiffr´es choisis. En cas d’erreur de d´echiffrement, cette erreur apporte des informations compl´ementaires sur la nature de l’erreur. C’est pourquoi le nombre de requˆetes de d´echiffrement est bien inf´erieure aux attaques de [50], ce qui permet d’impl´ementer com-pl`etement l’attaque en pratique et d’en tester son efficacit´e. Par exemple, avec le jeu de param`etres initial NTRU-1998, la moindre requˆete donnant une erreur de d´echiffrement suffit `a retrouver la cl´e priv´ee. Avec les jeux de param`etres les plus r´ecents, le nombre d’erreurs de d´echiffrement n´e-cessaires augmente mais tout en restant inf´erieur `a quelques centaines. L’efficacit´e de nos attaques confirme la n´ecessit´e de supprimer toute possibilit´e d’erreur de d´echiffrement dans NTRUEn-crypt, comme cela avait d´ej`a ´et´e sugg´er´e dans [50] : il faut remarquer que la derni`ere version [49]

de NTRUEncrypt modifie les jeux de param`etres de NTRU et rend impossible les erreurs de d´echiffrement. De plus puisque les requˆetes `a l’oracle portent sur des chiffr´es al´eatoires de messages tir´es de mani`ere uniforme, nos attaques peuvent aussi avoir une interpr´etation en terme de s´ecurit´e.

Si on pouvait simuler l’algorithme de d´echiffrement de NTRU, on serait capable de trouver la cl´e priv´ee en pratique.