• Aucun résultat trouvé

Fonction de padding bas´ ee sur une permutation : OPbP

Partie III. Sch´ ema de chiffrement ` a s´ ecurit´ e prouv´ ee

11.2 Fonction de padding bas´ ee sur une permutation : OPbP

11.1.3 Signature et chiffrement

Comme pr´ec´edemment ´evoqu´e, une de nos motivations est de construire un padding universel pouvant ˆetre aussi bien utilis´e pour la signature que pour le chiffrement, et ceci, en parall`ele, avec la mˆeme primitive asym´etrique et un unique couple de cl´es.

Le but d’un adversaire est donc le mˆeme que dans la Section4.3.1ou la Section8.1.2: conce-voir une falsification existentielle (correspondant `a la notion de s´ecurit´e EUF) contre le sch´ema de signature ou distinguer un chiffr´e (correspondant `a la notion de s´ecurit´e IND) du sch´ema de chiffrement. Cependant, l’attaquant peut pour cela utiliser les moyens des deux attaques : un acc`es simultan´e `a l’oracle de signature et `a l’oracle de d´echiffrement, et ceci de fa¸con enti`erement adaptative. Aussi, nous noterons ce sc´enario comme une attaque CMA+CCA.

11.1.4 Permutations sans griffe

Dans [KW03], Jonathan Katz et Nan Wang ont montr´e qu’en utilisant une permutation

`

a trappe induite par une permutation sans griffe (en anglais, claw-free permutation), il ´etait possible d’obtenir une variante de RSA-FDH (en ajoutant un simple bit) avec une r´eduction fine. Nous allons ´egalement utiliser cette technique. L’existence de permutations sans griffe est en effet raisonnable : toute permutation al´eatoire auto-r´eductible peut ˆetre vue comme une permutation `a trappe induite par une permutation sans griffe [DR02], et tous les exemples connus de permutations `a trappe sont auto-r´eductibles.

D´efinition 22 (Permutations sans griffe). Une famille de permutations sans griffe est un ensemble d’algorithmes {GenE;fi;gi |i∈I}, pour un ensemble d’index I, tel que :

– GenE g´en`ere un index al´eatoire iet une trappe sk; – fi, gi sont deux permutations sur le mˆeme domaine Di;

– il y a un algorithme efficace qui, pour un index i, g´en`ere un al´ea x∈Di;

– fi−1 (l’inverse de fi) et gi−1 (l’inverse de gi) sont efficacement calculables avec la trappe sk.

Une griffe est une paire(x0, x1) telle que f(x0) =g(x1).

Un algorithme probabilisteA(τ, )-casse une famille de permutations sans griffe si l’ex´ecution deAprend un temps inf´erieur `a τ et si Ag´en`ere une griffe avec une probabilit´e sup´erieure `a :

Pr

(i, td)←GenE(1k),(x0, x1)← A(i) :fi(x0) =gi(x1)

> .

Une famille de permutations sans griffe est(τ, )-sˆure si aucun algorithme ne peut la(τ, )-casser.

11.2 Fonction de padding bas´ ee sur une permutation : OPbP

11.2.1 Description

Dans cette section, nous proposons un padding universel bas´e sur la construction de [PP03], dans le mod`ele de la permutation al´eatoire. Notre proposition est optimale aussi bien pour le chiffrement que pour la signature, c’est-`a-dire n’a besoin que de 82 bits de plus que le message : ces bits servent d’entropie pour le chiffrement et de redondance pour la signature. Dans ce chapitre, nous d´ecrivons la fonction propos´ee, et renvoyons `a notre publication [CPP05] ou `a la th`ese deDuong Hieu Phan[Pha05] pour une preuve compl`ete de sa s´ecurit´e.

Soient`net`tdeux param`etres de s´ecurit´e, avec`m=`n−`t−1>0. Pour notre construction, nous avons besoin d’une permutationP :{0,1}`n → {0,1}`n, que nous supposerons agir comme

une permutation al´eatoire. Soit ´egalement Φpk : {0,1}`n → {0,1}`n une permutation `a sens unique `a trappe (dont l’inverse sera not´e ψsk). Nous utilisons ´egalement une famille de fonctions pseudo-al´eatoiresΨς :{0,1}`m→ {0,1}, o`uς constitue la cl´e.

Les messages `a signer ou `a chiffrer appartiennent `a l’ensembleM={0,1}`m ={0,1}`n−`t−1, et les chiffr´es et signatures appartiennent `a l’ensemble N ={0,1}`n. Nous notons T l’ensemble {0,1}`t et U l’ensemble{0,1}`m+1.

PaddinguniverselOPbP[CPP05] Padding : Notre fonction de padding est tr`es simple : elle prend en entr´ee un bit γ, un message m ∈ M et une donn´ee compl´ementairer ∈ T. Alors nous d´efinissonsOPbP comme

OPbP(γ, m, r) =P(γkmkr) =tku, o`ut∈ T etu∈ U et l’op´eration inverse comme

OPbP−1(t, u) =P−1(tku) =γkmkr .

Chiffrement : Pour chiffrer un message m ∈ M, l’utilisateur tire un al´ea r ∈ T, un bit al´eatoire γ, et calcule le chiffr´e c comme c = Φpk(tku), pourtku=OPbP(γ, m, r).

D´echiffrement : Pour d´echiffrer c ∈ N, l’usager calcule tku = ψsk(c), o`u t∈ T etu∈ U, puis γkmkr =OPbP−1(t, u). Le clair correspondant est le messagem.

Signature : Pour signer un messagem∈ M, il faut calculerγ =Ψς(m), puis tku=OPbP(γ, m,0`t). La signature est σ=ψsk(tku).

V´erification : Pour v´erifier une signature σ ∈ N, il faut calculer tku = Φpk(σ), o`ut∈ T etu∈ U, puis γkmkr=OPbP−1(t, u).

Si r = 0`t, la signature est accept´ee et l’algorithme de v´erification re-tourne le message m; sinon, la signature est rejet´ee.

Le d´ecoupage deN enT ×U peut sembler ici arbitraire, mais la raison sous-jacente apparaˆıtra dans la seconde section de ce chapitre.

11.2.2 Analyse de s´ecurit´e

Dans [PP03], cette fonction de padding a d´ej`a ´et´e prouv´ee sˆure contre les attaques IND-CCA, pour son utilisation dans les sch´emas de chiffrement (dans le mod`ele de la permutation al´eatoire).

Dans notre publication, nous avons ´etendu cette preuve au sc´enarioCMA+CCA, puis la s´ ecu-rit´e du sch´ema de signature utilis´e en parall`ele du sch´ema de chiffrement (c’est-`a-dire la s´ecurit´e EUF-CMA+CCA). Nous rappelons ici simplement le r´esultat, tout en renvoyant `a [CPP05,Pha05]

pour une preuve compl`ete.

La construction est ´equivalente, `a l’exception du bit additionnelγ qui peut ˆetre vu comme un simple ajout d’un bit d’entropie suppl´ementaire.

11.2. Fonction de padding bas´ee sur une permutation : OPbP Th´eor`eme 15. SoientAetBdes adversaires `a chiffr´es choisis (pour l’oracle de d´ echiffre-ment) et `a messages choisis (pour l’oracle de signature), respectivement contre le sch´ema de chiffrement et le sch´ema de signature.

SiA peut casser la s´ecurit´e s´emantique du chiffrement avec un avantage εE, ou si B peut produire une falsification existentielle avec une probabilit´eεS (en un tempsτ, apr`esqp,qs, qd requˆetes aux oracles de permutation, signature et d´echiffrement respectivement), alors la permutation Φpk peut ˆetre invers´ee avec une probabilit´e ε0 en un temps τ0, avec :

ε0E −∆ et ε0 > εS−∆ qp+qs+ 1 o`u τ06τ+O(qp+qd+qs+ 1) et

∆= (qp+qd+qs+ 1)2

2`t+`m+1 + (qd+ 1)2

2`m +2qp+qd+qs+ 2

2`t .

Plus particuli`erement, si la fonctionΦpkest induite par une permutation sans griffe(τ0, ε0 )-sˆure, nous avons ´egalement ε0 > εS−∆2 .

11.2.3 Taille des param`etres et optimalit´e

Pour obtenir un niveau de s´ecurit´e de 2κ, nous cherchons des param`etres de s´ecurit´e tels que le rapport entre le temps τ et la probabilit´e de l’adversaire εsoit au moins de 2κ, ou, de fa¸con similaire, tels queε/τ 62−κ, avec un niveau de s´ecurit´e usuel κ= 80.

Pour obtenir les tailles n´ecessaires des param`etres, nous pouvons simplifier tout d’abord le Th´eor`eme15. SoitQle nombre total de requˆetes, c’est-`a-direQ=qp+qs+qd. Comme le temps de l’attaqueτ est limit´e `a 280, ce nombre Qest lui aussi limit´e `a 280. Nous obtenons donc

∆6 Q2

2`t+`m + Q2 2`m +2Q

2`t .

De plus, pour des utilisations pratiques, nous savons que la taille `m des messages est bien plus grande que le param`etre de s´ecurit´e`t. Aussi, les quantit´esQ/2`m ou Q2/2`m peuvent ˆetre n´eglig´ees en comparaison `a Q/2`t.

Nous obtenons alors (en utilisant queQ6τ) : εE

τ 6 ε0 τ + 2

2`t et

εS

τ 6 Qε0 τ + 2

2`t dans le cas g´en´eral 6 2ε0

τ + 2

2`t si la fonction Φpk est induite par une permutation sans griffe En conclusion, pour le cas g´en´eral, nous pouvons choisir `t = 82 si le niveau de s´ecurit´e de la fonction Φpk est de 2161. Pour le cas particulier d’une permutation `a trappe induite par une permutation sans griffe, un niveau de s´ecurit´e de la fonctionΦpkde 282est suffisant. Ainsi, pour leRSA, selon l’estimation deArjen Lenstra et Eric Verheul[LV00], un module de 1024 bits est suffisant. Nous remarquons qu’avec seulement 82 bits de redondance, nous obtenons le mˆeme niveau de s´ecurit´e que RSA-PSS [BR96] ou RSA-OAEP [BR94], qui, compar´es `a notre sch´ema, poss`edent une bande-passante plus petite.