• Aucun résultat trouvé

Survol des sch´ emas de signature bas´ es sur FlexibleRSA

7.2 Survol des sch´ emas de signature bas´ es sur FlexibleRSA

Nous rappelons bri`evement dans cette section les principaux sch´emas de signature efficaces, dont la s´ecurit´e est bas´ee sur l’hypoth`eseRSAforte, dans le mod`ele standard. Nous encourageons le lecteur int´eress´e `a se r´ef´erer aux papiers originaux pour une description plus compl`ete et pour les preuves de s´ecurit´e associ´ees aux sch´emas. Pour permettre une lecture et une comparaison plus simple, nous avons parfois modifi´e les notations originales.

Nous commen¸cons avec les deux principaux sch´emas, tous deux introduits en 1999 : le sch´ema de signature deRosario Gennaro,Shai HalevietTal Rabin[GHR99] (GHR) et le sch´ema de signature de Ronald Cramer et Victor Shoup [CS99, CS00] (CS). Le sch´ema CS fut sujet `a de nombreuses variantes, parmi lesquelles celle de Huafei Zhu [Zhu01, Zhu03], celle de Jan Camenisch et Anna Lysyanskaya [CL02] et celle de Marc Fischlin [Fis03]. Tout comme les signatures jumellesGHR[NPS01], notre nouveau sch´ema peut quant `a lui (voir Section7.3) ˆetre vu comme une variante du sch´emaGHR.

7.2.1 Sch´ema de signature Gennaro-Halevi-Rabin

Soient `n et `h des param`etres de s´ecurit´e (typiquement, `n = 1024, `h = 160). L’ensemble des messages est M = {0,1}, et une fonction de hachage H : M → {0,1}`h est utilis´ee. Le sch´emaGHR est alors le suivant.

Sig.GHR[GHR99] G´en´eration de cl´es : La cl´e publique estpk={n, u}, o`un= (2p0+ 1)(2q0+ 1) est un moduleRSAfort de`nbits etuest un ´el´ement al´eatoire deZn. La cl´e priv´ee est sk={p0, q0}.

Signature : La signature d’un messagem∈ Mest σ=uc−1mod 2p0q0 modn, o`u c=H(m).

V´erification : La signature σ d’un message m∈ Mest accept´ee si et seule-ment si u=σH(m)modn.

Dans la description originale, la fonction de hachage doit ˆetre indivisible (en anglais, divi-sion intractable) : cette hypoth`ese sera not´ee Div. Intuitivement, l’hypoth`ese suppose qu’il est impossible pour l’attaquant de trouver un messagem, tel queH(m) divise le produitQ

iH(mi), o`u les mi sont les messages soumis `a l’oracle de signature. Pour une d´efinition plus pr´ecise de cette propri´et´e particuli`ere des fonctions de hachage, nous renvoyons le lecteur `a l’article original [GHR99].

Le temps avan¸cant, et notamment grˆace au travail de Jean-S´ebastien Coron et David Naccache[CN00] (voir aussi [CS99,CS00] pour une discussion `a ce sujet), il est commun´ement admis que le moyen le plus simple et le plus sˆur d’obtenir une telle propri´et´e est de d´efinir l’en-semble d’arriv´ee de la fonction de hachage comme un sous-ensemble de l’ensemble des nombres premiers.

Variante `a r´eduction fine. Le sch´ema de signatureGHRcomme d´ecrit plus haut poss`ede une preuve de s´ecurit´e lˆache sur le probl`emeFlexibleRSA[GHR99,Cor00]. Cependant, dans [GHR99], les auteurs proposent une variante de leur sch´ema poss´edant, elle, une r´eduction fine.

Intuitivement, leur id´ee est d’utiliser une fonction de hachage cam´el´eon [KR00], qui dans leur exemple est bas´ee sur le probl`eme du logarithme discret, mais qui pourrait a priori ˆetre d’un autre type. Soient P un grand premier, Q un grand diviseur premier de P −1, et G le groupe cyclique d’ordre Q g´en´er´e par un ´el´ement g ∈ ZP. Cette fois, l’ensemble des messages estM=ZQ et la fonction de hachage (qui doit toujours ˆetre indivisible) estH:G→ {0,1}`h.

Le sch´ema devient alors :

Sig.GHR[GHR99] G´en´eration de cl´es : La cl´e publique est pk={n, u, g, y, P}, o`u n= (2p0+ 1)(2q0+ 1) est un moduleRSAfort de`nbits,uest un ´el´ement al´eatoire de Zn,g est un g´en´erateur de Gety est un ´el´ement al´eatoire de G. La cl´e priv´ee estsk={p0, q0}.

Signature : La signature d’un messagem∈ Mest donn´ee parσ= (r, s), o`ur est un al´ea deZQ ets=uc−1mod 2p0q0 modn, avecc=H(gmyr modP).

V´erification : La signatureσdu messagem∈ Mest accept´ee si et seulement siu=sc0 modn, o`uc0 =H(gmyr modP).

Rosario Gennaro,Shai HalevietTal Rabinobtiennent ainsi un sch´ema de signature dans lequel un attaquant peut ˆetre utilis´e pour r´esoudre soit le logarithme discret dans G, soit le probl`eme FlexibleRSA, et ceci de fa¸con fine. Clairement, il est possible d’utiliser d’autres types de fonction de hachage cam´el´eon (par exemple sur le probl`eme RSA, comme dans [KS06]).

7.2.2 Sch´ema des signatures jumelles GHR

Le paradigme des signatures jumelles fut introduit par David Naccache,David Pointche-val et Jacques Stern dans [NPS01]. Il s’applique particuli`erement bien aux signatures GHR, pour des messages tr`es courts.

Soit P une fonction injective de l’ensemble {0,1}2`m vers l’ensemble des nombres premiers.

Par exemple, cette fonction pourrait ˆetre

P :{0,1}2`m→ {primes}, µ7→NextPrime(µ·2τ)

avecτ ≈5 log2(2`m), fonction pouvant ˆetre ´evalu´ee en moins de 40`mtests de primalit´e [NPS01, Annexe B]. Le sch´ema Twin-GHR est alors d´efini comme suit :

Sig.Twin-GHR[NPS01] G´en´eration de cl´es : La cl´e publique est pk={n, N, u1, u2} o`un= (2p0+ 1)(2q0+ 1) et N = (2P0+ 1)(2Q0+ 1) sont deux modules RSAforts, u1

est un ´el´ement al´eatoire deZn etu2 est un ´el´ement al´eatoire deZN. La cl´e priv´ee estsk={p0, q0, P0, Q0}.

Signature : La signature d’un message m ∈ M = {0,1}`m est donn´ee par σ= (µ1, s1, s2), calcul´ee, pour un al´ea µ1 ∈ {0,1}2`m etµ2 = (mkm) ⊕ µ1, comme

s1=u1P(µ1)−1mod 2p0q0 modn et

s2 =u2P(µ2)−1mod 2P0Q0 modN .

V´erification : La signatureσ = (µ1, s1, s2) du message m∈ M est accept´ee siu1 =s1P(µ1)modnetu2=s2P((mkm)µ1)modN.

La signature Twin-GHR poss`ede une r´eduction fine sur le probl`emeFlexibleRSA [NPS01].

7.2. Survol des sch´emas de signature bas´es sur FlexibleRSA

7.2.3 Sch´ema de signature Cramer-Shoup

Le sch´ema de signature de Ronald Cramer et Victor Shoup [CS99, CS00] (CS) est d´efini comme suit. Soient `n et `h des param`etres de s´ecurit´e (typiquement, `n 1024, `h 160).

SoitM={0,1} l’ensemble des messages, et soit H:M → {0,1}`h une fonction de hachage.

Sig.CS[CS99,CS00] G´en´eration de cl´es : La cl´e publique est pk = {n, e, x, h}, o`u n = (2p0 + 1)(2q0 + 1) est un module RSA fort de `n bits, e est un premier de (`h + 1) bits etx, h sont des ´el´ements al´eatoires de QRn. La cl´e priv´ee est sk={p0, q0}.

Signature : La signature d’un messagem∈ M estσ = (c, u, v), o`u cest un premier al´eatoire de (`h+ 1) bits, uest un ´el´ement al´eatoire de QRn et v= (x hH(w))c−1modp0q0 modn, avec w=ueh−H(m)modn.

V´erification : La signatureσ= (c, u, v) du messagem∈ Mest accept´ee si et seulement sicest un entier impair de (`h+ 1) bits etx=vch−H(w0) mod n, avec w0 =ueh−H(m)modn.

Ce sch´ema de signature, comme d´emontr´e dans [CS99,CS00], est sˆur sous l’hypoth`eseRSA forte. Malheureusement, la r´eduction de s´ecurit´e est lˆache, avec un facteur de perte approxima-tivement ´egal `aqs, le nombre autoris´e de requˆetes de signature. Pour ˆetre pr´ecis, la r´eduction de s´ecurit´e du sch´emaCSest divis´ee en deux sous-parties : une premi`ere, permettant une r´eduction fine bas´ee sur le probl`emeFlexibleRSA, et une seconde, lˆache, bas´ee sur le probl`eme RSA. Mˆeme si le probl`emeRSAest peut ˆetre significativement plus difficile que le probl`emeFlexibleRSA, dans l’´etat actuel des connaissances, la seule chose qui soit connue est que le probl`eme RSA est au moins aussi difficile que le probl`eme FlexibleRSA. Aussi, la seule conclusion qui puisse ˆetre tir´ee actuellement est que la r´eduction deCSest lˆache sur le probl`emeFlexibleRSA.

Dans le mˆeme temps, un avantage du sch´emaCSpar rapport au sch´emaGHRest que la fonc-tion de hachageHn’a pas besoin d’avoir comme image un nombre premier, ni d’ˆetre indivisible, mais uniquement d’ˆetre r´esistante aux collisions.

7.2.4 Sch´ema de signature Camenisch-Lysyanskaya

Dans [CL02], Jan Camenisch et Anna Lysyanskaya ont introduit une variante du sch´ema CS(que nous d´esignons parCL). Ind´ependamment, dans un journal chinois [Zhu01],Huafei Zhu avait propos´e un sch´ema essentiellement similaire (voir ´egalement [Zhu03]).

Soient ` le niveau de s´ecurit´e d´esir´e du sch´ema de signature, `n, `m et `c > (`m+ 2) des param`etres de s´ecurit´e (typiquement,`= 80,`n1024 et`c=`m+ 2). Le sch´ema de signature CLse d´ecrit alors comme suit.

Sig.CL[CL02] G´en´eration de cl´es : La cl´e publique est pk = {n, x, g, h}, o`u n = (2p0 + 1)(2q0+ 1) est un moduleRSAfort de`n bits, etx, g, hsont des ´el´ements al´eatoires de QRn. La cl´e priv´ee estsk={p0, q0}.

Signature : La signature d’un message m ∈ M = {0,1}`m est donn´ee par σ = (c, t, v), o`u c est un nombre premier al´eatoire de `c bits, t est un al´ea de (`n+`m+`) bits et v= (x gthm)c−1modp0q0 modn.

V´erification : La signature σ = (c, t, v) du message m ∈ M est accept´ee si et seulement sicest un entier impair de`c bits etx=vcg−th−m modn.

Dans ce sch´ema, nous pouvons voir qu’aucune fonction de hachage n’est utilis´ee, ce qui est un avantage, obtenu malheureusement au prix d’une signature plus longue et d’une restriction aux messages courts. Si signer des messages longs est important pour l’utilisateur, il est possible d’utiliser une fonction de hachage, avec l’hypoth`ese suppl´ementaire de sa r´esistance aux collisions.

7.2.5 Sch´ema de signature Fischlin

Une derni`ere variante du sch´emaCSfut propos´ee parMarc Fischlin dans [Fis03]. Soient`n

et`h des param`etres de s´ecurit´e (typiquement,`n1024, `h160). L’ensemble des messages est M={0,1} et une fonction de hachageH:M → {0,1}`h est utilis´ee.

Sig.Fischlin[Fis03] G´en´eration de cl´es : La cl´e publique est pk = {n, x, g, h}, o`u n = (2p0 + 1)(2q0+ 1) est un moduleRSAfort de`nbits, etx, g, hsont des ´el´ements al´eatoires de QRn. La cl´e priv´ee est sk={p0, q0}.

Signature : La signature d’un message m ∈ Mest σ = (c, t, v), o`u cest un premier al´eatoire de (`h+ 1) bits, t est un entier al´eatoire de `h bits et v= (x gtht⊕ H(m))c−1modp0q0 modn.

V´erification : La signature σ = (c, t, v) du message m ∈ M est accep-t´ee si et seulement si c est un entier impair de (`h + 1) bits et x = vcg−th−(t⊕ H(m)) modn.

Une comparaison de tous les sch´emas de cette section et de celui que nous pr´esentons Sec-tion 7.3est propos´ee dans la Table 7.1.