• No se han encontrado resultados

We give a construction of an adaptively secure private constrained PRF for bit-fixing in the random oracle model. Our schemeCPRFpriv,ro= (Setup,KeyGen,Eval,Constrain,CEval)is described as follows. Let n(λ)(often denoted asnfor short) be an integer, which is used as an input length ofCPRFpriv,stdandH

be a hash function from{0,1}toR.

Setup(1λ): It setspp:= (1λ,1n)and outputspp.

KeyGen(pp): It choosessi,b

R

← {0,1}λfori[n]andb∈ {0,1}. It outputsmsk:={s

i,b}i∈[n],b∈{0,1}. Eval(msk, x): It computes and outputsy :=H(s1,x1k...ksn,xn).

Constrain(msk, c∈ {0,1,∗}n): It parses{s

i,b}i∈[n],b∈{0,1} ← msk. Then, it defines{ti,b}i∈[n],b∈{0,1} as follows. For alli∈[n]andb∈ {0,1}, it sets

ti,b ( :=si,b Ifci =∗orb=ci R ←Zp Ifci6=∗andb= 1−ci .

Then it outputsskc:={ti,b}i∈[n],b∈{0,1}.

CEval(skc, x): It parses{ti,b}i∈[n],b∈{0,1} ←skc. It computesH(t1,x1k...ktn,xn)and outputs it.

Correctness.

For anyλNandc ∈ {0,1,∗}n, we letpp R

← Setup(1λ),{si,b}i∈[n],b∈{0,1} =msk R

← KeyGen(pp)

and{ti,b}i∈[n],b∈{0,1} =skc

R

← Constrain(msk, c). For anyx ∈ {0,1}nsuch that BF

c(x) = 0holds,

we have ti,xi = si,xi for all i ∈ [n]. Therefore, we have CEval(skc, x) = H(t1,x1k...ktn,xn) =

H(s1,x1k...ksn,xn) =Eval(msk, x).

Security.

Theorem 5.7.The above scheme is an adaptively single-key secure and private CPRF forBF in the random oracle model whereHis modeled as a random oracle.

Proof.

CPRF security. We first prove the above scheme satisfies the security as an ordinary CPRF. Actually,

this can be proven very similarly to Theorem4.21, and many parts of proofs are virtually identical. For an admissible adversary A = (A1,A2), we consider the following sequence of games. For

simplicity, we assume thatAmakes a challenge query only once (see Remark2.6). We also assume that Anever makes the same query twice and all evaluation queriesxmade byA2satisfyBFc(x) = 1.

Game0: This game isExptcprfCPRF

priv,ro,BF,A(λ). Namely, coin← {R 0,1} si,b R ← {0,1}λfori[n]andb∈ {0,1} msk:={si,b}i∈[n],b∈{0,1} y∗← RR

(c,stA)← AR RO(·),OEval(·),OChal(·)

1 (pp) ti,b ( :=si,b Ifci =∗orb=ci R ←Zp Ifci 6=∗andb= 1−ci

skc:={ti,b}i∈[n],b∈{0,1}

d

coin← AR RO(·),OEval(·),OChal(·)

2 (skf,stA)

Return(coind

?

=coin)

whereRO(·),OEval(·)andOChal(·)are oracles described below. RO(·): GivenX∈ {0,1}as input, it returnsH(X).

OEval(·): Givenx∈ {0,1}nas input, it returnsH(s1

,x1k...ksn,xn). OChal(·): Givenx∗ ∈ {0,1}nas input, it returnsH(s

1,x1k...ksn,x

n)if coin= 1. Otherwise, it returnsy∗.

We remark that we simplify the experiment compared to the definition given in Section2.3by using the assumption thatAmakes the challenge query at most once.

Game1: In this game, the random oracle is sampled lazily. Namely, oraclesRO,OChalandOEvalare modified as follows. These oracles shares a listHList, which is initialized to be empty at the beginning of the game.

RO(·): Given the input X, if there exists y ∈ Rsuch that (X, y) ∈ HList, then it returns y.

Otherwise it picksy← RR , adds(X, y)toHListand returnsy.

OEval(·): Given the inputx, it computesX := s1,x1k...ksn,xn. If there existsy ∈ R such that (X, y)∈HList, then it returnsy. Otherwise it picksy← RR , adds(X, y)toHListand returns

y.

OChal(·): Given the inputx∗, ifcoin= 1, then it works similarly toOEval. Otherwise it returnsy∗.

Game2: In this game, evaluation and challenge oracles do not refer toHListat all, and updates ofHList by these oracles are delayed untilA1declares its constrain queryc. Namely,OChalandOEvalare

modified as follows, and a procedureHashSetdefined below runs immediately afterA1outputs

(c,stA). OEvalandOChalmaintain a listEList, which is initialized to be empty at the beginning of the game, instead ofHList. Note thatROstill maintains and refersHListas in the previous game.

OEval(·): Given the input x, if there exists y ∈ R such that(x, y) ∈ EList, then it returnsy.

Otherwise it picksy← RR , adds(x, y)toEListand returnsy.

OChal(·): Given the inputx∗, ifcoin= 1, then it works similarly toOEval. Otherwise it returnsy∗.

HashSet: For all x such that there exists y ∈ R such that(x, y) ∈ EList and BFc(x) = 0, it

computesX:=s1,x1k...ksn,xnand adds(X, y)toHList.

Game3: In this game, a challenge oracle always returnsy∗regardless ofcoin. Namely,OChalis modified as follows.

OChal(·): Given the inputx∗, it returnsy∗.

This completes the description of games. LetTi be the event thatGameireturns1. Then we have to

prove that|Pr[T0]−1/2|is negligible. Lemma 5.8.We havePr[T1] = Pr[T0]

Proof. The modification fromGame0toGame1is just conceptual.

Lemma 5.9.We have|Pr[T2]−Pr[T1]| ≤QH(1 +QE)(2−λ+ 2−) +n·2−λwhereQH andQE

Proof. In the following,HList1denotes the set ofXsuch that there existsysatisfying(X, y) ∈HList

andEList1 denotes the set ofxsuch that there existsysatisfying(x, y) ∈EList. Game2differs from

Game1only when either of the following events occurs.

1. A1makes a queryXtoROsuch that there existsx∈EList1satisfyingX=s1,x1k...ksn,xn holds. 2. A2makes a queryXtoROsuch that there existsx∈EList1 satisfyingX=s1,x1k...ksn,xn and

BFc(x) = 1hold.

3. A1orA2makes a queryxtoOEvalorOChalsuch thatX∈HList1holds whereX:=s1,x1k...ksn,xn. 4. A1 or A2 makes a distinct queries x and x0 to OEval or OChal such that s1,x1k...ksn,xn =

s1,x0

1k...ksn,x 0 n.

If one of the above events occurs, then one of the eventsBad1,Bad2orColdefined below occurs . (If

Event1occurs, thenBad1occurs, if Event2occurs, thenBad2occurs, if Event3occurs, thenBad1or

Bad2occurs, and if Event4occurs, thenColoccurs.)

Bad1: At the point just afterA1 halts (beforeHashSet runs) in Game2, there exist x ∈ EList1 and X∈HList1such thatX=s1,x1k...ksn,xn holds.

Bad2: At the end ofGame2, there existx∈EList1 andX ∈HList1such thatX =s1,x1k...ksn,xnand

f(x) = 1hold.

Col: A1 or A2 makes a distinct queries x and x0 to OEval or OChal such that s1,x1k...ksn,xn =

s1,x0

1k...ksn,x0n.

Therefore we have|Pr[T2]−Pr[T1]| ≤Pr[Bad1] + Pr[Bad2] + Pr[Col].

SinceA1is given no information of{si,b}i∈[n],b∈{0,1}, for allx∈EList1, we havePr[s1,x1k...ksn,xn =

X0] = 2−for anyX0 ∈ {0,1}. Since we have|EList

1| ≤(1 +QE)22and|HList| ≤QH, we have Pr[Bad1]≤QH(1+QE)2−. Similarly,A2is given no information ofsi,bsuch thatci 6=∗andb= 1−ci.

Therefore for anyxsuch thatBFc(x) = 1, there existsisuch thatsi,xiis completely hidden fromA2. Hence for allx∈EListsuch thatBFc(x) = 1, we havePr[s1,x1k...ksn,xn=X

0] = 2λfor anyX0∈ {0,1}.

Since we have|EList1| ≤(1 +QE)and|HList| ≤QH, we havePr[Bad2]≤QH(1 +QE)2−λ. Finally,

we haveP r[Col]≤Pr[∃i∈[n]s.t.si,0 =si,1]≤n·2−λ due to the union bound. Hence the lemma is

proven.

Lemma 5.10.We havePr[T3] = Pr[T2].

Proof. Letx∗be theA’s challenge query andyb∗be the random value that is picked byOChalfor replying

the challenge query whencoin= 1. (We remark thatOChalmust pick a fresh random valueyb∗ since

the challenge queryx∗is different from all evaluation queries and thusx∗ ∈/ EList1.) We claim that no

information ofyb

is revealed toAexcept that fromO

Chal. First, since we havex6=x∗for all evaluation

queriesx,yb

cannot be revealed through evaluation queries. Second, since we haveBF

c(x∗) = 1, no

information ofyb

is used to createHList, and thus no information of

b

y∗is revealed through hash queries.

In summary,Acannot obtain any information onyb∗, and thusAcannot notice any difference if that is replaced by a fresh random element.

Lemma 5.11.We have|Pr[T3]−1/2|= 0.

Proof. Game3uses no information oncoin, and thusAcannot distinguish cases ofcoin= 0andcoin= 1

with a positive advantage.

This completes the proof of CPRF security.

Privacy. Next, we prove that the above scheme satisfies the privacy. For an adversaryA= (A1,A2),

we consider the following sequence of games. We assume thatAnever makes the same query twice and all evaluation queriesxmade byA2 satisfyBFc0(x) =BFc1(x) = 1.

Game0: This game isExptcprfCPRF-priv

priv,ro,BF,A(λ). Namely, coin← {R 0,1} si,b R ← {0,1}λfori[n]andb∈ {0,1} msk:={si,b}i∈[n],b∈{0,1} (c0, c1,stA)← AR RO(·),OEval(·)

1 (pp)

ti,b

(

:=si,b Ifccoin,i=∗orb=ccoin,i

R

Zp Ifccoin,i6=∗andb= 1−ccoin,i

skccoin :={ti,b}i∈[n],b∈{0,1}

d

coin← AR RO(·),OEval(·)

2 (skccoin,stA) Return(coind

?

=coin). whereRO(·)andOEval(·)are oracles described below.

RO(·): GivenX∈ {0,1}as input, this algorithm returnsH(X).

OEval(·): Givenx∈ {0,1}nas input, this algorithm returnsH(s1,x1k...ksn,xn).

Game1: In this game, the random oracle is sampled lazily. Namely, oraclesROandOEvalare modified

as follows. These oracles share a listHList, which is initialized to be empty at the beginning of the game.

RO(·): Given the input X, if there exists y ∈ Rsuch that (X, y) ∈ HList, then it returns y.

Otherwise it picksy← RR , adds(X, y)toHListand returnsy.

OEval(·): Given the inputx, it computesX := s1,x1k...ksn,xn. If there existsy ∈ R such that (X, y)∈HList, then it returnsy. Otherwise it picksy← RR , adds(X, y)toHListand returns

y.

Game2: In this game, an evaluation oracle does not refer toHListat all, and updates ofHListby the oracle are delayed untilA1declares its constrain query. Namely,OEvalis modified as follows, and a procedureHashSetdefined below runs immediately afterA1outputs(c0, c1,stA).OEvalmaintains

a listEList, which is initialized to be empty at the beginning of the game, instead ofHList. Note thatROstill maintains and refersHListas in the previous game.

OEval(·): Given the input x, if there exists y ∈ R such that(x, y) ∈ EList, then it returnsy.

Otherwise it picksy← RR , adds(x, y)toEListand returnsy.

HashSet: For allxsuch that there existsy∈ Rsuch that(x, y)∈EListandBFc0(x) =BFc1(x) = 0, it computesX :=s1,x1k...ksn,xn and adds(X, y)toHList.

Game3: This game is the same as the previous game except thatti,b is independently and uniformly

sampled fromZp fori∈[n]andb∈ {0,1}.

LetTi be the event thatGameireturns1. Then we have to prove that|Pr[T0]−1/2|is negligible. Lemma 5.12.We have|Pr[T2]−Pr[T0]| ≤QH(1 +QE)(2−λ+ 2−)whereQH andQE denote the

numbers ofA’s hash queries and evaluation queries, respectively.

Proof. This can be proven similarly to Lemma5.8and Lemma5.9.

ExptcpaSKE,A(λ) : coin← {R 0,1} k← {R 0,1}`k d coin← AR OEnc(·,·)(1λ) Return(coind ? =coin). OEnc(msg0,msg1) :

Returnct←R Enc(k,msgcoin).

Figure 4: Left: The security experiment for SKE.Right: The definition of the oracleOEnc in the

experiment.

Proof. If{si,b}i∈[n],b∈{0,1}is not given, then the distribution of{ti,b}i∈[n],b∈{0,1}inGame2is uniformly and independently random. We remark that{si,b}i∈[n],b∈{0,1}is not used at all inGame2andGame3. Therefore these games are identical from the view ofA.

Lemma 5.14.We have|Pr[T3]−1/2|= 0.

Proof. InGame3, no information ofcoinis used. ThereforeAcannot distinguish the cases ofcoin= 0

andcoin= 1with a positive advantage.

This completes the proof of privacy.

Combining the above lemmas, the theorem is proven.

6

Application to Secret-Key ABE

In this section, we give a construction of single-key secret key attribute-based encryption (SK-ABE) scheme based on a single-key secure CPRF. Our SK-ABE scheme achieves optimal ciphertext overhead. Namely, a ciphertext of our SK-ABE scheme can be as compact as any CPA secure symmetric key encryption (SKE) scheme. By instantiating the construction based on CPRFs given in Section4, we obtain a single-key secure SK-ABE scheme forNC1with optimal ciphertext overhead. To the best of our

knowledge, this is the first construction of such a primitive based on traditional groups. 6.1 Definitions

Symmetric Key Encryption. We recall the definition of SKE. An SKE scheme with key size`k, a

message spaceMand a ciphertext spaceCconsists of two PPT algorithms(SKE.Enc,SKE.Dec). SKE.Enc(k,msg): This is the encryption algorithm that takes a keyk∈ {0,1}`kand a messagemsg∈ M

as input, and outputs a ciphertextct∈ C.

SKE.Dec(k,ct): This is the decryption algorithm that takes a keyk∈ {0,1}`kand a ciphertextct∈ Cas input, and outputs a messagemsg∈ M.

For correctness of a SKE scheme, we require that for allλ ∈ N, k ∈ {0,1}`k, msg ∈ M, we have SKE.Dec(k,Enc(k,msg)) =msg.

The definition of the CPA security of SKE is given below.

Definition 6.1.We say that an SKE schemeSKE= (SKE.Enc,SKE.Dec)is CPA secure if for all PPT adversary A, the advantage AdvcpaSKE,A(λ) := 2· |Pr[ExptcpaSKE,A(λ) = 1]−1/2|is negligible where

AdvcpaSKE,A(λ)is an experiment defined in Figure4.

It is well known that we can construct a SKE scheme based on any PRF. The construction is roughly described as follows.

ExptsingleABE,A-key(λ) : coin← {R 0,1} (pp,msk)←R ABE.Setup(1λ) (f,stA)← AR OEnc(·,,·)) 1 (pp) skf R ←Constrain(msk, f) d coin← AR OEnc(·,,·)) 2 (skf,stA) Return(coind ? =coin). OEnc(x,(msg0,msg1)) :

Returnct←R Enc(msk, x,msgcoin).

Figure 5: Left: The security experiment for SK-ABE.Right: The definition of the oracleOEncin the experiment.

SKE.Enc(k,msg): It picksr ← {R 0,1}`and outputs a ciphertextct:= (r,PRF(k, r)msg).

SKE.Dec(k,ct): It parses(r,ct0)←ctand outputsPRF(k, r)⊕ct0and a ciphertextct∈ Cas input, and outputs a messagemsg∈ M.

This scheme is CPA secure if ` = ω(log(λ)). Intuitively, this can be seen by the fact that the

probability that the sameris reused is negligible when we have`=ω(log(λ))and encryption is done

polynomial times.

Secret-key Attribute-based Encryption. Here, we recall the definition of SK-ABE. An SK-ABE

scheme for a function classF ={Fλ,k}λ,kNwith an attribute spaceX ⊆ {0,1}n, a message spaceMand a ciphertext spaceCconsists of four PPT algorithms(ABE.Setup,ABE.KeyGen,ABE.Enc,ABE.Dec). ABE.Setup(1λ)→R (pp,msk) : This is the setup algorithm that takes a security parameter1λ as input,

and outputs a public parameterppand a master secret keymsk. We assume thatppis given as input to all other algorithms without explicitly denoting it.23

ABE.KeyGen(msk, f)→R skf : This is the key generation algorithm that takes a master secret keymsk

and a functionf ∈ F as input, and outputs a secret keyskf.

ABE.Enc(msk, x,msg)→R ct : This is the encryption algorithm that takes a master secret keymsk, an attributex∈ X and a messagemsg∈ Mas input, and outputs a ciphertextct∈ C.

ABE.Dec(skf, x,ct0)

R

→msg : This is the decryption algorithm that takes a secret keyskf, an attribute

x∈ X, a ciphertextct∈ Cas input, and outputs a messagemsg∈ M.

For correctness of an SK-ABE scheme for a function classF ={Fλ,k}λ,k∈N, we require that for all λN,msk←R ABE.KeyGen(1λ),f ∈ Fλ,n,x∈ X satisfyingf(x) = 0, andmsg∈ M, we have

ABE.Dec(ABE.KeyGen(msk, f), x,Enc(msk, x,msg)) =msg.

Remark6.2. We note that in our definition, the decryptable condition is “reversed” from a commonly used

definition of (SK-)ABE, in the sense that correctness is required iff(x) = 0instead off(x) = 1. This is

for compatibility to our definition of CPRF (See also Remark2.4).

Then we define a security notion for AB-SKE. In this paper, we only consider single-key security where an adversary obtains at most one decryption key.

We say that an adversaryA= (A1,A2)in the experimentExptsingleABE,A-key(λ)isadmissibleifA1and A2are PPT and respect the following restrictions:

23Since we consider the symmetric key setting, we can dropppby lettingmskincludepp. We defineppfor compatibility to our definition of CPRF.

f ∈ Fλ,nholds forf output byA1.

• All queries(x,(msg0,msg1))made byA1andA2satisfyf(x) = 1.

Furthermore, we say thatAiskey-selectively admissibleif, in addition to the above restrictions,A1makes

no query. That is,Asends no encryption query before it sends a key query.

Definition 6.3.We say that an SK-ABE schemeABE= (ABE.Setup,ABE.KeyGen,ABE.Enc,ABE.Dec)

is adaptively single-key secure if for all admissible adversary A, the advantage AdvsingleABE,A-key(λ) := 2· |Pr[ExptsingleABE,A-key(λ) = 1]−1/2|is negligible whereAdvsingleABE,A-key(λ) is an experiment defined in Figure5.

We define key-selective single-key security of ABE analogously, by replacing the phrase “all admissible adversariesA” in the above definition with “all key-selectively admissible adversariesA”.

Remark6.4. In an ABE setting, the term “selective” usually means thatAhas to make a challenge query at the beginning of the security experiment. On the other hand, “key-selective” as defined above means thatAhas to make a key query at the beginning of the security experiment, and can make a challenge query any time.

Documento similar