• Aucun résultat trouvé

Chiffrement ElGamal sans encodage dans le mod` ele standard

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

9.2 Chiffrement ElGamal sans encodage dans le mod` ele standard

ChiffrementElGamal[ElG85] Initialisation des param`etres : Soient p un premier de `p bits et q un premier de`q bits divisant (p−1). SoientGle sous-groupe deZp d’ordre q, etg un g´en´erateur de G. Soit enfinΩ un encodage bijectif deZq dans G.

G´en´eration de cl´es : La cl´e priv´ee est un nombre al´eatoire x ∈ Zq. La cl´e publique correspondante esty=gx.

Chiffrement : Pour chiffrer un messagem∈Zq, il faut encoder men calcu-lantω =Ω(m), puis tirer un al´ea r∈Zq et calculer (u, v) = (gr, yr·ω).

Le chiffr´e est alorsc= (u, v).

D´echiffrement : Pour d´echiffrer c = (u, v), l’utilisateur calcule ω = v·u−x et retrouve le message original m=Ω−1(ω).

Le cryptosyst`emeElGamalest `a sens unique sous l’hypoth`ese de difficult´e du probl`emeCDH, et est indistinguable sous l’hypoth`ese de difficult´e du probl`eme DDH, ces notions de s´ecurit´e

´etant entendues dans le contexte des attaques `a clairs choisis, dans le mod`ele standard.

9.1.2 Le cryptosyst`eme ElGamal avec fonction de hachage

Pour contourner le probl`eme de l’encodage en ´el´ement du groupe, une variante au crypto-syst`eme ElGamal `a base de fonction de hachage fut propos´ee.

Chif.ElGamalavechachage Initialisation des param`etres : Soientpun premier de`p bits etq un pre-mier de `q bits divisant (p−1). Soient G le sous-groupe de Zp d’ordre q, etg un g´en´erateur deG. Soit enfin H:G→ {0,1}`m une fonction de hachage.

G´en´eration de cl´es : La cl´e priv´ee est un nombre al´eatoire x ∈ Zq. La cl´e publique correspondante esty=gx.

Chiffrement : Pour chiffrer un message m ∈ {0,1}`m, il faut tirer un al´ea r ∈Zqet calculer (u, v) = (gr,H(yr)⊕m). Le chiffr´e est alorsc= (u, v).

D´echiffrement : Pour d´echiffrer c= (u, v), l’utilisateur retrouve le message originalm=v ⊕ H(ux).

Cette variante de ElGamal est `a sens unique et indistinguable contre les attaques `a clairs choisis sous la seule hypoth`ese de difficult´e du probl`eme CDH. Cependant, la preuve de s´ecurit´e n´ecessite le mod`ele de l’oracle al´eatoire.

Sous l’hypoth`ese de difficult´e du probl`eme DDH, il est ´egalement possible d’utiliser des ex-tracteurs d’al´ea `a la place du mod`ele de l’oracle al´eatoire, pour g´en´erer un masque parfaitement al´eatoire. Cependant cette technique n´ecessite ou bien de grands groupes ou bien r´eduit de fa¸con tr`es importante la taille des masques produits [CFGP06].

9.2 Chiffrement ElGamal sans encodage dans le mod` ele standard

Dans cette section, nous d´ecrivons notre nouvelle technique pour obtenir un chiffrement ElGamal sans encodage. Notre cryptosyst`eme poss`ede des performances similaires au sch´ema

classique ElGamal tel que d´ecrit dans la Section 9.1.1, tout en ne n´ecessitant ni encodage ni extracteur d’al´ea. De plus, la s´ecurit´e de notre sch´ema est valable dans le mod`ele standard, sous de nouvelles hypoth`eses que nous introduisons. Nous commen¸cons en donnant quelques d´efinitions ainsi que quelques propri´et´es math´ematiques.

9.2.1 La fonction Classe

Soient p et q des premiers tels que q | p−1. Soient g un entier d’ordre pq modulo p2 et G=hgile groupe form´e par tous les ´el´ements d’ordrepqmodulop2. AlorsGp=hgmodpiest le sous-groupe d’ordreq deZp. Par le th´eor`eme des restes chinois, il existe une bijection canonique entre Zp×Zq etZpq. Pour tous entiers x∈Zp et y∈Zq,hx, yi d´esigne l’unique entier modulo pq tel quehx, yi=x (modp) et hx, yi=y (modq).

D´efinition 19 (Classe d’un ´el´ement de G). Tout ´el´ement w de G peut ˆetre ´ecrit comme w=ghx, yimodp2, pour un unique x∈Zp et un unique y∈Zq. Cet entierx est appel´e la classe de w en baseg, et est not´ex= [[w]].

Il est facile de voir que si w = ghx, yi modp2, alors w = gy modp. En d’autres termes, y est le logarithme discret de (wmodp) en base (gmodp) dans le groupe Gp. Ceci signifie que y est difficile `a calculer `a partir de w, `a moins que le logarithme discret ne soit facile sur Gp. Au contraire, calculer la classe d’un ´el´ement de G peut ˆetre fait efficacement, comme nous le montrons ci-dessous.

Lemme 1. D´efinissons sur Gla fonctionL(w) = (wq−1 modp p2). La classe dew=ghx, yimodp2 peut ˆetre calcul´ee comme x=L(w)· L(g)−1modp.

D´emonstration. Commegest d’ordreqmodulop,gq= 1 modp. Aussi, il existe un entierl∈Zp, tel quegq= 1 +l·p (modp2). Par d´efinition de la fonctionL, cet entierlest donn´e parl=L(g) et est non nul, g ´etant d’ordre pq modulo p2 et non d’ordre q. De mˆeme, wq = 1 +L(w)·p (modp2).

Comme wq = ghx,yiq = g(hx,yimodp)·q = gxq (modp2), il s’ensuit, avec gq = 1 +L(g)·p (modp2), que 1 +L(w)·p= (1 +L(g)·p)x= 1 +L(g)·p·x (modp2), d’o`u le r´esultat. ut Cette propri´et´e est bien connue et a notamment servi `a construire les sch´emas de chiffrement Okamoto-Uchiyama[OU98] etPaillier [Pai99b].

Consid´erons maintenant un entiera∈Zqainsi quew=gamodp. Comme 1 =wpq (modp2), wpeut ˆetre vu comme un ´el´ement deG, et donc il existe des entiersx, ytels quew=ghx, yimod p2. De plus, ghx, yi = gy (modp) et donc y = a par unicit´e du logarithme. Il apparaˆıt que la classe xde w peut ˆetre calcul´ee comme une fonction dea, comme le montre le lemme suivant.

Lemme 2. D´efinissons, pour tout w∈G

Upper(w) = w−(wmodp) p et

∆(w) = q

L(g) ·Upper(w)

w modp . Alors, pour tout ´el´ement w∈G,

[[wmodp]] = [[w]]−∆(w) modp .

9.2. Chiffrement ElGamal sans encodage dans le mod`ele standard D´emonstration. Tout d’abord, remarquons que, par d´efinition de la fonctionL,gq = 1+L(g)·p= ghq,0i (modp2). D’o`u

1 +p=gh

q L(g),0i

modp2, o`uL(g) est non-nul comme gest d’ordre pq modulop2.

Nous pouvons ´ecrire w comme w =ghx,yimodp, avec x = [[w]] et y = DLg(wmodp). Par d´efinition des fonctionsUpper et∆et comme wmodp=gy modp6= 0, nous avons

w= (wmodp) +p·Upper(w) = (wmodp)

1 +p·

Upper(w)

w modp

modp2

= (wmodp) (1 +p)Upper(w)w modp modp2= (wmodp)gh

q

L(g),0i·Upper(w)

w modp

modp2

= (wmodp)gh∆(w),0imodp2 .

Aussi, en appliquant la fonction Classe de chaque cot´e de la derni`ere ´egalit´e, nous obtenons [[w]] = [[wmodp]] +∆(w) modp ,

dont se d´eduit le r´esultat. ut

Lemme 3. La fonction f : Zq → Zp, d´efinie par a → [[gamodp]], est al´eatoirement auto-r´eductible (en anglais, random self-reducible).

D´emonstration. Supposons que nous d´esirons [[A]] pour un certainA=gamodp. Nous utilisons alors le fait que pour toutr∈Zq, nous avons

[[Ar modp]] = [[Armodp2]]−∆(Armodp) =r·[[A]]−∆(Ar modp) modp .

Si r est tir´e al´eatoirement dans Zq, Ar modp est un ´el´ement al´eatoire de Gp, comme A est un g´en´erateur de Gp. Connaissant la classe de [[Armodp]] et r, [[A]] peut alors ˆetre facilement retrouv´e par

[[A]] =r−1([[Armodp]] +∆(Ar)) modp .

u t

9.2.2 Probl`emes de classe Diffie-Hellman

Nous d´efinissons maintenant un probl`eme calculatoire bas´e sur la fonction Classe introduite dans la section pr´ec´edente. Ce probl`eme sera `a la base du sch´ema de chiffrement que nous introduirons ensuite.

D´efinition 20 (Probl`eme calculatoire de classe Diffie-Hellman - CCDH). Soit G=hgi le sous-groupe d’ordre pq de Zp2. Le probl`eme calculatoire de classe Diffie-Hellman dans G est d´efini comme suit : ´etant donn´e des ´el´ements ga modp et gb modp, pour des al´eas aet b tir´es dansZq, calculer [[gab modp]].

La version d´ecisionnelle de ce probl`eme se d´ecrit comme suit.

D´efinition 21 (Probl`eme d´ecisionnel de classe Diffie-Hellman - DCDH). Soit G= hgi le sous-groupe d’ordre pq de Zp2. Le probl`eme d´ecisionnel de classe Diffie-Hellman dans G est de distinguer les distributions(gamodp, gb modp,[[gabmodp]])et (gamodp, gb modp, z), pour a, btir´es al´eatoirement dans Zq et z al´ea de Zp.

Ces probl`emes sont nouveaux. Cependant, nous avons ´et´e en mesure de montrer la difficult´e de la version calculatoire du probl`eme. Plus pr´ecis´ement, nous posons le th´eor`eme suivant.

Th´eor`eme 11. Les probl`emes CCDH et CDHsont ´equivalents.

D´emonstration. La preuve est d´ecoup´ee en deux ´etapes, suivant les deux sens de l’´equivalence.

Nous commen¸cons avec l’implication la plus ´evidente.

[CCDH ⇐ CDH]. Supposons que nous ayons acc`es `a un algorithme probabiliste A tel que A(gamodp, gbmodp) retourne gab modp avec une probabilit´e ε et en un temps τ, la pro-babilit´e de succ`es ´etant prise sur les donn´ees variables de A et les al´easa, b∈Zq. ´Etant donn´e A, B∈Gp, nous ex´ecutonsA(A, B) pour obtenir CDH(A, B) et en d´eduisons alors [[CDH(A, B)]]

grˆace au Lemme 1, de fa¸con `a r´esoudre le probl`eme CCDH avec une probabilit´e ε et un temps limit´e `a τ +poly(logp).

[CDH⇐CCDH]. Supposons que nous ayons acc`es `a un algorithme probabiliste A qui r´esout le probl`eme CCDH. Grˆace au Lemme3, nous pouvons supposer que la distribution des entr´ees de A ne n´ecessite pas d’ˆetre uniforme pour que la probabilit´e de succ`es de A soit assur´ee. Nous construisons une r´eduction B calculant C = CDH(A, B) pour des al´eas A, B ∈ Gp. B ex´ecute une premi`ere fois A(A, B) pour obtenir [[C]]. B pose ensuite A0 = Agmodp et r´e-ex´ecute A pour obtenir [[C0]] = A(A0, B), o`u C0 =CDH(A0, B) = BCmodp. Nous avons alors les ´egalit´es suivantes :

[[C0]] = [[BCmodp]] = [[BC modp2]]−∆(BC modp) = [[B]] + [[C]]−∆(BC modp) modp d’o`u∆(BC modp) = [[B]] + [[C]]−[[C0]] modp. Comme

BC= (BCmodp) +p·Upper(BC modp2) =C0+p·Upper(BC modp2)

=C0

1 +p·

Upper(BC modp2)

BC modp

=C0

1 +p·L(g)

q ·∆(BCmodp)

modp2 . B n’a plus qu’`a trouver une solution `a cette ´equation modulaire

C

C0 =B−1

1 +p·L(g) q ·

[[B]] + [[C]]−[[C0]]

modp2 dans laquelle les inconnues sont C, C0∈Zp.

En posantµ=B−1

1 +p·L(g)q · [[B]] + [[C]]−[[C0]]

modp2,Bapplique l’algorithme ´ eten-du d’Euclide sur µ et p2 pour trouver de petites solutions C, C0 < p satisfaisant C/C0 = µmodp2. Pour arrˆeter l’algorithme ´etendu d’Euclide au bon moment, la validit´e de C est v´erifi´ee en s’assurant queC0C−1 modpest ´egal `a B.

Cette ´etape finit ainsi avec succ`es en une complexit´e en O(log3p), et permet le calcul de C=CDH(A, B), en deux appels `aA et un temps suppl´ementaire polynomial. ut Jusqu’`a pr´esent, l’´etude du probl`eme DCDH reste un probl`eme ouvert. En particulier, la relation entre les probl`emesDCDHetDDHreste encore myst´erieuse. Bien que nous n’ayons pas de preuve `a apporter, nous suspectons ces deux probl`emes d’ˆetre ´etroitement reli´es. Nous ferons l’hypoth`ese que le probl`emeDCDH ne peut ˆetre r´esolu en temps polynomial dans le reste de ce chapitre.

9.2. Chiffrement ElGamal sans encodage dans le mod`ele standard

9.2.3 Chiffrement additif sans encodage

Comme annonc´e dans l’introduction de cette section, notre but est de rendre le sch´ema ElGamal d’un usage le plus ais´e possible, en ´evitant l’usage d’un m´ecanisme d’encodage en

´el´ements de groupe, tout en maintenant une s´ecurit´e dans le mod`ele standard (par opposition au sch´emaElGamalavec fonction de hachage tel que d´ecrit Section9.1.2par exemple). Notre id´ee est de ne plus incorporer le message dans un ´el´ement du groupe, mais, `a la place, de transformer une cl´e de session extraite d’un ´echange Diffie-Hellman en un entier modulo p `a l’aide de la fonction Classe d´efinie Section 9.2.1.

Pkc’06[CPP06] Initialisation des param`etres : Soient p un entier de `p bits et q un premier de `q bits diviseur dep−1. Soit g un g´en´erateur du groupeG des ´el´ements d’ordre pqmodulo p2.

G´en´eration de cl´es : La cl´e priv´ee est un al´ea x ∈ Zq. La cl´e publique correspondante esty =gx modp.

Chiffrement : Pour chiffrer un message m ∈ Zp, il suffit de tirer un al´ea r ∈ Zq et de calculer u = grmodp et v = [[yrmodp]] +mmodp. Le chiffr´e est alorsc= (u, v).

D´echiffrement : Pour d´echiffrer c= (u, v), l’utilisateur calcule m=v−[[ux modp]] modp .

9.2.4 Chiffrement multiplicatif sans encodage

La proc´edure de chiffrement peut alternativement ˆetre faite `a base de multiplication modu-laire, si le message est pris non plus dans le groupe additifZp, mais dans le groupe multiplicatif Zp.

Pkc’06[CPP06] Initialisation des param`etres : Soient p un entier de `p bits et q un premier de `q bits diviseur dep−1. Soit g un g´en´erateur du groupeG des ´el´ements d’ordre pqmodulo p2.

G´en´eration de cl´es : La cl´e priv´ee est un al´ea x ∈ Zq. La cl´e publique correspondante esty =gx modp.

Chiffrement : Pour chiffrer un message m ∈ Zp, il suffit de tirer un al´ea r ∈ Zq et de calculer u = gr modp et v = [[yrmodp]]·mmodp. Le chiffr´e est alorsc= (u, v).

D´echiffrement : Pour d´echiffrer c= (u, v), l’utilisateur calcule simplement m=v·[[uxmodp]]−1 modp .

Le chiffrementElGamalpeut en effet ˆetre vu comme un ´echange de cl´e Diffie-Hellman, dans lequel la publi-cation de la cl´e publiqueyfait office de premi`ere passe.

9.2.5 Propri´et´es de nos sch´emas de chiffrement

Absence de conversion des messages. Nos sch´emas de chiffrement ne n´ecessitent aucune conversion avant la proc´edure de chiffrement : l’espace des messages est r´eellement le groupe additif Zp dans la version additive ou le groupe multiplicatifZp dans la version multiplicative.

C’est pourquoi toute chaˆıne de moins dek bits, o`u p >2k, peut ˆetre chiffr´ee directement. C’est une propri´et´e tr`es forte, car nous pouvons utiliser dans le mˆeme temps un ordreq beaucoup plus petit que p sans impacter les proc´edures de chiffrement ou de d´echiffrement.

Efficacit´e. Nous pouvons voir que les chiffr´es dans nos sch´emas sont exactement de mˆeme taille que dans le sch´ema classique ElGamal. De plus, le ratio est exactement de 2, alors que dans le sch´ema ElGamal, celui-ci est de 2pq. Ainsi, pour des param`etres classiques `p = 1024 et

`q= 160, le ratio du chiffrement ElGamal est ainsi d’environ 13.

Du point de vue des performances en temps de calcul, nos sch´emas n´ecessitent pour le chiffrement, en plus des deux exponentiations inh´erentes aux sch´emas de type ElGamal, une exponentiation additionnelle dans Zp2 avec un exposant de `q bits. Cette exponentiation ´ equi-vaut en temps `a environ quatre exponentiations dansZp. Ainsi, en tout, l’´etape de chiffrement de nos sch´emas n´ecessite six exponentiations de `q bits contre deux exponentiations dans le sch´ema ElGamal. Cependant, aucun encodage n’est n´ecessaire, encodage souvent r´ealis´e par des exponentiations et au prix d’un ordre du groupe plus grand.

De mˆeme, nos proc´edures de d´echiffrement n´ecessitent une exponentiation de `q bits dans Zp puis le calcul de la fonction Classe. Ainsi, l’´etape de d´echiffrement de nos sch´emas n´ecessite cinq exponentiations de `q bits `a comparer avec la simple exponentiation du sch´ema ElGamal.

Le sch´ema multiplicatif n´ecessite en sus un calcul d’inverse modulaire. Cependant, encore une fois, cet ´ecart est `a relativiser, car aucun d´ecodage n’est n´ecessaire.

Homomorphisme additif ou multiplicatif. Enfin, notre sch´ema additif (respectivement multiplicatif) poss`ede une propri´et´e homomorphique partielle additive (respectivement multipli-cative) sur le groupe additifZp (respectivement le groupe multiplicatifZp). Par “partielle”, nous voulons dire qu’il est possible d’ajouter (respectivement de multiplier par) une constante `a un chiffr´e sans avoir besoin de la cl´e priv´ee. Bien que ce type de propri´et´e soit incompatible avec une r´esistance contre les attaques `a chiffr´es choisis, il est souvent consid´er´e comme int´eressant pour certaines applications cryptographiques telles que le vote ´electronique, et nous esp´erons ainsi voir des applications concr`etes de nos sch´emas bas´ees sur cette propri´et´e. Une restriction importante de cette propri´et´e homomorphique est n´eanmoins qu’elle ne permet pas de transformer al´ eatoi-rement un chiffr´e en un autre chiffr´e du mˆeme message, ni mˆeme d’ajouter (respectivement de multiplier) deux chiffr´es entre eux.