• No results found

CCA Security for Self-Updatable Encryption: Protecting Cloud Data When Clients Read/Write Ciphertexts

N/A
N/A
Protected

Academic year: 2020

Share "CCA Security for Self-Updatable Encryption: Protecting Cloud Data When Clients Read/Write Ciphertexts"

Copied!
31
0
0

Loading.... (view fulltext now)

Full text

(1)

CCA Security for Self-Updatable Encryption:

Protecting Cloud Data When Clients Read/Write Ciphertexts

Kwangsu Lee∗ Dong Hoon Lee† Jong Hwan Park‡ Moti Yung§

Abstract

Self-updatable encryption (SUE) is a new kind of public-key encryption, motivated by cloud com-puting, which enables anyone (i.e. cloud server with no access to private keys) to update a past ciphertext to a future ciphertext by using a public key. The main applications of SUE is revocable-storage attribute-based encryption (RS-ABE) that provides an efficient and secure access control to encrypted data stored in cloud storage. In this setting, there is a new threat such that a revoked user still can access past cipher-texts given to him by a storage server. RS-ABE solves this problem by combining user revocation and ciphertext updating functionalities. The mechanism was designed with semantic security (CPA).

Here, we propose the first SUE and RS-ABE schemes, secure against a relevant form of chosen-ciphertext security (CCA). Due to the fact that some chosen-ciphertexts are easily derived from others, we employ a different notion of CCA which avoids easy challenge related messages. Specifically, we define “time extended challenge” (TEC) CCA security for SUE which excludes ciphertexts that are easily de-rived from the challenge (over time periods) from being queried on (namely, once a challenge is decided by an adversary, no easy modification of this challenge to future and past time periods is allowed to be queried upon). We then propose an efficient SUE scheme with such CCA security, and we also define similar CCA security for RS-ABE and present an RS-ABE scheme with this CCA security.

Keywords:Public-key encryption, Self-updatable encryption, Chosen-ciphertext security, Cloud storage.

Sejong University, Seoul, Korea. Email:[email protected].Korea University, Seoul, Korea. Email:[email protected].Sangmyung University, Seoul, Korea. Email:[email protected].

(2)

1

Introduction

In cloud storage, providing efficient access control to encrypted data is very important issue, since it extends traditional data in organizations and services to the Internet based hosting paradigm. To provide simple access control, sensitive data may be kept as the encrypted form of attribute based encryption (ABE) with user revocation [4] in cloud storage which is controlled by some servers which do not have access to keys nor are necessarily fully trusted (and may be accessible at times to some clients). Then, there could be potential threats that are new to this setting, as nicely pointed out by Sahai et al. [30]. That is, a user who is revoked from cloud storage may access old ciphertexts (generated before revocation) stored in cloud storage by colluding with insiders, even if he cannot access new ciphertexts generated after revocation. To provide stronger access control to encrypted data stored in cloud storage, revocable-storage attribute-based encryption (RS-ABE) was introduced by Sahai, Seyalioglu, and Waters [30]. RS-ABE, which is a kind of ABE [17, 31], can solve this problem by providing two functionalities: user revocation and ciphertext updating. That is, the access to an old ciphertext with timeT1 by a revoked user having an old private key with timeT2can be prevented if a cloud sever updates the old ciphertext to new one with timeT3since the

old private key is not enough to decrypt the new ciphertext whereT1<T2<T3.

Self-updatable encryption (SUE) is a new kind of public-key encryption (PKE) that realizes a time-evolution mechanism by allowing anyone (and storage servers in particular) to update a past ciphertext to a future ciphertext by using public keys (or public parameters). In SUE, a ciphertext and a private key are associated with timeTcandTkrespectively and the ciphertext can be decrypted by the private key ifTc≤Tk.

Lee, Choi, Lee, Park, and Yung [22] introduced the concept of SUE and proposed an efficient SUE scheme in bilinear groups by utilizing the properties of full binary trees. They also showed that an efficient RS-ABE scheme can be built by combining an SUE scheme and an ABE scheme. That is, the initial RS-ABE scheme of Sahai et al. [30] containsO(log2Tmax)group elements in a ciphertext to support ciphertext updating where

Tmax is the maximum number of time units, while the modularly built RS-ABE scheme of Lee et al. [22]

just contains O(logTmax) group elements in a ciphertext to support ciphertext updating (due to the use of an SUE scheme). As pointed in [22], SUE can also be used to build time-released encryption (TIE) and key-insulated encryption (KIE) with certain properties.

The available RS-ABE schemes and SUE schemes only provide security (confidentiality) against chosen-plaintext attacks (CPA security) [21, 22, 30]. CPA security provides sufficient security only for passive attackers who do not modify ciphertexts. Cloud storage, however, allows multiple users to access stored ciphertexts, and insiders who are managing cloud storage can also access these ciphertexts [19, 20]. For example, consider the situation where electronic medical records of patients are stored in cloud storage and these records can be accessed by doctors for a diagnosis or prescription. Using the RS-ABE scheme de-scribed above, a patient creates a ciphertext by attaching a policy for accessing his/her medical data, and a doctor who retrieved a private key for his/her own attribute can decrypts the ciphertext if the attributes in the private key satisfy the policy in the ciphertext. In addition, it is possible to flexibly handle the access to these ciphertexts using key revocation and ciphertext updating. In this case, the stored ciphertexts in the cloud storage can be modified by some users (patients, doctors, or administrators) and this modified ciphertext can be decrypted by a doctor if some medical service program is running on this cloud system.

(3)

de-cryption queries on ciphertexts. CCA security for PKE and its extensions was intensively studied by many researchers and is a standard requirement by now e.g., [1, 12, 13, 26, 28, 34]. In addition, there are general methods to achieve it [6, 7, 9]. However, constructing a CCA secure RS-ABE scheme (or CCA secure SUE scheme) is paradoxical by definition, since CCA means non-malleability, but these schemes need to support ciphertext updating functionality over time periods. Thus it seems an unusually hard requirement in this case. Nevertheless, we ask whether and to what extent it is possible to construct some (properly adapted) level of CCA-security for SUE and RS-ABE schemes.

1.1 Our Results

In this paper, we first define time extended challenge (TEC) CCA security for SUE by relaxing standard CCA security. In a standard CCA security model, an adversary given a challenge ciphertext is not allowed to probe on it when accessing the decryption oracle to prevent trivial attacks [28]. As mentioned before, the standard CCA security cannot be used for SUE since it supports the ciphertext updating functionality. We extend the restriction of standard CCA security by not allowing the adversary to ask a decryption query on any ciphertext that is the challenge or updated from the challenge ciphertext. This is a natural extension preventing trivial attacks due to the probing capabilities, but leaving non-trivial attacks scenario in place; it is also in the spirit of similar limitations elsewhere [1,12,34]. We then propose an efficient SUE scheme that provides TEC-CCA security under the decisional Bilinear Diffie-Hellman (DBDH) assumption by modi-fying the SUE scheme of Lee [21]. The design idea of our SUE scheme is given in the later part of this section.

Next, we similarly define TEC-CCA security for RS-ABE since it supports the ciphertext updating functionality as well. We then propose an efficient RS-ABE scheme by combining our TEC-CCA secure SUE scheme, a CCA secure ciphertext-policy ABE (CP-ABE) scheme derived from the CP-ABE scheme of Rouselakis and Waters [29], and the complete subtree (CS) scheme of Naor et al. [25]. We basically follow the design principle of Lee et al. [22] to build our RS-ABE scheme from building blocks, but we propose a key encapsulation mechanism (KEM) of RS-ABE. Additionally, our RS-ABE scheme supports public verifiability of ciphertexts that allows for anyone to check whether ciphertexts are legitimate (original or legally updated) or not. Note that integrity of ciphertexts is easily obtained from public verifiability. We prove that our RS-ABE scheme achieves TEC-CCA security in a selective security model described next. Our RS-ABE scheme is the first one that achieves security beyond CPA, and gives an answer to the question raised by Sahai et al. [30].

(4)

1.2 Our Techniques

A naive approach for building a CCA secure SUE scheme is to employ the CHK method of Canetti et al. [9] by combining a CPA secure SUE scheme of Lee [21] augmented by the Boneh-Boyen IBE scheme [5] and a one-time signature scheme. To improve the efficiency, we use the BMW method of Boyen et al. [7] that is a variant of the CHK method since the role of one-time signature can be replaced by the ciphertext of the BB-IBE scheme and the SUE scheme is a key-encapsulation mechanism (KEM). In this approach, the IBE scheme enables the simulation of the decryption oracle and the one-time signature scheme provides in-tegrity of ciphertexts. However, the resulting CCA secure SUE scheme cannot provide ciphertext updating any longer since the one-time signature scheme is unforgeable. Let(C0=gt,C1=wt∏vsi,{Ci,1=gsi,Ci,2= Fi,L[i](L|i)si})be a CPA secure (simple) SUE ciphertext header ande(g,g)βt be a session key. To solve the

problem mentioned before, we first divide the ciphertext components of a CPA secure SUE scheme into two parts: the first part(C0=gt) is related to a session key and the second part(C1=wt∏vsi,{Ci,1,Ci,2}) is

related to ciphertext updating. We then apply the BMW method only to the first part of ciphertext compo-nents by addingC3= (uπShS)

t where

π=H(C0). The simulation of the decryption oracle and the ciphertext

integrity of the first part are achieved by the BMW method. The ciphertext updating functionality in the sec-ond part is still preserved, but it is needed to verify that the secsec-ond part components are correctly updated or not. To provide the ciphertext verifiability of the second part, we observe that the well-formedness of these components can be checked by bilinear maps since these components consist of Diffie-Hellman tuples. By using these techniques, we can build an SUE scheme with TEC-CCA security.

As mentioned before, we combine a TEC-CCA secure SUE scheme, a CCA secure CP-ABE scheme, and the CS scheme to build a TEC-CCA secure RS-ABE scheme motivated by the design principle of Lee et al. [22]. To prove the security of our RS-ABE scheme, we use the well-known partitioning method. However, we need the selective revocation list model to prove the security of RS-ABE as pointed by Lee [21]. The reason is that an adversary can request many private key queries that match to the challenge ciphertext in RS-ABE and these (matching) private keys should be placed on (fixed) leaf nodes in a binary tree for consistency. The selective revocation list model, introduced by Boldyreva et al. [4], is weaker than the well-known selective model [10]. To prove the security of our RS-ABE scheme in the selective model instead of the selective revocation list model, we observe that if a simulator can predict the number of private key queries that match the challenge ciphertext then the problem can be solved by placing a user’s private key in a random leaf node of the binary tree. That is, if ˜qis the number of private keys such asS∈A∗where

Sis the set of attributes in a private key andA∗is the access structure in the challenge ciphertext, then the simulator can fix the positions of these private keys by arbitrary selecting ˜qnumber of leaf nodes randomly. In this case, the consistency of private keys and update keys is preserved.

1.3 Related Work

(5)

integrity verification [19, 20]. These cloud storage systems use searchable symmetric key encryption to support searching on encrypted data and proof-of-possession protocols to verify the integrity of large files.

Revocable IBE and Its Extensions. Providing an efficient user revocation in identity-based encryption (IBE) and attribute-based encryption (ABE) is very important issue in real applications. A scalable and efficient revocable IBE (R-IBE) scheme was first proposed by Boldyreva et al. [4] by using a fuzzy IBE scheme and a full binary tree. After that numerous R-IBE schemes were presented in [23, 24, 27, 32, 33]. An efficient revocable ABE (R-ABE) scheme also proposed in [4] and its security was claimed in the weaker selective revocation list model. Sahai et al. [30] introduced the concept of RS-ABE to provide efficient access control on encrypted data stored in cloud storage. After the introduction of ABE, an efficient RS-ABE schemes that incorporate SUE schemes were presented in [21,22]. Lee et al. [22] introduced the notion of SUE and proposed an efficient SUE scheme with CPA security by modifying a hierarchical identity-based encryption (HIBE) scheme [5] to apply the design strategy of forward-secure encryption (FSE) [10]. Then, a number of different SUE schemes were proposed in [14, 21]. The main application of SUE is RS-ABE for cloud storage [22]. However, SUE itself can be used for other interesting applications: timed-release encryption and key-insulated encryption.

Chosen-Ciphertext Security. Security against (adaptively) chosen ciphertext attacks (or CCA security) is the standard notion of PKE [28]. For some applications, more adversary constrained notions of CCA security are considered since CCA security is too strong and immediately un-achievable. Such constrained adversary notions have been used before: Dolev et al. introduced nonmalleable security [15], Shoup introduced benign malleability [34], An et al. introduced generalized CCA security (or gCCA security) [1], and Canetti et al. introduced Replayable CCA security (or RCCA security) [12]. Note that benign malleability, gCCA security, and publicly detectable RCCA security are in fact the same notion. This (more adversarially constrained) CCA security was used to prove the security of other cryptographic primitives [11, 36].

2

Preliminaries

In this section, we define full binary trees and bilinear groups, and then introduce complexity assumptions in bilinear groups.

2.1 Full Binary Tree

For binary trees, we follow the notation in [22]. A full binary treeBT is a tree data structure where each node except the leaf nodes has two child nodes. LetNbe the number of leaf nodes inBT. The number of all nodes inBT is 2N−1. For any index 1≤i≤2N−1, we denote by vi a node inBT. The depth of a

nodeviis the length of the path from the root node to the node. The root node is at depth zero. The depth

ofBT is the maximum depth of a leaf node. A level ofBT is a set of all nodes at given depth. Siblings are nodes that share the same parent node.

For each nodevi∈ BT, we associatedviwith a unique label stringL∈ {0,1}∗. The label of each node

is assigned as follows: Each edge in the tree is assigned with 0 or 1 depending on whether the edge is connected to its left or right child node. The labelL of a node vi is defined as the bit string obtained by

reading all the labels of edges in the path from the root node to the nodevi. We assign a special empty string

to the root node label. We defineL(i)be a mapping from the indexiof a nodevi to a labelL. We also use

L(vi)asL(i)if there is no ambiguity. For a label stringL∈ {0,1}≤n, we define some notations: L[i]is the

(6)

For a full binary treeBT and a subsetRof leaf nodes,ST(BT,R)is defined as the Steiner Tree induced by the setRand the root node, that is, the minimal subtree ofBT that connects all the leaf nodes inRand the root node. We simply denoteST(BT,R)byST(R).

2.2 Bilinear Groups

LetGandGT be two multiplicative cyclic groups of prime orderp. Letgbe a generator ofG. The bilinear map is a mape:G×G→GT with the following properties:

1. Bilinearity: for allu,v∈Gand alla,b∈Zp, we havee(ua,vb) =e(u,v)ab.

2. Non-degeneracy:e(g,g)6=1.

We say thatGis a bilinear group if the group operations inGandGT as well as the bilinear mapeare all

efficiently computable.

2.3 Complexity Assumptions

Assumption 1(Decisional Bilinear Diffie-Hellman, DBDH). Let(p,G,GT,e) be a description of the

bi-linear group of prime order p. Letg be a random generator ofG. The DBDH assumption is that if the challenge tuple

D= (p,G,GT,e),g,ga,gb,gc

andZ,

are given, no probabilistic polynomial-time (PPT) algorithm A can distinguish Z=Z0 =e(g,g)abc from Z=Z1=e(g,g)d with more than a negligible advantage. The advantage ofAis defined asAdvDBDHA (λ) =

Pr[A(D,Z0) =0]−Pr[A(D,Z1) =0]

where the probability is taken over random choices ofa,b,c,d∈Zp.

3

Self-Updatable Encryption

In this section, we first define the syntax and the chosen ciphertext security of SUE. After that we propose an efficient SUE scheme in bilinear groups and prove its security under the standard assumption.

3.1 Definitions

Before we introduce SUE, we define ciphertext delegatable encryption (CDE) that is a building block of SUE. The concept of CDE was introduced by Lee et al. [22] and it is public-key encryption (PKE) that supports the delegation of ciphertexts. In CDE, a ciphertext header is associated with a label stringLand a private key is also associated with a label stringL0. The ciphertext header withLcan be delegated to a new ciphertext header with a new label stringL0 with the restriction that Lis a prefix of L0. IfL is a prefix of

L0, then the ciphertext header with Lcan be decrypted by the private key withL0. We slightly modify the definition of CDE in [22]. The syntax of CDE is given as follows:

Definition 3.1(Ciphertext Delegatable Encryption). A ciphertext delegatable encryption (CDE) scheme for

the setLof labels consists of eight PPT algorithms,Init,Setup,GenKey,RandKey,Encaps,DelegateCT,

VerifyCT, andDecaps, which are defined as follows:

Init(1λ). The initialization algorithm takes as input a security parameter 1λand outputs a group description

(7)

Setup(GDS, `). The setup algorithm takes as input a group description stringGDSand the maximum length

`of the label strings. It outputs a master keyMKand public parametersPP.

GenKey(L,MK,PP). The key generation algorithm takes as input a label stringL∈ {0,1}nwithn`, the

master keyMK, and the public parametersPP. It outputs a private keySKL.

RandKey(SKL,δ,PP). The key randomization algorithm takes as input a private keySKL, an exponentδ,

and the public parametersPP. It outputs a randomized private keySKL.

Encaps(L,t,~s,PP). The encapsulation algorithm takes as input a label stringL∈ {0,1}d withd`, an

exponentt, an exponent vector~s, and the public parametersPP. It outputs a ciphertext headerCHL

and a session keyEK.

DelegateCT(CHL,c,PP). The ciphertext delegation algorithm takes as input a ciphertext headerCHLfor a

label stringL∈ {0,1}d withd< `, a bit valuec∈ {0,1}, and the public parametersPP. It outputs a

delegated ciphertext headerCHL0 for the label stringL0=Lkc.

VerifyCT(CHL,L,PP). The ciphertext verification algorithm takes as input a ciphertext headerCHL, a label

stringL, and the public parametersPP. It outputs 1 if the ciphertext header is valid or 0 otherwise.

Decaps(CHL,SKL0,PP). The decapsulation algorithm takes as input a ciphertext headerCHL, a private key

SKL0, and the public parametersPP. It outputs a session keyEKor the distinguished symbol⊥.

The correctness property of CDE is defined as follows: For allPP,MKgenerated bySetup, anySKL0 gener-ated byGenKey, anyCHLandEK generated byEncapsorDelegateCT, it is required that:

• IfLis a prefix ofL0, thenDecaps(CHL,SKL0,PP) =EK.

• IfLis not a prefix ofL0, thenDecaps(CHL,SKL0,PP) =⊥with all but negligible probability.

Additionally, it requires that the delegated ciphertext header ofDelegateCT is a valid ciphertext header under the new label string.

SUE, introduced by Lee et al. [22], is new PKE that supports the updating of ciphertexts by using a public key (or public parameters). In SUE, a ciphertext header is associated with timeT and a private key is associated with timeT0. IfT0≥T, then the ciphertext header withT can be decrypted by a private key withT0. That is, the ciphertext header withT can be updated to a new ciphertext header withT0and then the private key withT0can decrypt the updated ciphertext header. We slightly modify the definition of SUE in [22]. The syntax of SUE is given as follows:

Definition 3.2(Self-Updatable Encryption). A self-updatable encryption (SUE) scheme consists of eight

PPT algorithms,Init,Setup,GenKey,RandKey,Encaps,UpdateCT,VerifyCT, andDecaps, which are defined as follows:

Init(1λ). The initialization algorithm takes as input a security parameter 1λand outputs a group description

stringGDS.

Setup(GDS,Tmax). The setup algorithm takes as input a group description stringGDSand the maximum

timeTmax. It outputs a master keyMKand public parametersPP.

GenKey(T,MK,PP). The key generation algorithm takes as input time T, the master keyMK, and the

(8)

RandKey(SKT,δ,PP). The key randomization algorithm takes as input a private keySKT, an exponentδ,

and the public parametersPP. It outputs a randomized private keySKT.

Encaps(T,t,PP). The encapsulation algorithm takes as input timeT, an exponentt, and the public param-etersPP. It outputs a ciphertext headerCHT and a session keyEK.

UpdateCT(CHT,T+1,PP). The ciphertext update algorithm takes as input a ciphertext headerCHT for

timeT, next timeT+1, and the public parametersPP. It outputs an updated ciphertext headerCHT+1.

VerifyCT(CHT,T,PP). The ciphertext verification algorithm takes as input a ciphertext headerCHT, time

T, and the public parametersPP. It outputs 1 if the ciphertext header is valid or 0 otherwise.

Decaps(CHT,SKT0,PP). The decapsulation algorithm takes as input a ciphertext headerCHT, a private key

SKT0, and the public parametersPP. It outputs a session keyEKor the distinguished symbol⊥.

The correctness property of SUE is defined as follows: For allPP,MK generated bySetup, allT,T0, any

SKT0 generated byGenKey, and anyCHT andEKgenerated byEncapsorUpdateCT, it is required that:

• IfT ≤T0, thenDecaps(CHT,SKT0,PP) =EK.

• IfT >T0, thenDecaps(CHT,SKT0,PP) =⊥with all but negligible probability.

Additionally, it requires that the updated ciphertext header ofUpdateCTis a valid ciphertext header under the new time.

Remark1. The syntax of SUE in [22] additionally includes the ciphertext randomization algorithmRandCT,

but we omit this algorithm in the above syntax of SUE. TheRandCTalgorithm ensures that the ciphertext distribution ofUpdateCTis statistically equal to that ofEncapsby completely re-randomizing the output

ofUpdateCT. However, we weaken this strong requirement in this paper by just requiring that the output

ofUpdateCTis just a valid ciphertext header because of the reason in Remark 4. In this case, we do not

need to completely re-randomize the updated ciphertext header ofUpdateCT.

Remark2. If a ciphertext headerCHT with timeT is updated to multiple ciphertext headersCHT1,CHT2, and

CHT3 whereT1,T2,T3≥T, then those updated ciphertext headers should be re-randomized to remove the relationship between ciphertext headers. That is, an adversary who obtained the session key of a ciphertext header can use this session key to break other ciphertext headers if they are not re-randomized. However, in most applications we can ensure that a ciphertext headerCHT is updated to a new single ciphertext header

CHT+1and completely delete the previous one. In this case, we can prevent the previous attack since there

is only one ciphertext header that is related to the original ciphertext header.

(9)

security definition, we relax the CCA security by restricting that the adversary cannot query the decryption oracle on a ciphertext that is the challenge or updated from the challenge ciphertext. We may view these ciphertexts that are the challenge or updated from the challenge ciphertext as time extended challenge (TEC) ciphertexts. The TEC-CCA security of SUE is given as follows:

Definition 3.3(Selective TEC-CCA Security). The selective TEC-CCA security for SUE schemes is defined

in terms of the indistinguishability under time extended challenge chosen plaintext attacks (IND-TEC-CCA). The security game is defined as the following game between a challengerCand a PPT adversaryA:

Init:Afirst submits the challenge timeT∗.

Setup:Cruns the initialization and setup algorithms to generateMK andPP. It givesPPtoA.

Query 1:Aadaptively requests a polynomial number of private key and decryption queries. Chandles the

queries as follows:

• If this is a private key query for time T subject to the restriction T <T∗, then it creates the private keySKT for the timeT by calling the key generation algorithm. It responses the query

withSKT toA.

• If this is a decryption query for a ciphertext headerCHT, then it computes the decapsulated

session keyEKby calling the decryption algorithm and responses the query withEKtoA.

Challenge: Arequests a challenge ciphertext header and a challenge session key. Ccreates a ciphertext

headerCHT∗∗ and a session key EK∗ by calling the encryption algorithm under the challenge time

T∗. It flips a random bitγ∈ {0,1}. Ifγ=0, then it givesCHT∗∗ andEK∗ toA. Otherwise, it gives

CHT∗∗ and a random session keyEK0toA. Note thatAcan obtain updated ciphertext headers that are derived from the challenge ciphertext header since the ciphertext update algorithm can be performed by anyone.

Query 2: Acontinues to request private key and decryption queries. Chandles the private key queries as

the same as before. It handles the decryption queries as follows:

• If this is a decryption query for a ciphertext headerCHT subject to the restriction thatCHT is

not updated fromCHT∗∗ in case ofT ≥T∗, then it computes the decapsulated session keyEKby calling the decryption algorithm. It responses the query withEKtoA.

Guess: FinallyAoutputs a bitγ0.

The advantage of A is defined asAdvSU EA (λ) =

Pr[γ =γ0]−1

2

where the probability is taken over all

the randomness of the game. An SUE scheme is selectively secure under time extended challenge chosen ciphertext attacks if for all PPT adversariesA, the advantage ofAin the above game is negligible in the security parameterλ.

Remark3. The above TEC-CCA security for SUE is closely related to the relaxed CCA security notions:

(10)

Remark 4. If an SUE scheme can re-randomize the output of the UpdateCT algorithm, then this re-randomizable SUE scheme cannot satisfy the TEC-CCA security. The reason is that there is no efficiently computable relationR(−,−)that can check whether a ciphertext header is updated from the challenge ci-phertext header or not. Therefore, the syntax of SUE for TEC-CCA security only requires for theUpdateCT algorithm to output a just valid ciphertext header.

3.2 Managing the Time Structure

To efficiently manage the time structure, we use a full binary tree as in [10, 22, 30]. We define some useful notations for a binary tree. Letvbe a node inBT.Parent(v)is the parent node of the input nodev.Path(v)

is the set of path nodes from the root node to the input nodev. RightSibling(v)is the right sibling node of

v. That is,RightSibling(v) =RightChild(Parent(v))whereRightChild(v)is the right child ofv. We also defineTimeNodes(v) ={v} ∪RightSibling(Path(v))\Path(Parent(v))whereRightSibling(Path(v))is the set of right sibling nodes ofPath(v). LetLbe the label string of a nodev. We also defineParent(L), Path(L), RightSibling(L), andTimeNodes(L) similarly except that these are defined by using the label stringLofv.

For each node inBT, we assign a unique time valueT ∈ {1, . . . ,Tmax}by using pre-order traversal that

recursively visits the root node, the left subtree, and the right subtree. That is, the root node is assigned to 1, the left most leaf node is assigned tod+1, and the right most leaf node is assigned toTmax=2d+1−1

whered is the depth of the tree. We letvT be a node associated with timeT. We define a mappingψ from

timeT to a labelL. That is,ψ(T) returns the labelLof a nodevT associated with timeT. The following

theorem guarantees that we can handle the time components efficiently.

Theorem 3.1( [30]). LetBT be a full binary tree of depth d and vT be a node associated with time T by

pre-order traversal. For any node vT ∈ BT,TimeNodes(vT)satisfies the following properties:

• Property 1.TimeNodes(vT)∩Path(vT0)6=/0if and only if T ≤T0

• Property 2. If v∈TimeNodes(vT+1), then there is an ancestor of v inTimeNodes(vT).

• Property 3.|TimeNodes(vT)| ≤d+1

Remark5. In pre-order traversal, ifvT is an internal node, thenvT+1=LeftChild(vT). IfvT is a leaf node,

thenvT+1=RightChild(vT0)wherevT0∈Path(vT)is a node with the largest depth such thatLeftChild(vT0)∈ Path(vT).

3.3 Construction

(11)

CDE.Init(1λ): It first generates bilinear groups

G,GT of prime order p. It chooses a random generator

g∈Gand outputsGDS= ((p,G,GT,e), g).

CDE.Setup(GDS, `): It chooses a random exponentβ∈Zpand random elementsw,v,u,{hi,0,hi,1}`i=1∈G.

LetFi,b(L) =uLhi,bwherei∈[`]andb∈ {0,1}. It outputs a master keyMK=βand public parameters

PP= (p,G,GT,e), g,w,v, u,{hi,0,hi,1}`i=1, Λ=e(g,g)β

.

CDE.GenKey(L,MK,PP): LetL be ann-bit label string. It chooses random exponentsr,r1, . . . ,rn∈Zp

and outputs a private keySKL= K0=gβwr,K1=g−r,

Ki,1=vrFi,L[i](L|i)ri,Ki,2=g−ri

n i=1

.

CDE.RandKey(SKL,δ,PP): LetSKL= (K0,K1,{Ki,1,Ki,2})andδ be an exponent inZp. It selects random

exponentsr0,r10, . . . ,rn0 ∈Zpand outputs a re-randomized private keySKL= K00 =K0·gδwr

0

, K10 =

K1·g−r

0

,

Ki0,1=Ki,1·vr

0

Fi,L[i](L|i)r

0

i, K0

i,2=Ki,2·g−r

0

i n

i=1

.

CDE.Encaps(L,t,~s,PP): LetLbe ad-bit label string. By using the given exponentt∈Zpand the vector~s= (s1, . . . ,sd)∈Zdp, it outputs a ciphertext headerCHL= C0=gt,C1=wt∏di=1vsi,

Ci,1=gsi,Ci,2= Fi,L[i](L|i)si

d i=1

and a session keyEK=Λt.

CDE.DelegateCT(CHL,c,PP): LetCHL= (C0,C1,{Ci,1,Ci,2})whereL∈ {0,1}d. It first sets a new label

stringL0=Lkcwherec∈ {0,1}. It selects a random exponentsd+1∈Zpand outputs a delegated

ci-phertext headerCHL0= C0

0=C0,C10=C1·vsd+1,{Ci0,1=Ci,1,Ci0,2=Ci,2}di=1,Cd0+1,1=gsd+1,C0d+1,2= Fd+1,c(L0)sd+1

.

CDE.VerifyCT(CHL,L,PP): LetCHL= (C0,C1,{Ci,1,Ci,2})for a label stringL∈ {0,1}d. It checks that

e(C1,g) ?

=e(C0,w)·e(∏di=1Ci,1,v)ande(Ci,2,g) ?

=e(Ci,1,Fi,L[i](L|i))for alli∈ {1, . . . ,d}. If all tests

pass, then it outputs 1. Otherwise, it outputs 0.

CDE.Decaps(CHL,SKL0,PP): LetCHL= (C0,C1,{Ci,1,Ci,2}d

i=1) for a label stringL∈ {0,1}d andSKL0 =

(K0,K1,{Ki,1,Ki,2}ni=1)for a label string L0∈ {0,1}n. IfLis a prefix ofL0, then it outputs a session

keyEKby computinge(C0,K0)·e(C1,K1)·∏di=1 e(Ci,1,Ki,1)·e(Ci,2,Ki,2)

. Otherwise, it outputs⊥.

Remark6. Compared to the CDE scheme of Lee [21], we added theVerifyCTalgorithm and modified the

Decapsalgorithm. TheVerifyCTalgorithm simply checks the validity of CDE ciphertext headers by using

bilinear maps since the group elements in a CDE ciphertext header consist of DDH tuples. The Decaps algorithm derives a session key without running theDelegateCTalgorithm.

LetHbe a family of collision resistant hash functions Hz, indexed by some finite index set {z}. Our SUE scheme is described as follows:

SUE.Init(1λ): It outputsGDSby runningCDE.Init(1λ).

SUE.Setup(GDS,Tmax): It first chooses random elementsuS,hS∈Gand obtainsMKCDEandPPCDEby

run-ningCDE.Setup(GDS, `)whereTmax=2`+1−1. It also chooses a random indexzfor a hash function

Hz∈ H. It outputs a master keyMK=MKCDEand public parametersPP= PPCDE,z,uS,hS

.

SUE.GenKey(T,MK,PP): It outputsSKT by runningCDE.GenKey(ψ(T),MK,PP).

SUE.RandKey(SKT,δ,PP): It outputsSKT by runningCDE.RandKey(SKT,δ,PP).

(12)

1. It first obtainsT L= (L(0),L(1), . . . ,L(d))by computingTimeNodes(L)whereL=L(0). Letd(j)

be the length of the labelL(j). Note that the labels in T L are ordered according to pre-order traversal.

2. For each labelL(j)inT Lsuch that 0≤ j≤d, it proceeds the following steps:

(a) If j=0, then it sets a vector~s= (s1, . . . ,sd(0))by selecting random exponentss1, . . . ,sd(0)∈

Zp. It obtainsCH(0)= (C0,C1,{Ci,1,Ci,2}d

(0)

i=1)andEKby runningCDE.Encaps(L(0),t,~s,PP).

(b) If j≥1, then it sets a new vector~s0 = (s01, . . . ,s0

d(j)−1,s

0

d(j)) wheres

0 1, . . .s

0

d(j)−1 are copied from~sands0

d(j) is randomly selected inZp. It obtainsCH

(j)= (C0

0,C10,{Ci0,1,Ci0,2}d

(j)

i=1) by

runningCDE.Encaps(L(j),t,~s0,PP). Next, it removes redundant elementsC00,{C0i,1,Ci0,2}di=(j1)−1 fromCH(j)since they are contained inCH(0).

3. It computesπ=Hz(C0)and setsC3= (uπShS) t.

4. It outputs a ciphertext headerCHT = CH(0),CH(1), . . . ,CH(d),C3

andEK.

SUE.UpdateCT(CHT,T+1,PP): Let CHT = (CH(0), . . . ,CH(d),C3) and L(j) be the label of CH(j). It

proceeds as follows:

1. If the length d of L(0) is less than `, then it first obtains CHL(0)k0 and CHL(0)k1 by running CDE.DelegateCT(CH(0),c,PP) for allc∈ {0,1} sinceCHL(0)k0 is the ciphertext for the next time T+1 by pre-order traversal. Next, it prunes redundant elements in CHL(0)k1. It out-puts an updated ciphertext header CHT+1 = CH0(0)=CHL(0)k0,CH0(1) =CHL(0)k1,CH0(2)=

CH(1), . . . ,CH0(d+1)=CH(d),C3

.

2. Otherwise, it copies common elements inCH(0)toCH(1)and simply removesCH(0)sinceCH(1)

is the ciphertext header for the next time T+1 by pre-order traversal. It outputs an updated ciphertext headerCHT+1= CH0(0)=CH(1), . . . ,CH0(d−1)=CH(d),C3

.

SUE.VerifyCT(CHT,T,PP): LetCHT = (CH(0), . . . ,CH(d),C3). It sets a label stringL=ψ(T) and

pro-ceeds as follows:

1. It first obtains T L= (L(0),L(1), . . . ,L(d)) by computing TimeNodes(L) whereL=L(0). Note that the labels inT L are ordered according to pre-order traversal. It checks that the number of labels inT Lis the same as the number of CDE ciphertext headers inCHT.

2. For each labelL(j)inT L, it checks 1=? CDE.VerifyCT(CH(j),L(j),PP). Note that the common elements ofCH(0)should be copied toCH(j)when j>0.

3. Next, it computes π =Hz(C0) and checks e(C3,g) ?

=e(C0,uπ

ShS) whereC0 is the element in CH(0).

4. It outputs 1 if all checking pass. Otherwise, it outputs 0.

SUE.Decaps(CHT,SKT0,PP): IfT >T0, then it outputs⊥since it cannot decrypt. Otherwise, it proceeds as follows: It first checks 1=? SUE.VerifyCT(CHT,T,PP). If the checking fails, then it outputs⊥.

Next, it findsCH(j) fromCHT such that L(j) is a prefix ofL0 =ψ(T0)and outputs EK by running

(13)

Remark 7. Compared to the SUE scheme of Lee [21], the Encaps and Decaps algorithms of our SUE scheme are different. TheEncapsalgorithm additionally generates a group elementC3 to provide the

in-tegrity of the group elementC0by using the direct method of Boyen et al. [7]. TheDecapsalgorithm checks

the validity of the ciphertext header before it derives a session key by running theVerifyCTalgorithm. The

VerifyCTalgorithm first checks the validity of CDE ciphertext headers by runningCDE.VerifyCTand then

checks the integrity ofC0by using bilinear maps.

Remark8. LetCHT andCHT00 be two valid SUE ciphertext headers with group elementsC0andC00

respec-tively. The efficiently computable relationR(CHT,CHT00) in Remark 3 returnsTrue ifCHT andCHT00 are valid SUE ciphertext headers,T≤T0, andC0=C00 since the integrity ofC0andC00 is preserved after running

the ciphertext update algorithm.

3.4 Correctness

The correctness of the CDE scheme was shown by Lee [21]. Note that the modifiedDecaps algorithm preserve the correctness. LetCHT be a ciphertext header with timeT generated bySUE.EncapsandSKT0 be a private key with timeT0generated bySUE.GenKey. To show the correctness of the above SUE scheme, we should show thatSUE.Decapsderives a valid session keyEK fromCHT andSKT0 ifT ≤T0 and that

CHT+1generated bySUE.UpdateCTis a valid ciphertext header with timeT+1.

We first show that SUE.Decapscan derive a valid session key by presenting that SUE.VerifyCTcan check the validity ofCHTandCDE.Decapscan be used to derive a session key. The algorithmSUE.VerifyCT

checks that the number of CDE ciphertext headers inCHT, the validity of each CDE ciphertext header by

running CDE.VerifyCT, and the validity ofC3. The validity of CDE ciphertext headers can be easily

checked by using bilinear maps since a CDE ciphertext header consists of elements composed of Diffie-Hellman (DH) tuples and bilinear maps can check the validity of DDH tuples. The validity ofC3also can be easily checked by using bilinear maps since(C0,uπShs,C3)is also a DDH tuple.

TheCDE.Decapsalgorithm only can derive a valid session key if the label of a CDE ciphertext header is

a prefix of the label of a CDE private key. From the property 2 of Theorem 3.1, we haveTimeNodes(ψ(T))∩

Path(ψ(T0))6= /0 ifT≥T0whereT andT0are times associated to the SUE ciphertext header and the SUE private key respectively. Thus,CDE.Decapscan derive a session key since the SUE ciphertext header con-sists of many CDE ciphertext header with labels inTimeNodes(ψ(T))and the SUE private key is equal to

the CDE private key.

We now show that the output of SUE.UpdateCTis a valid ciphertext header. Recall that an SUE ci-phertext header CHT with time T consists of CDE ciphertext headers that are associated with labels in

TimeNodes(ψ(T)). Let vT be a node inBT associated with time T by pre-order traversal. If vT is an

internal node, we have vT+1=LeftChild(vT) from Remark 5. Thus we have TimeNodes(ψ(T+1))\

TimeNodes(ψ(T)) ={LeftChild(vT),RightChild(vT)}sinceRightSibling(vT+1) =RightChild(vT) by

the definition ofTimeNodes. IfvT is a leaf node,vT+1=RightChild(vT0)wherevT0 ∈Path(vT)is a node with the largest depth such thatLeftChild(vT0)∈Path(vT)from Remark 5. Thus we haveTimeNodes(ψ(T))\

TimeNodes(ψ(T+1)) =vT. Therefore, the correctness ofSUE.UpdateCTis easily obtained if the output

ofCDE.DelegateCTis a valid CDE ciphertext header.

3.5 Security Analysis

(14)

the CPA security proof as a sub-simulator. Recall that the original SUE scheme of the above SUE scheme was proven to be selectively secure under the DBDH assumption by Lee [21]. If the meta-simulator use the previous simulator as a sub-simulator, then it can use the power of the sub-simulator to generate private keys and some elements of a challenge ciphertext header.

Theorem 3.2( [21]). The original SUE scheme is selectively secure under chosen plaintext attacks if the

DBDH assumption holds.

The simulator of this proof sets the elementgin the assumption(g,ga,gb,gc)as the generator of public parameters, implicitly sets ab as the master key β, and sets gc in the assumption as the element gt in a

challenge ciphertext header. Note that these three settings are essential for the correctness of the meta-simulation. Now we can prove the TEC-CCA security of our SUE scheme as follows:

Theorem 3.3. The above SUE scheme is selectively secure under time extended challenge chosen ciphertext

attacks if the DBDH assumption holds. That is, for any PPT adversary A, we have that AdvSU EA (λ)≤

AdvDBDHB (λ) +negl(λ).

Proof. Suppose there exists an adversary A that attacks the above SUE scheme with a non-negligible

advantage. A simulator B that solves the DBDH assumption using A is given: a challenge tuple D= ((p,G,GT,e),g,ga,gb,gc)andZwhereZ=Z0=e(g,g)abcorZ=Z1∈GT. LetBSU Ebe a simulator in the

security proof of Theorem 3.2. ThenBthat interacts withAis described as follows:

Init:Ainitially submits challenge timeT∗.Bfirst runsBSU Eby givingDandZ.

Setup: B submits T∗ to BSU E and receives PPSU E = ((p,G,GT,e),g,w,v,u,{hi,j},Λ=e(g,g)β). Note

that BSU E implicitly sets β =ab. It chooses random exponents u0S,h

0

S ∈Zp. It also chooses a random

indexzforHzand calculatesπ∗=Hz(gc). It implicitly setsβ =aband publishes public parametersPP=

PPSU E,z, uS=gagu

0

S,hS= (ga)−π∗gh0S.

Query 1: Aadaptively requests a polynomial number of private key queries and decryption queries. IfA

requests a private key query for timeT such thatT <T∗, thenBreceives a private keySKT by requesting a

private key query toBSU Eand responsesSKT toA. IfArequests a decryption query for a ciphertext header

CHT with timeT, thenBhandles this query as follows:

1. Let CHT = (CH(0), . . . ,CH(d),C3) andCH(0)= (C0,C1,{Ci,1,Ci,2}). It first checks whether the

ci-phertext headerCHT is valid or not by runningSUE.VerifyCT(CHT,T,PP). If the ciphertext header

is not valid, then it responds with⊥. Otherwise, the ciphertext header is well-formed such asC0=gt

for some unknownt∈Zp.

2. IfT <T∗, then it receives a private keySKT by requesting a private key query toBSU Eand obtains a

session keyEKby runningSUE.Decaps(CHT,SKT,PP).

3. IfT≥T∗, then it calculatesπ=Hz(C0)and performs the following steps: Ifπ=π∗, then it terminates

the simulation withAand halts since it cannot response. Ifπ6=π∗, then it selects a random exponent r0∈Zpand computes the session key by implicitly settingr3=−(u0Sπ+h0S)/(π−π∗) +r0as

EK=e C0,(gb)−

u0Sπ+h0S

π−π∗ (uπ ShS)

r0

·e C3,(gb)π−1π∗g−r

0

=e(gt,gab(uπ

ShS)

r3)·e((uπ ShS)

t

,g−r3) =e(ga,gb)t.

(15)

Challenge: To create the challenge ciphertext header and the session key for the challenge time T∗, B proceeds as follows:

1. It first requests a challenge query toBSU E and receivesCH∗= (CH(0),CH(1), . . . ,CH(d))andEK∗.

Recall thatBSU Esets the group elementC0inCH∗asgcin the challenge tuple.

2. It setsC3= (gc)u

0

Sπ∗+h0S. Note that this component is valid since(gc)u0Sπ∗+h0S= (gagu0S)π∗·(ga)−π∗gh0Sc=

(uπ∗

S hS)

cfor

π∗=Hz(C0) =Hz(gc).

3. It sets the challenge ciphertext headerCHT∗∗= CH(0),CH(1), . . . ,CH(d),C3

and givesCHT∗∗andEK∗ toA.

Query 2: This phase is handled as the same as the query 1 phase sinceBcan fix the group elementC0=gc

for the challenge ciphertext header at the setup phase in the selective model. Note thatR(CHT∗∗,CHT) =True ifCHT is a valid SUE ciphertext header, T∗≤T, and C0∗=C0 from the Remark 8. By the restriction

of the TEC-CCA security model, A can request the decryption of any ciphertext header CHT such that

R(CHT∗∗,CHT) =Falseand these ciphertext headers are correctly handled in the query 1 phase sinceπ6=π∗.

Guess:Aoutputs a guessµ0.Balso outputsµ0.

To finish the proof, we show that the meta-simulatorBcorrectly handles the queries ofA. The public parametersPPis correct sincePPSU E is correct anduS,hSare properly randomized. The private key is also

correct since it is generated byBSU E. Now, we will show that the decryption query is correctly handled.

From the correctness of theSUE.VerifyCTalgorithm, we confirm that the ciphertext headerCHT is

asso-ciated with claimed time T. The decryption only fails when T ≥T∗ andπ =π∗ where π=Hz(C0)and π∗=Hz(gc). The probability of this collision event is negligible sinceHz is a collision resistant function

andC06=gcfrom the restriction of the security model. Finally, the challenge ciphertext is also correct since C3can be easily calculated. This completes our proof.

Corollary 3.4. The above SUE scheme is fully secure under time extended challenge chosen ciphertext

attacks if the DBDH assumption holds and Tmaxis a polynomial value. That is, for any PPT adversaryA,

we have thatAdvSU EA (λ)≤Tmax·AdvDBDHB (λ) +negl(λ).

3.6 Discussions

Efficiency Analysis. The proposed SUE scheme composed of O(logTmax) group elements in the public

parameters, a private key, and a ciphertext header since it utilizes the CDE scheme proposed by Lee [21]. Note that our SUE scheme additionally includes two group elements in the public parameters and one group element in a ciphertext header to provide the TEC-CCA security. Unlike the existing CPA secure SUE scheme, our TEC-CCA secure SUE scheme should check the validity of the ciphertext header in the decapsulation algorithm. If the SUE decapsulation algorithm checks the validity of CDE ciphertext headers by running the the CDE verification algorithm in a simple manner, then it requiresO(log2Tmax)

pairing operations since the CDE verification algorithm requires O(logTmax) pairing operations and one SUE ciphertext header consists ofO(logTmax)CDE ciphertext headers. However, since there are duplicate values in CDE ciphertext headers, it is possible to reduce the pairing operation fromO(log2Tmax)times to

O(logTmax)times during verification. See below in this section for this improvement.

(16)

parameter proposed by Lee [21] can be used. The public parameter of a TEC-CCA secure SUE scheme constructed in this way hasO(1)group elements instead ofO(logTmax)group elements, and the private key and the ciphertext are all kept in the same number of group elements as the previous SUE scheme. However, the security of this SUE scheme with short public parameters is only proven to be TEC-CCA secure under theq-type assumption instead of the standard DBDH assumption.

Time-Interval SUE. By combining two CPA secure SUE schemes, a CPA secure time-interval SUE (TI-SUE) scheme can be constructed as presented by Lee [21]. In TI-SUE, a ciphertext header is associated with a time range specified by two timesTLandTRand a private key is associated with timeT0. IfTL≤T0≤TR,

then the ciphertext with TL and TR can be decrypted by a private key withT0. By following the design

principle of Lee, we can also build a TEC-CCA secure TI-SUE scheme by combining two TEC-CCA secure SUE schemes. That is, the master key is simply shared between two SUE schemes to prevent collusion attacks, the ciphertext header of one SUE scheme is used for future-time SUE, and the ciphertext header of another SUE scheme is used for past-time SUE. This TI-SUE scheme also can be proven to be secure under the DBDH assumption. Note that we can also reduce the size of public parameters if the CDE scheme with short public parameters is used.

Improving Ciphertext Verification. The ciphertext header of the proposed SUE scheme consists of max-imum logTmax CDE ciphertext headers and the verification of one CDE ciphertext header requires up to

2 logTmax+3 pairing operations. Therefore, if the validity of the SUE ciphertext header is checked by a

simple method, at most 2 log2Tmax+3 logTmax+2 pairing operations are required. As described above, one

method of reducing the number of pairing operations in ciphertext verification is to omit the verification of duplicate elements. In other words, since the CDE ciphertext headers contained in one SUE ciphertext header share random exponents, the ciphertext elements associated with these shared random exponents can be performed only once at the time ofCH(0)CDE ciphertext header verification, and can be omitted at a later time. In this case, 2 logTmax+3 pairing operations are required for the verification of theCH(0)CDE

ciphertext header and the verification of theCH(i) CDE ciphertext header requires 4 pairing operations. Therefore, at most 6 logTmax+5 pairing operations are required for the SUE ciphertext header verification.

Fast Verification by Batching. Another way to improve the performance of SUE ciphertext header ver-ification is to use batch verver-ification. Batch verver-ification is a way of verifying the validity of all signatures by processing multiple signatures at once, rather than verifying individual signatures one at a time when multiple signatures are given [3, 8]. In the SUE scheme, since one SUE ciphertext header consists of mul-tiple CDE ciphertext headers, the total number of pairing operations can be reduced by performing batch verification using the small exponent test method on the CDE ciphertext headers after removing redundant elements. However, to properly use batch verification, we need to perform additional group membership tests to make sure that the group elements of ciphertext headers belong to the group. If batch verification is performed to one SUE ciphertext header, approximately 2 logTmax+8 pairing operations and 5 logTmax

group membership test operations are required. At this time, since the group membership test in a bilinear group is almost the same as the exponentiation operation, batch verification is effective only for the bilinear group in which the group exponentiation operation is faster than the pairing operation. Typically, in the case of the MNT curve, which is a Type 3 pairing, it is possible to perform more efficient ciphertext verification by using batch verification.

(17)

a server needs to update the ciphertexts every time, there is a problem that the total amount of computation for updating the ciphertexts is considerably large. One way to solve this problem is to not update the ciphertexts every time, but the server updates the ciphertext of past timeT1to a ciphertext of current time T2when the ciphertext access occurs. In addition, when updating the ciphertext from timeT1 to timeT2, it is possible to update the ciphertext more efficiently by directly obtaining delegated ciphertexts from the set ofTimeNode(T2)andTimeNode(T1) instead of performing the ciphertext updating algorithm forT2−T1

times.

4

Revocable-Storage Attribute-Based Encryption

In this section, we define the syntax and the TEC-CCA security of RS-ABE. We also propose an RS-ABE scheme and prove its TEC-CCA security.

4.1 Definitions

Revocable-Storage ABE (RS-ABE) is ABE that supports user revocation and ciphertext updating. The concept of RS-ABE was introduced by Sahai et al. [30] to handle the access control problem on ciphertexts in cloud storage. In this paper, we follow the RS-ABE syntax of Lee [21]. In RS-ABE with ciphertext-policy, a user’s private key is associated with a set of attributesSand an indexuand a ciphertext is associated with an access structure A and time T. A center periodically broadcast an update key that excludes a set of revoked users R on timeT. If a user is not revoked (u6∈R) and the set of attributes satisfies the access structure (S∈A), then the user with a private key and an update key can decrypt the ciphertext. The syntax of RS-ABE is given as follows:

Definition 4.1 (Revocable-Storage Attribute-Based Encryption). A revocable-storage (ciphertext-policy)

attribute-based encryption (RS-ABE) scheme for the universe of attributesU consists of seven PPT algo-rithms,Setup,GenKey,UpdateKey,DeriveKey,Encaps,UpdateCT, andDecaps, which are defined as follows:

Setup(1λ,T

max,Nmax). The setup algorithm takes as input a security parameter 1λ, the maximum timeTmax,

and the maximum number of usersNmax, and it outputs a master keyMKand public parametersPP.

GenKey(S,u,MK,PP). The key generation algorithm takes as input a set of attributesS⊆ U, a user index

u∈ N, the master keyMK, and the public parametersPP. It outputs a private keySKS,u.

UpdateKey(T,R,MK,PP). The key update algorithm takes as input timeT ≤Tmax, a set of revoked users

R⊆ N, the master keyMK, and the public parametersPP. It outputs an update keyU KT,R.

DeriveKey(SKS,u,U KT,R,PP). The decryption key derivation algorithm takes as input a private keySKS,u,

an update keyU KT,R, and the public parametersPP. It outputs a decryption keyDKS,T or the

distin-guished symbol⊥.

Encaps(A,T,PP). The encapsulation algorithm takes as input an access structureA, timeT ≤Tmax, and

the public parametersPP. It outputs a ciphertext headerCHA,T and a session keyEK.

UpdateCT(CHA,T,T+1,PP). The ciphertext update algorithm takes as input a ciphertext headerCHA,T,

new timeT+1 such thatT+1≤Tmax, and the public parametersPP. It outputs an updated ciphertext

(18)

Decaps(CHA,T,DKS,T0,PP). The decapsulation algorithm takes as input a ciphertext headerCH

A,T, a

de-cryption keyDKS,T, and the public parametersPP. It outputs a session keyEK or the distinguished

symbol⊥.

The correctness of RS-ABE is defined as follows: For allPP,MK generated by Setup, all S andu, any

SKS,ugenerated byGenKey, allA,T, anyCHA,T,EKgenerated byEncapsorUpdateCT, allT

0andR, any

U KT0,Rgenerated byUpdateKey, it is required that:

• Ifu∈/R, thenDeriveKey(SKS,u,U KT0,R,PP) =DKS,T0.

• Ifu∈R, thenDeriveKey(SKS,u,U KT0,R,PP) =⊥with all but negligible probability.

• If(S∈A)∧(T ≤T0), thenDecaps(CHA,T,DKS,T0,PP) =EK.

• If(S∈/A)∨(T0<T), thenDecaps(CHA,T,DKS,T0,PP) =⊥with all but negligible probability.

Additionally, it requires that the updated ciphertext header ofUpdateCTis a valid ciphertext header under the new time.

Remark9. The previous definition of CPA secure RS-ABE additionally contains theRandCTalgorithm that

randomizes a ciphertext header [21, 22, 30]. However, our definition of RS-ABE with TEC-CCA security omits the RandCT algorithm because of the reason in Remark 11. Thus, the output of the UpdateCT algorithm is a just valid ciphertext header, and the randomness of an updated ciphertext header may be correlated to that of the original ciphertext header. Because of this correlation, if a ciphertext header is updated from an original one by usingUpdateCT, then the original one should be deleted.

Remark10. We define RS-ABE as a key encapsulation mechanism (KEM) version, in which theEncaps

algorithm derives a session key, instead of a full encryption version. Note that if a KEM scheme is combined with a symmetric key encryption scheme, then a full encryption scheme can be easily derive by using the hybrid encryption technique.

The CPA security of RS-ABE was introduced by Sahai et al. [30] and refined by Lee [21] to consider the decryption key exposure attack. We define the TEC-CCA security of RS-ABE by modifying their CPA-security model. Similar to the CCA CPA-security of SUE, RS-ABE also cannot achieve the traditional CCA2 security since the ciphertexts of RS-ABE can be updated by anyone. Thus, we also relax the definition of CCA2 security by restricting that an adversary cannot request a decryption query on a ciphertext that is updated from the challenge ciphertext given to the adversary. In this paper, we define selective time extended challenge (TEC) CCA security of RS-ABE where the adversary should submit a challenge access structure and a challenge time before he receives public parameters. The TEC-CCA security of RS-ABE is given as follows:

Definition 4.2(Selective TEC-CCA Security). The selective security of RS-ABE is defined in terms of the

indistinguishability under time extended challenge chosen ciphertext attacks (IND-TEC-CCA). The security game is defined as the following experiment between a challengerCand a PPT adversaryA:

Init:Afirst submits a challenge access structureA∗and challenge timeT∗.

Setup:Cgenerates a master keyMKand public parametersPPby calling the setup algorithm, and then it

givesPPtoA.

Query 1: Amay adaptively request a polynomial number of private key, update key, decryption key, and

(19)

• If this is a private key query for a set of attributesSand a user indexu, then it creates a private keySKS,uby calling the key generation algorithm and givesSKS,u toA. Note thatAis allowed

to query only one private key for each useru.

• If this is an update key query for timeT and a set of revoked usersR, then it creates an update keyU KT,Rby calling the key update algorithm and givesU KT,RtoA. Note thatAis allowed to

query only one update key for each timeT.

• If this is a decryption key query for a set of attributesSand timeT, then it creates a decryption keyDKS,T by calling the decryption key derivation algorithm and givesDKS,T toA.

• If this is a decryption query for a ciphertext headerCHA,T, then it computes the decapsulated

session keyEKby calling the decryption algorithm and givesEKtoA.

We require the following restrictions on the queries ofA:

1. If an update key forT andRwas queried, thenR⊆Rj for all update key queries onTj andRj

such thatT<Tj.

2. If a private key forSandusuch thatS∈A∗was queried, then an update key forTj andRj such

thatu∈RjandTj≤T∗should be queried to revoke this user indexu.

3. If a decryption key forSandT was queried, then it is required thatS6∈A∗orT <T∗.

Challenge: C creates a ciphertext headerCH∗

A∗,T∗ and a session keyEK

by calling the encryption

algo-rithm under the challenge access structureA∗ and the challenge timeT∗. It then flips a random bit

µ ∈ {0,1}. If µ =0 it sets EK0∗=EK∗, otherwise it sets EK1∗ to a random session key. It gives

CH∗

A∗,T∗ andEK ∗

µ toA. Note thatAcan obtain updated ciphertext headers that are derived from the

challenge ciphertext header since the ciphertext update algorithm can be performed by anyone.

Query 2: A continues to request private key, update key, decryption key, and decryption queries. C

handles the queries as the same as before. In addition to the restrictions in query 1 step, we require the following additional restriction on the queries ofA:

4. If a decryption for a ciphertext headerCHA,T was queried, then it is required that T <T∗ or

CHA,T is not updated fromCH∗

A∗,T∗ forT ≥T

.

Guess: FinallyAoutputs a bitµ0.

The advantage ofAis defined asAdvRSA-ABE(λ) =

Pr[µ=µ0]−12

where the probability is taken over all

the randomness of the game. An RS-ABE scheme is secure in the selective model under time extended challenge chosen ciphertext attacks if for all PPT adversariesA, the advantage ofAin the above game is negligible in the security parameterλ.

Remark11. The adversary of the above TEC-CCA security model cannot request a decryption on an updated

ciphertext header that is updated from the challenge ciphertext header. Thus, there should be an efficiently computable relationR(−,−)that checks whether a ciphertext header is derived from another one or not. If an RS-ABE scheme supports perfect ciphertext re-randomization, then the security of this scheme cannot be proven in the above model since there is no efficiently computable relationR(−,−).

Remark12. Selective TEC-CCA security can be weakened to selective revocation list TEC-CCA security,

(20)

4.2 Subset Cover Framework

The subset cover (SC) framework, introduced by Naor, Naor, and Lotspiech [25], is a general methodology to construct an efficient revocation system. The complete subtree (CS) scheme is one instance of the SC framework. We follow the definition of CS in [22]. The CS scheme is given as follows:

CS.Setup(Nmax): This algorithm takes as input the maximum number of users Nmax. Let Nmax=2d for

simplicity. It first sets a full binary treeBT of depthd. Each user is assigned to a different leaf node inBT. The collectionS is defined as{Si:vi∈ BT }. Recall thatSi is the set of all the leaves in a

subtreeTi. It outputsBT.

CS.Assign(BT,u): This algorithm takes as input the treeBT and a useru∈ N. Letvube the leaf node of

BT that is assigned to the useru. Let(vj0,vj1, . . . ,vjd)be the path from the root nodevj0 =v0to the leaf nodevjn=vu. It setsPVu={Sj0, . . . ,Sjd}and outputs the private setPVu.

CS.Cover(BT,R): This algorithm takes as input the treeBT and a revoked setRof users. It first computes

the Steiner treeST(R). LetTi1, . . .Timbe all the subtrees ofBT that hang offST(R), that is all subtrees

whose rootsvi1, . . .vim are not inST(R)but adjacent to nodes of outdegree 1 inST(R). It outputs a

covering setCVR={Si1, . . . ,Sim}.

CS.Match(CVR,PVu): This algorithm takes input as a covering setCVR={Si1, . . . ,Sim} and a private set

PVu={Sj0, . . . ,Sjd}. It finds a subsetSk with Sk∈CVR andSk ∈PVu. If there is such a subset, it

outputs(Sk,Sk). Otherwise, it outputs⊥.

Lemma 4.1 ( [25]). Let Nmax be the number of leaf nodes in a full binary tree and r be the size of a

revoked set. In the CS scheme, the size of a private set islogNmaxand the size of a covering set is at most

rlog(Nmax/r).

4.3 Construction

Before we construct an RS-ABE scheme, we present a CCA secure CP-ABE scheme from the CPA secure CP-ABE scheme of Rouselakis and Waters [29]. To convert the CPA secure CP-ABE scheme to a CCA secure one, we follow the transformation of Canetti et al. [9]. To improve the efficiency, we actually employ the direct conversion method of Boyen et al. [7]. The KEM version of the CP-ABE scheme is given as follows:

CP-ABE.Setup(GDS): This algorithm takes as input a group description string GDS. It chooses

ran-dom elements wA,vA,uA,hA,uB,hB ∈G, and a random exponent γ ∈Zp. It also chooses a

ran-dom index z for a hash function Hz∈ H. It outputs a master key MK =γ and public parameters

PP= (p,G,GT,e),g,wA,vA,uA,hA,z,uB,hB,Λ=e(g,g)γ.

CP-ABE.GenKey(S,MK,PP): LetS={A1,A2, . . . ,Ak}be a set of attributes. It chooses random exponents

r,r1, . . . ,rk ∈Zp and outputs a private keySKS= K0=gγwrA,K1=g

−r,{K

i,2=vrA(u Ai

AhA)

ri,K

i,3= g−ri}k

i=1

.

CP-ABE.RandKey(SKS,δ,PP): LetSKS= (K0,K1,{Ki,2,Ki,3})forS={A1,A2, . . . ,Ak}. It chooses

ran-dom exponentsr0,r01, . . . ,r0kZpand outputs a re-randomized private keySKS= K00=K0·gδwr

0

A,K10 = K1·g−r0,{Ki0,2=Ki,2·vr

0

A(u Ai

AhA)

r0i,K0

i,3=Ki,3·g−r

0

i}k

i=1

(21)

CP-ABE.Encaps(A,t,PP): LetA= (M,ρ)be an LSSS access structure whereMis anl×nmatrix andρ

is a map from each rowMj ofMto an attributeρ(j). It first sets a random vector~v= (t,v2, . . . ,vn)by

selecting random exponentsv2, . . . ,vn∈Zp. It selects random exponentss1, . . . ,sl∈Zpand computes

C0=gt,{Cj,1=w

Mj·~v

A v

sj

A,Cj,2=gsj,Cj,3= (uρ (j)

A hA)

sj}

1≤j≤l. Next, it calculatesπ=Hz(C0,C1,1, . . . ,Cl,3)

and setsC3= (uπBhB)t. It outputs a ciphertext headerCHA= C0,{Cj,1,Cj,2,Cj,3} l

j=1,C3

and a ses-sion keyEK=Λt.

CP-ABE.VerifyCT(CHA,PP): LetCHA= (C0,{Cj,1,Cj,2,Cj,3},C3). It first computesπ=Hz(C0,C1,1, . . . ,

Cl,3)and checkse(C3,g) ?

=e(C0,uπ

BhB). It outputs 1 if the check passes. Otherwise, it outputs 0.

CP-ABE.Decaps(CHA,SKS,PP): LetCHA= (C0,{Cj,1,Cj,2,Cj,3},C3)andSKS= (K0,K1,{Kj,2,Kj,3}). It

first checks 1=? CP-ABE.VerifyCT(CHA,PP). If the checking fails, then it outputs ⊥. If S∈A, then it computes constantsωj∈Zp such that∑ρ(j)∈SωjMj= (1,0, . . . ,0)and outputs a session key

asEK=e(C0,K0)·∏ρ(j)∈S e(Cj,1,K1)·e(Cj,2,Kj,2)·e(Cj,3,Kj,3)

ωj

. Otherwise, it outputs⊥.

Remark13. Compared to the CPA secure CP-ABE scheme [29], the above CP-ABE scheme additionally

contains a hash function indexzand two group elementsuB,hBin public parameters, and a group element

C3in a ciphertext header for integrity. We also added theRandKeyalgorithm to randomize a private key

and theVerifyCTalgorithm to check the validity of ciphertext headers. These two additional algorithms are used in the construction of an RS-ABE scheme.

To construct an RS-ABE scheme, we follow the design principle of Lee et al. [22]. Our RS-ABE scheme that uses the above CP-ABE scheme, our SUE scheme, and the CS scheme is described as follows:

RS-ABE.Setup(1λ,T

max,Nmax): It first generates bilinear groups G,GT of prime order p. Let g be the

generator ofG. It setsGDS= ((p,G,GT,e),g). It obtainsMKABE,PPABEandMKSU E,PPSU Eby

run-ningCP-ABE.Setup(GDS)andSUE.Setup(GDS,Tmax)respectively. It also obtainsBT by running

CS.Setup(Nmax) and assigns a random exponentγi∈Zpto each nodevi inBT. It selects a random

exponentα ∈Zp, and outputs a master keyMK = (MKABE,MKSU E,α,BT)and public parameters

PP= PPABE,PPSU E,Ω=e(g,g)α

.

RS-ABE.GenKey(S,u,MK,PP): LetMK= (MKABE,MKSU E,α,BT). It first assigns the indexuto a

ran-dom leaf nodevu∈ BT. It obtains a private setPVu={S0j0, . . . ,S

0

jd}by runningCS.Assign(BT,u)and

retrieves{γj0, . . . ,γjd}fromBT whereS

0

jk is associated with a nodevjkandγjk is assigned to the node

vjk. For 0≤k≤d, it setsMK

0

ABE=γjkand obtainsSKABE,kby runningCP-ABE.GenKey(S,MK

0

ABE,

PPABE). It outputs a private keySKS,u= PVu,SKABE,0, . . . ,SKABE,d

.

RS-ABE.UpdateKey(T,R,MK,PP): LetMK= (MKABE,MKSU E,α,BT). It obtains a covering setCVR=

{S0i

1, . . . ,S

0

im} by runningCS.Cover(BT,R) and retrieves {γi1, . . . ,γim} fromBT where S

0

ik is

asso-ciated with a nodevik andγik is assigned to the nodevik. For 1≤k≤m, it sets MK

0

SU E=α−γik

and obtainsSKSU E,k by runningSUE.GenKey(T,MKSU E0 ,PPSU E). It outputs an update keyU KT,R=

CVR,SKSU E,1, . . . ,SKSU E,m

.

RS-ABE.DeriveKey(SKS,u,U KT0,R,PP): LetSKS,u= (PVu,SKABE,0, . . . ,SKABE,d)andU KT0,R= (CVR,SKSU E,1, . . . ,SKSU E,m). Ifu∈/R, then it obtains(Si,Sj)by runningCS.Match(CVR,PVu). Otherwise, it outputs

⊥. It selects a random exponentδ∈Zpand obtainsSKABEby runningCP-ABE.RandKey(δ,SKABE,j,

PPABE). It also obtainsSKSU E by runningSUE.RandKey(−δ,SKSU E,i,PPSU E). It outputs a

(22)

RS-ABE.Encaps(A,T,PP): It selects a random exponentt∈Zpand obtainsCHABEandCHSU Eby running

CP-ABE.Encaps(A,t,PPABE) and SUE.Encaps(T,t,PPSU E) respectively. Note that it ignores two partial session keys that are returned byCP-ABE.EncapsandSUE.Encaps. It outputs a ciphertext headerCHA,T = (CHABE,CHSU E)and a session keyEK=Ωt.

RS-ABE.UpdateCT(CHA,T,T+1,PP): Let CHA,T = (CHABE,CHSU E). It first obtains CHSU E0 by

run-ning SUE.UpdateCT(CHSU E,T+1,PPSU E). It outputs an updated ciphertext header CHA,T+1=

CHABE,CHSU E0

.

RS-ABE.VerifyCT(CHA,T,PP): LetCHA,T= (CHABE,CHSU E),CHABE= (C0, . . .), andCHSU E= (CH(0), . . .)

whereCH(0)= (C00, . . .). It first checksC0 ?

=C00. It also checks that 1=? SUE.VerifyCT(CHSU E,T,PPSU E)

and 1=? CP-ABE.VerifyCT(CHABE,PPABE). If all checking pass, it outputs 1. Otherwise, it outputs

⊥.

RS-ABE.Decaps(CHA,T,DKS,T0,PP): LetCH

A,T = (CHABE,CHSU E) and DKS,T0 = (SKABE,SKSU E). Let

CHABE= (C0, . . .)andCHSU E = (CH(0), . . .)whereCH(0)= (C00, . . .). It first checksC0 ?

=C00. If the checking fails, it outputs⊥. Next, it obtainsEKABEandEKSU Eby runningCP-ABE.Decaps(CHABE,

SKABE,PPABE)andSUE.Decaps(CHSU E,SKSU E,PPSU E)respectively. IfEKABE6=⊥andEKSU E6=⊥,

then it outputs a session keyEK=EKABE·EKSU E. Otherwise, it outputs⊥.

Remark14. LetCHA,T andCHA00,T0 be two valid RS-ABE ciphertext headers with SUE ciphertext headers

CHSU EandCSU E0 respectively. The efficiently computable relationR(CHA,T,CHA00,T0)in Remark 11 returns

TrueifR(CHSU E,CHSU E0 ) =Truein Remark 8.

Remark15. In contrast to CPA secure RS-ABE schemes [21, 22, 30], our RS-ABE scheme does not provide

a ciphertext re-randomization algorithmRandCT. Because of this, the outputted (future) ciphertext header

ofUpdateCTmaybe correlated to the original (past) ciphertext header. Thus, the (past) original

cipher-text header should be deleted after running theUpdateCT algorithm to remove the correlation between ciphertext headers.

4.4 Correctness

We first show the correctness of the above CP-ABE scheme. Compared to the original CP-ABE scheme of Rouselakis and Waters [29], the above CP-ABE scheme additionally contains elementsuB,hB in public

parameters and an elementC3 in a ciphertext header. The validity ofC3 can be easily checked by using

bilinear maps sinceC3 is a DDH tuple. Thus the above CP-ABE scheme is correct since the ciphertext

header can passCP-ABE.VerifyCTand the original CP-ABE scheme is correct.

The correctness of the above RS-ABE scheme can be shown by using the correctness of the CP-ABE scheme, SUE scheme, and CS scheme. LetSKS,ube a private key andU KT0,Rbe an update key. Ifu6∈R, then

there areSKABE inSKS,u andSKSU E inU KT,R that are associated with the same nodeviby the correctness

of the CS scheme. The decryption keyDKS,T0 = (SK0

ABE,SKSU E0 )is obtained fromSKABE andSKSU E after

additional randomization. Note that the master key part ofSKABE0 isγi+δ and the master key part ofSKSU E0

isα−γi−δ. LetCHA,T = (CHABE,CHSU E)be a ciphertext header. IfS∈A, thenCP-ABE.Decapscan derive a partial session keyEKABEfrom the correctness of the CP-ABE scheme. IfT≤T0, thenSUE.Decaps

can derive a partial session keyEKSU Efrom the correctness of the SUE scheme. By multiplying two partial

session keys, we obtain a valid session key since the original master keyα can be derived from the master

References

Related documents

Automated Procedures for Phoephorus.. Algal growth response and nitrogen and phosphorous concentration, New Hope sample No. Algal growth response and nitrogen and

Pertaining to the secondary hypothesis, part 1, whether citalopram administration could raise ACTH levels in both alcohol-dependent patients and controls, no significant

When participants read the story in which the waiter used self-control, taking the waiter’s perspective led to generating fewer words than did not engaging in perspective taking,

ADIPOQ : Adiponectin gene; BF%: Total body fat percentage: (total fat mass/ total body mass) × 100; HDL: High-density lipoprotein; HOMA-IR: Homeostatic model assessment

of the Portuguese state (art. This was the only case in which ius sanguinis independently and automatically determined the acquisition of citizenship at birth. Apart from this

Spontaneous reversion of point mutations showed a greater REV3 dependence than reversion of frameshift mutations: We investigated the role of REV3 in sponta- neous

This paper is proposed on-line rule tuning grey prediction fuzzy control system is described an inverted pendulum control problem is considered to illustrate

The ODU Physics Department has strong research groups in experimental and theoretical nuclear and particle phys- ics, experimental and theoretical atomic and few-body