Next Article in Journal
An Enhanced Key Management Scheme for LoRaWAN
Next Article in Special Issue
Forward-Secure Linkable Ring Signatures from Bilinear Maps
Previous Article in Journal / Special Issue
A New Technique in Rank Metric Code-Based Encryption
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Revocable Identity-Based Encryption and Server-Aided Revocable IBE from the Computational Diffie-Hellman Assumption †

1
Department of Computer Science and Engineering, Shanghai Jiao Tong University, Shanghai 200240, China
2
Department of Mathematics, Hangzhou Normal University, Hangzhou 310036, China
3
Westone Cryptologic Research Center, Beijing 100070, China
4
Faculty of Information Technology, Monash University, Clayton VIC 3800, Australia
*
Author to whom correspondence should be addressed.
Part of this work was published in ACISP 2018. This is the full version.
Submission received: 30 August 2018 / Revised: 11 October 2018 / Accepted: 18 October 2018 / Published: 23 October 2018
(This article belongs to the Special Issue Public Key Cryptography)

Abstract

:
An Identity-based encryption (IBE) simplifies key management by taking users’ identities as public keys. However, how to dynamically revoke users in an IBE scheme is not a trivial problem. To solve this problem, IBE scheme with revocation (namely revocable IBE scheme) has been proposed. Apart from those lattice-based IBE, most of the existing schemes are based on decisional assumptions over pairing-groups. In this paper, we propose a revocable IBE scheme based on a weaker assumption, namely Computational Diffie-Hellman (CDH) assumption over non-pairing groups. Our revocable IBE scheme is inspired by the IBE scheme proposed by Döttling and Garg in Crypto2017. Like Döttling and Garg’s IBE scheme, the key authority maintains a complete binary tree where every user is assigned to a leaf node. To adapt such an IBE scheme to a revocable IBE, we update the nodes along the paths of the revoked users in each time slot. Upon this updating, all revoked users are forced to be equipped with new encryption keys but without decryption keys, thus they are unable to perform decryption any more. We prove that our revocable IBE is adaptive IND-ID-CPA secure in the standard model. Our scheme serves as the first revocable IBE scheme from the CDH assumption. Moreover, we extend our scheme to support Decryption Key Exposure Resistance (DKER) and also propose a server-aided revocable IBE to decrease the decryption workload of the receiver. In our schemes, the size of updating key in each time slot is only related to the number of newly revoked users in the past time slot.

1. Introduction

The concept of Identity-Based Encryption (IBE) was proposed by Shamir [1] in 1984. In an IBE scheme, the public key of a user can simply be the identity id of the user, like name, email address, etc. An IBE scheme considers three parties: key authority, sender and receiver. The key authority is in charge of generating secret key sk id for user id . A sender simply encrypts plaintexts under the receiver’s identity id and the receiver uses his own secret key sk id for decryption. With IBE, there is no need for senders to ask for authenticated public keys from Public-Key Infrastructures, hence key management is greatly simplified.
Over the years, there have been many IBE schemes proposed from various assumptions in the standard model. Most of the assumptions are decisional ones, like the bilinear Diffie-Hellman assumption [2,3,4] over pairing-groups, or the decisional learning-with-errors (LWE) assumption from lattices [5,6,7]. Most recently, a breakthrough work was done by Döttling and Garg [8], who proposed the first IBE scheme based solely on the Computational Diffie-Hellman (CDH) assumption over groups free of pairings.
Though IBE enjoys the advantage of easy key management, how to revoke users in an IBE system is a non-trivial problem. It was Boneh and Franklin [9] who first proposed revocable IBE (RIBE) to solve the problem. Later, Boldyreva et al. [10] formalized the definition of selective-ID security and constructed a more efficient RIBE scheme based on a fuzzy IBE scheme [11]. Then Libert and Vergnaud proposed the first adaptive-ID secure revocable IBE scheme [12]. In [13], Seo and Emura strengthened the security model by introducing an additional important security notion, called Decryption Key Exposure Resistance (DKER). They also constructed a revocable IBE scheme in the strengthened model, and the security of this scheme is from the Decisional Bilinear Diffie-Hellman (DBDH) assumption. Since then, most of the revocable IBE schemes constructed from pairing groups achieved DKER. For example, in the strengthened security model, Lee et al. [14] constructed a revocable IBE scheme via subset difference methods to reduce the size of key updating based on the DBDH assumption, and Watanabe et al. [15] introduced a new revocable IBE with short public parameters based on both the Decisional Diffie-Hellman (DDH) assumption and the Augmented Decisional Diffie-Hellman (ADDH) assumption over pairing-friendly group. Furthermore, Park et al. [16] constructed a revocable IBE whose key update cost is only O ( 1 ) , but the scheme relied on multilinear maps. Without pairing, it seems difficult to achieve DKER. In [17], Chen et al. proposed the first selective-ID secure revocable IBE scheme from the LWE assumption over lattices in the traditional security model (without DKER). Later, Takayasu and Watanabe [18] designed a lattice-based revocable IBE with bounded DKER. Meanwhile, to improve the decryption efficiency for the receiver, Qin et al. [19] provided a new model named Server-Aided Revocable Identity-Based Encryption (SR-IBE) which used a server as an intermediary to help the receiver to decrypt part of the ciphertext. In fact, the revocable property is so important that it is studied not only in IBE but also in Identity-Based Proxy Re-encryption [20], Fine-Grained Encryption of Cloud Data [21,22] and Attribute-Based Encryption [23]. It should be noted that bilinear pairings are essential techniques in these schemes [20,21,22,23].
Please Please note that all the existing RIBE schemes are based on assumptions over pairing-friendly groups or the LWE assumption over lattices. On the other hand, Döttling and Garg’s IBE scheme [8] is based on the CDH assumption over non-pairing group, but it does not consider user revocation. In this paper, we aim to fill the gap by designing RIBE from the CDH assumption without use of pairings.

1.1. Our Contributions

In this paper, we propose the first revocable IBE (RIBE) schemes and server-aided revocable IBE (SR-IBE) based on the Computational Diffie-Hellman (CDH) assumption over groups free of pairings. The corner stone of this scheme is the IBE scheme proposed by Döttling and Garg [8]. Our RIBE schemes enjoy the following features.
  • Weaker security assumption. The securities of our RIBE and SR-IBE schemes can be reduced to the CDH assumption. Hence our schemes serve as the first RIBE/SR-IBE schemes from the CDH assumption over non-pairing groups. More precisely, our first RIBE scheme can achieve adaptive-IND-ID-CPA security but without the property of decryption key exposure resistance(DKER). Our second RIBE scheme obtains decryption key exposure resistance but with selective-IND-ID-CPA security. Our SR-IBE scheme is selective-SR-ID-CPA secure. The securities of the three schemes can be reduced to the CDH assumption.
  • Smaller size of key updating. When a time slot begins, the key updating algorithm of our RIBE/SR-IBE will issue updating keys whose size is only linear to the number of newly revoked users in the past time slot. In comparison, most of the existing RIBE/SR-IBE schemes have to update keys whose number is related to the number of all revoked users across all the previous time slots.
In Table 1, we compare our RIBE scheme with some existing RIBE schemes.
Remark 1.
Döttling and Garg’s IBE makes use of garbled circuits to implement the underlying cryptographic primitives. Hence it is prohibitive in terms of efficiency. Our RIBE inherits their idea, hence the efficiency of our RIBE scheme is also incomparable to the RIBE schemes from bilinear maps. However, since no RIBE scheme is available from the CDH assumption over non-pairing groups, our scheme serves as a theoretical exploration in the field of RIBE.

1.2. Paper Organization

In Section 2, we collect notations and some basic definitions used in the paper and present the framework. We illustrate our idea of RIBE in Section 3. In Section 4, we construct a revocable IBE scheme (without DKER) based on the CDH assumption and present the correctness and security analysis of the scheme. Then we show how to make our RIBE to obtain DKER in Section 5. In Section 6, we provide a SR-IBE scheme from the CDH assumption. In Section 7, we illustrate the key updating complexity analysis of our scheme.

2. Preliminaries

2.1. Notations

The security parameter is denoted by λ . “probabilistic polynomial-time” is abbreviated by “PPT”. Let n , a and b be integers. Denote by [ n ] the set { 1 , , n } , by [ a , b ] the set { a , a + 1 , , b } , by { 0 , 1 } * the set of bit-strings of arbitrary length, and by { 0 , 1 } the set of bit-strings of length at most . Let ε be an empty string. and | v | be the bit-length of string v. Obviously, | ε | = 0 . Denote by x | | y the concatenation of two bit-strings x and y, by x i the i-th bit of x, by x $ S the process of sampling the element x from the set S uniformly at random, and by a X the process of sampling the element a over the distribution X . By a f ( · ) we mean that a is the output of a function f. A function negl : N R is negligible if for any polynomial p ( λ ) it holds that negl ( λ ) < 1 / p ( λ ) for all sufficiently large λ N .

2.2. Pseudorandom Functions

Let PRF: K × X Y be an efficiently computable function. For an adversary A , define its advantage function as
Adv A PRF ( 1 λ ) : = | Pr [ b = 1 | k $ K ; b A PRF ( k , · ) ] Pr [ b = 1 | b A RF ( · ) ] | ,
where RF : X Y is a truly random function. PRF is a pseudorandom function (PRF) if the above advantage function Adv A PRF ( 1 λ ) is negligible for any PPT A .

2.3. Revocable Identity-Based Encryption

A revocable IBE (RIBE) consists of seven PPT algorithms RIBE = ( RIBE . Setup , RIBE . KG , RIBE . KU , RIBE . KU , RIBE . Enc , RIBE . Enc , RIBE . R ) . Let M denote the message space, ID the identity space and T the space of time slots.
  • Setup: The setup algorithm RIBE . Setup is run by the key authority. The input of the algorithm is a security parameter λ and n, where the maximal number of users is 2 n . The output of this algorithm consists of a pair of key ( mpk , msk ) , an initial state st = (KL, PL, RL, KU), where KL is the key list, PL is the list of public information, RL is the list of revoked users and KU is the update key list. In formula, ( mpk , msk , st ) RIBE . Setup ( 1 λ , 1 n ) .
  • Private Key Generation: This algorithm RIBE . KG is run by the key authority which takes as input the key pair ( mpk , msk ) , an identity id and the state st. The output of this algorithm is a private key sk id and an updated state st . In formula, ( sk id , st ) RIBE . KG ( mpk , msk , id , st ) .
  • Key Update Generation: This algorithm RIBE . KU is run by the authority. Given the key pair ( mpk , msk ) , an update time t , and a state st, this algorithm updates the update key list KU and the the list of public information PL . In formula, st RIBE . KU ( mpk , msk , t , st ) .
  • Decryption key generation: This algorithm RIBE . DK is run by the receiver. Given the master public key mpk , a private key sk id , the update key list KU and the time slot t , this algorithm outputs a decryption key sk id ( t ) for time slot t . In formula, sk id ( t ) RIBE . DK ( mpk , sk id , KU , t ) .
  • Encryption: This algorithm RIBE . Enc is run by the sender. Given the public key mpk , a public list PL, an identity id, a time slot t and a message m, this algorithm outputs a ciphertext ct . In formula, ct RIBE . Enc ( mpk , id , t , m , PL ) .
  • Decryption: This algorithm RIBE . Enc is run by the receiver. The algorithm takes as input the master public key mpk , the decryption key sk id ( t ) and the ciphertext ct , and outputs a message m or a failure symbol ⊥. In formula, m / RIBE . Dec ( mpk , sk id ( t ) , ct ) .
  • Revocation: This algorithm RIBE . R is run by the key authority. Given a revoked identity id and the time slot t during which id is revoked and a state st = ( KL , PL , RL , KU ) , this algorithm updates the revocation list RL with RL RL { ( id , t ) } . It outputs a new state st = ( KL , PL , RL , KU ) .
Correctness. 
For all ( mpk , msk , st ) RIBE . Setup ( 1 λ , N ) , all m M , all identity id ID , all time slot t T , and revocation list RL , for all ( sk id , st ) RIBE . KG ( msk , id , st ) , st RIBE . KU ( msk , t , st ) , and sk id ( t ) RIBE . DK ( mpk , sk id , KU , t ) , we have RIBE . Dec ( mpk , sk id ( t ) , RIBE . Enc ( mpk , id , t , m , PL ) ) = m if ( id , t ) RL (i.e., id is not revoked at time t) and PL st .
Now we explain how a revocable IBE system works. To setup the system, the key authority invokes RIBE . Setup to generate master public key mpk , master secret key msk and the state st . Then it publishes the public key mpk . When a user registers in the system with identity id , the key authority invokes RIBE . KG ( msk , id , st ) to generate the private key sk id for user id . If a user id needs to be revoked during time slot t , the key authority invokes RIBE . R ( id , t , st ) . Next it updates the state st . At the beginning of each time slot t , the key authority might invoke RIBE . KU ( msk , t , st ) to update keys by updating set KU . Then it publishes some information about the updated set KU . Meanwhile it may also publish some public information PL . During time slot t , when a user wants to send a message m to another user id , he/she invokes RIBE . Enc ( mpk , id , t , m , PL ) to encrypt m to obtain the ciphertext ct , then sends ( t , ct ) to user id . To decrypt a ciphertext ct encrypted at time t , the receiver id first invokes RIBE . DK ( mpk , sk id , KU , t ) to generate its own decryption key sk id ( t ) of time t. The receiver id invokes RIBE . Dec ( mpk , sk id ( t ) , ct ) to decrypt the ciphertext and recover the plaintext.
Remark. 
In the definition of our RIBE, KL is the key list which stores the essential information used to generate the update key. PL is a public information list which is used in the encryption algorithm. In the traditional definition of RIBE in other works, no PL is defined. However, in our construction, PL will serve as an essential input to the encryption algorithm and that is the reason we define it. Nevertheless, our definition can be regarded as a general one, while the traditional definition of RIBE can be seen as a special case of PL = .
Security. 
Now we formalize the security of a revocable IBE. We first consider four oracles: private key generation oracle KG ( · ) , key update oracle KU , decryption key generation oracle DK ( · , · ) and revocation oracle Rvk ( · , · ) which are shown in Table 2. The security of adaptive-IND-ID-CPA defines as follows.
Definition 1.
Let RIBE = ( RIBE . Setup , RIBE . KG , RIBE . KU , RIBE . DK , RIBE . Enc , RIBE . Dec , RIBE . R ) be a revocable IBE scheme. Below describes an experiment played between a challenger C and a PPT adversary A .
EXP A adaptive IND ID CPA ( λ ) : ( mpk , msk , st ) RIBE . Setup ( 1 λ , 1 n ) ; Parse st = ( KL , PL , RL , KU ) ; ( M 0 , M 1 , id * , t * , st A ¯ ) A KG ( · ) , KU , Rvk ( · , · ) ( mpk ) ; θ $ { 0 , 1 } ; ct * RIBE . Enc ( mpk , id * , t * , M θ , PL ) θ A KG ( · ) , KU , DK ( · , · ) , Rvk ( · , · ) ( ct * , st A ¯ ) If θ = θ Return 1 ; If θ θ Return 0 .
The experiment has the following requirements for A .
  • The two plaintexts submitted by A have the same length, i.e., | M 0 | = | M 1 | .
  • The time slot t submitted to KU and Rvk ( · , · ) by A is in ascending order.
  • If the challenger has published KU at time t , then it is not allowed to query oracle Rvk ( · , t ) with t < t .
  • If A has queried id * to oracle KG ( · ) , then there must be query ( id * , t ) to oracle Rvk ( · ) satisfies t < t * , i.e., id * must has been revoked before time t * .
  • If id * is not revoked at time t * , DK ( · , · ) cannot be queried on ( id * , t * ) .
A revocable IBE scheme is adaptive-IND-ID-CPA secure (with DKER) if for all PPT adversary A , the following advantage is negligible in the security parameter λ, i.e.,
Adv RIBE , A adaptive IND ID CPA ( λ ) = | Pr [ EXP A adaptive IND ID CPA ( λ ) = 1 ] 1 / 2 | = negl ( λ ) .
Remark 2.
The security definition without DKER is similarly defined with changing the experiment so that an adversary A is not allowed to make any decryption key reveal query, i.e., A cannot query for the oracle DK ( · , · ) .Next we define selective-IND-ID-CPA security for RIBE, where the adversary has to determine the target identity id * , target time slot t * at the beginning of the experiment. Clearly, selective-IND-ID-CPA security is weaker than adaptive-IND-ID-CPA security.
Definition 2.
Let RIBE = ( RIBE . Setup , RIBE . KG , RIBE . KU , RIBE . DK , RIBE . Enc , RIBE . Dec , RIBE . R ) be a revocable IBE scheme. Below describes an experiment played between a challenger C and a PPT adversary A .
EXP A selective IND ID CPA ( λ ) : ( id * , t * ) A ( mpk , msk , st ) RIBE . Setup ( 1 λ , 1 n ) ; Parse st = ( KL , PL , RL , KU ) ; ( M 0 , M 1 , st A ¯ ) A KG ( · ) , KU , Rvk ( · , · ) ( mpk ) ; θ $ { 0 , 1 } ; ct * RIBE . Enc ( mpk , id * , t * , M θ , PL ) θ A KG ( · ) , KU , DK ( · , · ) , Rvk ( · , · ) ( ct * , st A ¯ ) If θ = θ Return 1 ; If θ θ Return 0 .
The requirements for A in this experiment are the same as the requirements in EXP A adaptive IND ID CPA ( λ ) . A revocable IBE scheme is selective-IND-ID-CPA secure (with DKER) if for all PPT adversary A , the following advantage is negligible in the security parameter λ, i.e.,
Adv RIBE , A selective IND ID CPA ( λ ) = | Pr [ EXP A selective IND ID CPA ( λ ) = 1 ] 1 / 2 | = negl ( λ ) .
Selective-IND-ID-CPA security without DKER is defined can be similarly defined by changing the experiment so that an adversary A is not allowed to query for the oracle DK ( · , · ) .

2.4. Server-Aided Revocable Identity-Based Encryption

In a server-aided revocable identity-based encryption scheme [19], there are four parities and they work as follows (as shown in Figure 1):
  • Key Authority generates a public key and a secret key for every registered user and issues the secret key to the user and the public key to the server. In each time slot, the key authority delivers a update key list (to revoke users) to the server.
  • Sender encrypts a message for an identity and a time slot and sends the ciphertext to the server.
  • Sever combines the update key list and the stored users’ public keys to generate the transformation keys in every time slot for all users. When receiving a ciphertext, the server transforms it to a partially decrypted ciphertext using the transformation key corresponding to the receiver’s identity and the corresponding time slot. Then it sends the partially decrypted ciphertext to the receiver.
  • Receiver recovers the sender’s message from the partially decrypted ciphertext using a decryption key which can be generated by his/her own secret key and the corresponding time slot.
Now, we formally define Server-Aided Revocable Identity Based Encryption (SR-IBE) which was first proposed by Qin et al. [19]. A SR-IBE scheme consists of ten PPT algorithms Σ = ( Setup , PubKG , KU , TranKG , PrivKG , DK , Enc , Transform , Dec , R ) . Let Σ . M denote the message space, Σ . ID the identity space and Σ . T the space of time slots.
  • Setup: The setup algorithm Setup is run by the key authority. The input of the algorithm is a security parameter λ and a parameter n, which indicates that the maximal number of users is 2 n . The output of this algorithm consists of a pair of key ( msk , mpk ) and an initial state st = ( KL , PL , RL , KU ) , where KL is the key list, PL is the list of public information, RL is the list of revoked users and KU is the update key list. In formula, ( msk , mpk , st ) Setup ( 1 λ , 1 n ) .
  • Public Key Generation: The public key generation algorithm PubKG is run by the key authority. It takes as input a master secret key msk , an identity id { 0 , 1 } n and a state st . The output of this algorithm is the public key pk id on identity id . In formula, pk id PubKG ( msk , id , st ) .
  • Key Update Generation: The key update generation algorithm KU is run by the key authority. It takes as input a master secret key msk , an update time t and a state st . The output of this algorithm is an update key list KU ( t ) and an updated state st . In formula, ( KU ( t ) , st ) KU ( msk , t , st ) .
  • Transformation Key Generation: The transformation key generation algorithm TranKG is run by the server. It takes as input the master public key mpk , the public key pk id and an update key list KU ( t ) . The output of this algorithm is the transformation key tk id ( t ) . In formula, tk id ( t ) TranKG ( mpk , pk id , KU ( t ) ) .
  • Private Key Generation: The private key generation algorithm PrivKG is run by the key authority. It takes the master secret key msk and an identity id { 0 , 1 } n as input. The output of this algorithm is the private key sk id on identity id . In formula, sk id PrivKG ( msk , id ) .
  • Decryption Key Generation: The decryption key generation algorithm DK is run by the receiver. It takes the secret key sk id and a slot t as input. The output of this algorithm is the decryption key Dk id ( t ) . In formula, Dk id ( t ) DK ( sk id , t ) .
  • Encryption: The encryption algorithm Enc is run by the sender. It takes the master public key mpk , an identity id , a time plot t , a plaintext message m and a public list PL as the input. The output of this algorithm is the ciphertext ct . In formula, ct Enc ( mpk , id , t , m , PL ) .
  • Transformation: The transformation algorithm transform is run by the server. It takes the master public key mpk , the transformation key tk id ( t ) and the ciphertext ct as the input. The output of this algorithm is the partially decrypted ciphertext ct . In formula, ct Transform ( mpk , tk id ( t ) , ct ) .
  • Decryption: The decryption algorithm Dec is run by the receiver. The input of this algorithm consists of the master public key mpk , the decryption key Dk id ( t ) and the partially decrypted ciphertext ct . The output of this algorithm is the plaintext m . In formula, m Dec ( mpk , Dk id ( t ) , ct ) .
  • Revocation: The revocation algorithm R is run by the key authority. The input of this algorithm consists of an identity id , a time plot t and a state st . The output of this algorithm is the updated state st . In formula, st R ( id , t , st ) .
Correctness. 
The correctness requires that for all message m , if the receiver is not revoked at time period t and all parties follow the algorithms above, then we have m Dec ( mpk , Dk id ( t ) , Transform ( mpk , tk id ( t ) , ct ) ) .
Security. 
Now we formalize the security of SR-IBE. We first consider five oracles: public key generation oracle PubKG ( · ) , key update oracle KU , private key generation oracle PrivKG ( · ) , decryption key generation oracle DK ( · , · ) and revocation oracle Rvk ( · , · ) which are shown in Table 3. The selective-SR-ID-CPA security is defined as follows.
Definition 3.
Let Σ = ( Setup , PubKG , KU , TranKG , PrivKG , DK , Enc , Transform , Dec , R ) be a server-aided revocable IBE scheme. Below describes an experiment played between a challenger C and a PPT adversary A .
EXP A selective SR ID CPA ( λ ) : ( id * , t * ) A ; ( mpk , msk , st ) Setup ( 1 λ , 1 n ) ; Parse st = ( KL , PL , RL , KU ) ; ( m 0 , m 1 , st A ) A PubKG ( · ) , KU , PrivKG ( · ) , DK ( · , · ) , Rvk ( · , · ) ( mpk ) ; θ $ { 0 , 1 } ; ct * Enc ( mpk , id * , t * , m , PL ) ) ; θ A PubKG ( · ) , KU , PrivKG ( · ) , DK ( · , · ) , Rvk ( · , · ) ( mpk , ct * , st A ) ; If θ = θ Return 1 ; If θ θ Return 0 .
The experiment has the following requirements for A .
  • The two plaintexts submitted by A have the same length, i.e., | m 0 | = | m 1 | .
  • The time slot t submitted to KU and Rvk ( · , · ) by A is in ascending order.
  • If the challenger has published KU at time t , then it is not allowed to query oracle Rvk ( · , t ) with t < t .
  • If A has queried id * to oracle PrivKG ( · ) , then there must exist a query ( id * , t ) to oracle Rvk ( · ) satisfying t < t * , i.e., id * must has been revoked before time t * .
  • If id * is not revoked at time t * , DK ( · , · ) cannot be queried on ( id * , t * ) .
A server-aided revocable IBE scheme is selective-SR-ID-CPA secure (with DKER) if for all PPT adversary A , the following advantage is negligible in the security parameter λ, i.e.,
Adv SR IBE , A selective SR ID CPA ( λ ) = | Pr [ EXP A selective SR ID CPA ( λ ) = 1 ] 1 / 2 | = negl ( λ ) .

2.5. Garbled Circuits

A garbled circuits scheme consists of two PPT algorithms ( GCircuit , Eval ) .
  • GCircuit ( λ , C ) ( C ˜ , { lab w , b } w inp ( C ) , b { 0 , 1 } ) : The algorithm GCircuit takes a security parameter λ and a circuit C as input. This algorithm outputs a garbled circuit C ˜ and labels { lab w , b } w inp ( C ) , b { 0 , 1 } where each lab w , b { 0 , 1 } λ . Here inp ( C ) represents the set [] where is the bit-length of the input of the circuit C .
  • Eval ( C ˜ , { lab w , x w } w inp ( C ) ) y : The algorithm Eval takes as input a garbled circuit C ˜ and a set of label { lab w , x w } w inp ( C ) , and it outputs y.
Correctness. 
In a garbled circuit scheme, for any circuit C and an input x { 0 , 1 } , it holds that
Pr [ C ( x ) = Eval ( C ˜ , { lab w , x w } w inp ( C ) ) ] = 1
where ( C ˜ , { lab w , b } w inp ( C ) , b { 0 , 1 } ) GCircuit ( 1 λ , C ) .
Security. 
In a garbled circuit scheme, the security means that there is a PPT simulator Sim such that for any C , x and for any PPT adversary A , the following advantage of A is negligible in the security parameter λ :
Adv A G C ( λ ) = | Pr [ A ( C ˜ , { lab w , x w } w inp ( C ) ) = 1 ] Pr [ A ( Sim ( 1 λ , C ( x ) ) ) = 1 ] | = negl ( λ ) ,
where ( C ˜ , { lab w , b } w inp ( C ) , b { 0 , 1 } ) GCircuit ( 1 λ , C ) .

2.6. Computational Diffie-Hellman Assumption

Let ( G , g , p ) GGen ( 1 λ ) be a group generation algorithm which outputs a cyclic group G of order p and a generator of G .
Definition 4.
[CDH Assumption]The computational Diffie-Hellman (CDH) assumption holds w.r.t. GGen, if for any PPT algorithm A its advantage ϵ in solving computational Diffie-Hellman (CDH) assumption in G is negligible. In formula, P r A ( g , g a , g b ) = g a b | ( G , g , p ) GGen ( 1 λ ) ; a , b Z p = negl ( λ ) .

2.7. Chameleon Encryption

A chameleon encryption scheme has five PPT algorithms CE = ( HGen , H , H 1 , HEnc , HDec ) .
  • HGen: The algorithm HGen takes the security parameter λ and a message-length n as input. This algorithm outputs a key k and a trapdoor t.
  • H: The algorithm H takes the key k, a message x { 0 , 1 } n and a randomness r as input. This algorithm outputs a hash value h and the length of h is λ .
  • H 1 : The algorithm H 1 takes a trapdoor t, a previously used message x { 0 , 1 } n , random coins r and a message x { 0 , 1 } n as input. It outputs r .
  • HEnc: The algorithm HEnc takes a key k, a hash value h, an index i [ n ] , a bit b { 0 , 1 } , and a message m { 0 , 1 } * as input. It outputs a ciphertext c t .
  • HDec: The algorithm HDec takes a key k, a message x { 0 , 1 } n , a randomness r and a ciphertext c t as input. It outputs a value m or ⊥.
The chameleon encryption scheme enjoys the following properties:
  • Uniformity. For all x , x { 0 , 1 } n ,if both r and r are chosen uniformly at random, the two distribution H ( k , x ; r ) and H ( k , x ; r ) are statistically indistinguishable.
  • Trapdoor Collisions. For any x , x { 0 , 1 } n and r, if ( k , t ) HGen ( 1 λ , n ) and r H 1 ( t , ( x , r ) , x ) , then it holds that H ( k , x ; r ) = H ( k , x ; r ) . Moreover, if r is chosen uniformly and randomly, r is statistically close to uniform.
  • Correctness. For all x { 0 , 1 } n , randomness r, index i [ n ] and message m, if ( k , t ) HGen ( 1 λ , n ) , h H ( k , x ; r ) and c t HEnc ( k , ( h , i , x i ) , m ) , then HDec ( k , c t , ( x , r ) ) = m
  • Security. For a PPT adversary A against a chameleon encryption, consider the following experiment:
    EXP A IND CE ( λ ) : ( k , t ) HGen ( 1 λ , n ) . ( x , r , i , m 0 , m 1 ) A ( k ) . b $ { 0 , 1 } . c t HEnc ( k , ( H ( k , x ; r ) , i , 1 x i ) , m b ) . b A ( k , c t , ( x , r ) ) . Output   1   if   b = b   and   0   otherwise .
    The security of a chameleon encryption defines as follows: For any PPT adversary A , the advantage of A in experiment EXP A IND CE ( λ ) satisfies | Pr [ Adv A IND CE ( λ ) = 1 ] 1 / 2 | = negl .
In [8], such a chameleon encryption was constructed from the CDH assumption.

3. Idea of Our Revocable IBE Scheme

3.1. Idea of the DG Scheme

In the IBE scheme [8] proposed by Döttling and Garg, say the DG scheme, each id is an n-bit binary string. In other words, each user can be regarded as a leaf of a complete binary tree of depth n, which is the length of a user’s identity id. For each level j [ n ] in the tree, the key authority generates a pair of chameleon encryption key and trapdoor ( k j , t d j ) . As shown in Figure 2, a leaf v is attached with a key pair ( ek v , dk v ) , which is the public/secret key of an IND-CPA secure public-key encryption scheme PKE=(G, E, D), i.e., ( ek v , dk v ) G ( 1 λ ) . In addition, a non-leaf node v in the tree is attached with four values: the hash value h v of this node, the hash value h v | | 0 of the left child node, the hash value h v | | 1 of the right child node, a randomness r such that h v = H ( k | v | , h v | | 0 | | h v | | 1 ; r v ) . epecially for | v | = n 1 , ( h v | | 0 , h v | | 1 ) : = ( ek v | | 0 , ek v | | 1 ) . The master public key of IBE is given by the hash keys ( k 0 , , k n 1 ) and the hash value h ε of the root. The master secret key is the seed of a pseudorandom function to generate r v and the trapdoors of the chameleon encryption.
Key Generation. 
Each user is assigned to a leaf in the tree according to id . The secret key is just all the values attached to those nodes on the path from the root to the leaf. For example, in Figure 2, if id = 010 , then the secret key is sk 010 = ( { h ε , h 0 , h 1 , r ε } , { h 0 , h 00 , h 01 , r 0 } , { h 01 , ek 010 , ek 011 , r 01 } , dk 010 ) .
Encryption. 
As for encryption, two kinds of circuits are defined.
(1)
Q [ m ] ( ek ) is a circuit with m hardwired and its input is ek . It computes and outputs the PKE ciphertext of message m under the public-key ek .
(2)
P [ β { 0 , 1 } , k , lab ¯ ] ( h ) is a circuit which hardwires bit β , key k and a serial of labels lab ¯ . It computes and outputs { HEnc ( k , ( h , j + β · λ , b ) , lab j , b ) } j [ λ ] , b { 0 , 1 } , where lab ¯ is the short for { lab j , b } j [ λ ] , b { 0 , 1 } .
To encrypt a message m under id , the sender generates a series of garbled circuits from the bottom to the top. Specifically, for level n, it generates Q ˜ , the garbled circuit of Q [ m ] , and the corresponding label lab ¯ , i.e., ( Q ˜ , lab ¯ ) GCircuit ( 1 λ , T [ m ] ) .
Then, id n , k n 1 and lab ¯ are hardwired into circuit P n 1 [ id n , k n 1 , lab ¯ ] . Next, invoke the garbled circuit ( P ˜ n 1 , lab ¯ ) GCircuit ( 1 λ , P n 1 [ id n , k n 1 , lab ¯ ] ) .
Let lab ¯ : = lab ¯ . Invoke ( P ˜ n 2 , lab ¯ ) GCircuit ( 1 λ , P n 2 [ id n 1 , k n 2 , lab ¯ ] ) . Repeat this procedure and we have ( P ˜ 0 , lab ¯ ) GCircuit ( 1 λ , P 0 [ id 1 , k 0 , lab ¯ ] ) . Recall that lab ¯ = { lab j , b } j [ λ ] , b { 0 , 1 } . Choose λ labels from lab ¯ according to the λ bits of h ϵ .
The final ciphertext is ct = ( { lab j , h ϵ j } j [ λ ] , P ˜ 0 , , P ˜ n 1 , T ˜ ) .
Decryption. 
The decryption goes from the top to bottom. It will invoke the evaluation algorithm Eval of the garbled circuits to obtain chameleon encryption of labels, and uses the secret key of chameleon encryption scheme to recover the corresponding label. For the leaf, it will use the decryption algorithm of PKE to recover the message m.

3.2. Idea of Our Revoked IBE Scheme

Our revocable IBE is based on the original DG scheme. An important observation of the DG scheme is that among all the elements in the secret key sk id = ( { h v , h v | | 0 , h v | | 1 , r v } v V , dk id ) of user id , dk id is the most critical element. Recall that V = { ε , id [ 1 ] , id [ 12 ] , , id [ 12 n 1 ] } and dk id is the decryption key of the underlying building block PKE. The sibling of leaf id knows everything about sk id except dk id . This gives us a hint for revocation. To revoke user id , we can change the decryption key dk id in sk id into a new one dk id and this fresh decryption key will not issued to the revoked user id . As long as the essential element dk id is missing, user id will not be able to decrypt anything. Now we outline how the revocable IBE works.
The tree is updated according to the revoked users.
  • If a leaf v id is revoked during time period t , then a new public/secret key pair will generated with ( ek id , dk id ) G ( 1 λ ) for this leaf. As a result, h v id = ek id is replaced with a fresh value h v id ( t ) : = ek id . This fresh value will not consistent to what the father node of v id has. Therefore, we have to change the attachments of all nodes along the path from the revoked leaf v id to root bottom upward.
  • For i from n 1 down to 0
    Let v : = v id [ 12 i ] . Choose random coins r v ( t ) ; h v ( t ) : = H ( h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) ;
    Here h v | | b ( t ) : = h v | | b if h v | | b ( t ) is not defined, where b { 0 , 1 } .
In this way, a new tree is built with root attached with new value ( h ε ( t ) , h 0 ( t ) , h 1 ( t ) , r ε ( t ) ) . Please Please note that the hash keys ( k 0 , , k n 1 ) remain unchanged.
When revocation happens, what a sender does is updating the new hash value h ε ( t ) , then invoking the encryption algorithm for encryption.
For decryption to go smoothly, the IBE system has to issue updating keys to users. The updating key includes all the information of the nodes on the paths from revoked leaves to the root, but the new dk id ( t ) is not issued. In Figure 3, for example, two users, namely 000 and 010, are revoked and determine two paths. Then all the nodes along the two paths are marked with cross. All the nodes are updated with new attachments, but leaf 000 is only attached with a new ek 000 ( t ) (without dk 000 ( t ) ) and leaf 010 is only attached with a new ek 010 ( t ) (without dk 010 ( t ) ). The updating key are { ε , ( h ε ( t ) , h 0 ( t ) , h 1 ( t ) , r ε ( t ) ) , 0 , ( h 0 ( t ) , h 00 ( t ) , h 01 ( t ) , r 0 ( t ) ) , 00 , ( h 00 ( t ) , h 000 ( t ) , h 001 ( t ) , r 00 ( t ) ) , 01 , ( h 01 ( t ) , h 010 ( t ) , h 011 ( t ) , r 01 ( t ) ) , 000 , ( h 000 ( t ) = ek 000 ( t ) , ) , 010 , ( h 010 ( t ) = ek 010 ( t ) , ) } .
Any legal user is able to update his secret key sk id with the new attachments of nodes along the path from his leaf to the root. For example, the updated secret key sk 001 ( t ) of user 001 is now { ε , ( h ε ( t ) , h 0 ( t ) , h 1 ( t ) , r ε ( t ) ) , 0 , ( h 0 ( t ) , h 00 ( t ) , h 01 ( t ) , r 0 ( t ) ) , 00 , ( h 00 ( t ) , h 000 ( t ) , h 001 ( t ) , r 00 ( t ) ) , 001 , ( h 001 = ek 001 , dk 001 ) } . The updated secret key sk 111 ( t ) of user 111 is now { ε , ( h ε ( t ) , h 0 ( t ) , h 1 ( t ) , r ε ( t ) ) , 1 , ( h 1 , h 10 , h 11 , r 1 ) , 11 , ( h 11 , h 110 , h 111 , r 11 ) , 111 , ( h 111 = ek 001 , dk 111 ) } .
In this way, any legal user is able to decrypt ciphertexts since he knows the secret key corresponding to the new tree. Any revoked user id is unable to implement decryption anymore, since the new dk id ( t ) is missing.

4. Revocable IBE Scheme

In this section, we present our construction of revocable IBE scheme from chameleon encryption (without DKER). Let PRF: { 0 , 1 } λ × { 0 , 1 } + n { ε } { 0 , 1 } λ be a pseudorandom function. Let CE = ( HGen , H , H 1 , HEnc , HDec ) be a chameleon encryption scheme and PKE = ( G , E , D ) be an IND-CPA secure public-key encryption scheme. We denote by id [ i ] the i-th bit of id and by id [ 1 i ] the first i bits of id . Define id [ 1 0 ] : = ε . We first introduce five subroutines which will be used repeatedly in our scheme (as shown in Table 4). All of these five subroutines are run by the key authority. The subroutines NodeGen and LeafGen are invoked by the key authority in setup algorithm, where NodeGen is used to generate non-leaf nodes and LeafGen to generate leaves and their parents. Just like [8], given all chameleon keys, trapdoors, a randomness s, a node v and a length parameter , the NodeGen subroutine generates four values stored in node v: the hash value of the node h v , the hash value of it left-child node h v | | 0 , the hash value of it right-child node h v | | 1 , and the randomness of this node r v . Given all chameleon keys k n 1 and trapdoors t d n 1 of the n 1 -th level, a randomness s, a node v in the n 1 -th level and a length parameter , the LeafGen subroutine generates two pairs of public/secret keys ( ek v | | 0 , dk v | | 0 ) , ( ek v | | 1 , dk v | | 1 ) of the PKE scheme, and generates the hash value h v and the randomness r v of the node v. The children of v are two leaves associated by ek v | | 0 and ek v | | 1 . Each user can be uniquely represented by a leaf node. The subroutine FindNodes, subroutine NodeChange and subroutine LeafChange are invoked by the key authority in key update algorithm. Given a revocation list RL , a time t and the global key list KL , subroutine FindNodes ( RL , t , KL ) outputs all leaves which are revoked at time t and all their ancestor nodes. Given a chameleon key, a chameleon trapdoor, a node v, two hash values ( h v | | 0 , h v | | 0 ) of the two children of node v and a randomness s, subroutine NodeChange outputs a new hash value and a new randomness for node v. Given a leaf node v, a time t , a randomness s, subroutine LeafChange outputs a fresh public key by invoking the key generation algorithm G of PKE .
Construction of RIBE. 
Now we describe our revocable IBE scheme ( RIBE . Setup , RIBE . KG , RIBE . KU , RIBE . DK , RIBE . Enc , RIBE . Dec , RIBE . R ) .
  • Setup RIBE . Setup ( 1 λ , 1 n ) : given a security parameter λ , an integer n where 2 n is the maximal number of users that the scheme supports. Define identity space as ID = { 0 , 1 } n and time space as T = { 0 , 1 } , and do the following.
    • Sample s $ { 0 , 1 } λ .
    • For each i [ n ] , invoke ( k i , t d i ) $ HGen ( 1 λ , 2 λ ) .
    • Initialize key list KL : = , public list PL = , key update list KU = and revocation list RL : = .
    • mpk : = ( k 0 , , k n 1 , ) ; st : = { KL , PL , RL , KU } ; msk : = ( mpk , t d 0 , , t d n 1 , s ) .
    • Output ( mpk , msk , st ) .
  • Private Key Generation RIBE . KG ( msk , id { 0 , 1 } n , st ) : See Figure 4 for illustrations.
    • Parse msk = ( mpk , t d 0 , , t d n 1 , s ) and mpk = ( k 0 , , k n 1 , ) .
    • W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string.
    • For all v W \ { id [ 1 n 1 ] } :
      ( h v , h v | | 0 , h v | | 1 , r v ) NodeGen ( ( k 0 , , k n 1 ) , ( t d 0 , , t d n 1 , s ) , v , ) ,
      KL : = KL { ( v , h v , h v | | 0 , h v | | 1 , r v ) } ,
      lk v : = ( h v , h v | | 0 , h v | | 1 , r v ) .
    • For v = id [ 1 n 1 ] :
      ( h v , h v | | 0 = ek v | | 0 , h v | | 1 = ek v | | 1 , r v , dk v | | 0 , dk v | | 1 ) LeafGen ( k n 1 , ( t d n 1 , s ) , v , ) ,
      KL : = KL { ( v , h v , ek v | | 0 , ek v | | 1 , r v ) , ( v | | 0 , ek v | | 0 , ) , ( v | | 1 , ek v | | 1 , ) } ,
      lk v : = ( h v , ek v | | 0 , ek v | | 1 , r v ) .
    • st = { KL , PL , RL , KU } and sk id : = ( t = 0 , id , { lk v } v W , dk id ) .
    • Output ( sk id , st ) .
  • Key Update Generation RIBE . KU ( msk , t , st ) : See Figure 5 for illustrations.
    • Parse msk = ( mpk , t d 0 , , t d n 1 , s ) , st = { KL , PL , RL , KU } and mpk = ( k 0 , , k n 1 , ) .
    • Y FindNodes ( RL , t , KL ) . // Y stores all revoked leaves and their ancestors
    • If Y = , Output( KU , PL ) //stay unchanged.
    • Set key update list KU ( t ) : = .
    • For all node v Y such that | v | = n : // deal with all leaves in Y
      ( ek v ( t ) , ) LeafChange ( v , t , s ) ,
      KU ( t ) : = KU ( t ) { ( v , ek v ( t ) , ) } . // new attachments for all leaves in Y
      h v ( t ) : = ek v ( t ) .
    • For i = n 1 to 0: // generate new attachments for all non-leaf nodes in Y
      For all node v Y and | v | = i :
      Set j : = t , KU ( 0 ) : = KL .
      While ( j 0 )
      If v | | b s.t. ( v | | b , h v | | b , · , · , · ) KU ( j ) ,
      h v | | b ( t ) : = h v | | b ,
      Break ;
      j : = j 1 .
      ( h v ( t ) , h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) NodeChange ( k i , t d i , v , h v | | 0 ( t ) , h v | | 1 ( t ) , t , s ) .
      KU ( t ) : = KU ( t ) { ( v , h v ( t ) , h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) } .
    • KU : = KU { ( t , KU ( t ) ) } and PL : = PL { ( t , h ε ( t ) ) } .
    • st : = { KL , PL , RL , KU }
    • Output st .
  • Decryption Key Generation RIBE . DK ( mpk , sk id , KU , t ) : See Figure 6 for illustrations.
    • W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string.
    • Parse mpk = ( k 0 , , k n 1 , ) and sk id = ( 0 , id , { h v , h v | | 0 , h v | | 1 , r v } v W , dk id ) .
    • From KU retrieve a set Ω : = { ( t ˜ , KU ( t ˜ ) ) | ( t ˜ , KU ( t ˜ ) ) KU , 0 t ˜ < t } .
    • For each ( t ˜ , KU ( t ˜ ) ) Ω with t ˜ in ascending order, does the following:
      For i = 0 to n 1 :
      v : = id [ 1 i ] (Recall id [ 1 0 ] = ε ).
      If ( v , h v ( t ˜ ) , h v | | 0 ( t ˜ ) , h v | | 1 ( t ˜ ) , r v ( t ˜ ) ) KU ( t ˜ ) :
      lk v ( t ) : = ( h v ( t ˜ ) , h v | | 0 ( t ˜ ) , h v | | 1 ( t ˜ ) , r v ( t ˜ ) ) .
    • If ( t ˜ , KU ( t ˜ ) ) KU s.t. ( id , ek v ( t ˜ ) , ) KU ( t ˜ ) : \ \ id is revoked at t ˜
      Output sk id ( t ) : = ( t , id , { lk v ( t ) } v W , ) .
    • Output sk id ( t ) : = ( t , id , { lk v ( t ) } v W , dk id )
  • Encryption RIBE . Enc ( mpk , id , t , m , PL ) ) :
    We describe two circuits that will be garbled during the encryption procedure.
    -
    Q [ m ] ( e k ) : Compute and output E ( e k , m ) .
    -
    P [ β { 0 , 1 } , k , lab ¯ ] ( h ) : Compute and output { HEnc ( k , ( h , j + β · λ , b ) , lab j , b ) } j [ λ ] , b { 0 , 1 } , where lab ¯ is the short for { lab j , b } j [ λ ] , b { 0 , 1 } .
    Encryption proceeds as follows:
    • Retrieve the last item ( t ¯ , h ϵ ( t ¯ ) ) from PL . If t < t ¯ , output ⊥; otherwise h ϵ ( t ) : = h ϵ ( t ¯ ) .
    • Parse mpk = ( k 0 , , k n 1 , ) .
    • ( Q ˜ , lab ¯ ) $ GCircuit ( 1 λ , Q [ m ] ) .
    • For i = n 1 to 0,
      ( P ˜ i , lab ¯ ) $ GCircuit ( 1 λ , P [ id [ i + 1 ] , k i , lab ¯ ] ) and set lab ¯ : = lab ¯ .
    • Output ct : = lab j , h ε , j ( t ) j [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ } , where h ε , j ( t ) is the j th bit of h ε ( t ) .
  • Decryption RIBE . Dec ( mpk , sk id ( t ) , ct )
    • W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string.
    • Parse mpk = ( k 0 , , k n 1 , ) and sk id ( t ) = ( id , { lk v ( t ) } v W , dk id ) , where lk v ( t ) = ( h v ( t ) , h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) .
    • Parse ct : = lab j , h ε , j ( t ) j [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ }
    • Set y : = h ε ( t ) .
    • For i = 0 to n 1 :
      Set v : = id [ 1 i ] (Recall id [ 1 0 ] = ε ) ;
      { c j , b } j [ λ ] , b { 0 , 1 } Eval ( P ˜ i , { lab j , y j } j [ λ ] ) ;
      If i n 1 , set v : = id [ 1 i + 1 ] and y : = h v ( t ) , and for each j [ λ ] ,
      { lab j , y j } j [ λ ] HDec ( k i , c j , y j , ( h v | | 0 ( t ) | | h v | | 1 ( t ) ) , r v ( t ) ) .
      If i = n 1 , set y : = ek id and for each j [ λ ] , compute
      { lab j , y j } j [ λ ] HDec ( k i , c j , y j , ( ek v | | 0 | | ek v | | 1 ) = ( h v | | 0 ( t ) | | h v | | 1 ( t ) ) , r v ( t ) ) .
    • Compute f Eval ( Q ˜ , { lab j , y j } j [ λ ] ) .
    • Output m D ( dk id , f ) .
  • Revocation RIBE . R ( id , t , st ) :
    • Parse st : = { KL , PL , RL , KU } .
    • Update the revocation list by RL : = RL { ( id , t ) } .
    • st : = { KL , PL , RL , KU } .
    • Output st .
Remark. 
It is possible for us to reduce the cost of users’ key updating in our construction. Now we provide a more efficient variant of decryption key generation algorithm RIBE . DK . With this variant algorithm, if a user has already generated a key sk id ( t ) at time period t where t t , he or she can use sk id ( t ) as the input instead of sk id and generates the decryption key with lower computational cost. The algorithm proceeds as follows:
Decryption Key Generation RIBE . DK ( mpk , sk id ( t ) , KU , t ) :
  • W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string.
  • Parse mpk = ( k 0 , , k n 1 , ) and sk id ( t ) = ( t , id , { h v , h v | | 0 , h v | | 1 , r v } v W , dk id ) .
  • If t > t , Output ⊥.
  • If t = t , Output sk id ( t ) .
  • From KU retrieve a set Ω : = { ( t ˜ , KU ( t ˜ ) ) | ( t ˜ , KU ( t ˜ ) ) KU , t t ˜ < t } .
  • For each ( t ˜ , KU ( t ˜ ) ) Ω with t ˜ in ascending order, does the following:
    For i = 0 to n 1 :
    v : = id [ 1 i ] (Recall id [ 1 0 ] = ε ).
    If ( v , h v ( t ˜ ) , h v | | 0 ( t ˜ ) , h v | | 1 ( t ˜ ) , r v ( t ˜ ) ) KU ( t ˜ ) :
    lk v ( t ) : = ( h v ( t ˜ ) , h v | | 0 ( t ˜ ) , h v | | 1 ( t ˜ ) , r v ( t ˜ ) ) .
  • If ( t ˜ , KU ( t ˜ ) ) KU s.t. ( id , ek v ( t ˜ ) , ) KU ( t ˜ ) : \ \ id is revoked at t ˜
    Output sk id ( t ) : = ( t , id , { lk v ( t ) } v W , ) .
  • Output sk id ( t ) : = ( t , id , { lk v ( t ) } v W , dk id ) .

4.1. Correctness

We first show that our revocable IBE is correct. During the time slot t , the key updating algorithm RIBE . KU (together with the key generation algorithm RIBE . KG ) uniquely determines a fresh tree of time t . The root of the fresh tree has attachment ( h ε ( t ) , h 0 ( t ) , h 1 ( t ) , r ε ( t ) ) . Set W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string. Please Please note that each id uniquely determines a path (from the root of the tree to the leaf of id ). W records all non-leaf nodes on the path. For all nodes v W , we have H ( k | v | , h v | | 0 ( t ) | | h v | | 1 ( t ) ; r v ( t ) ) = h v ( t ) , and ( h v | | 0 ( t ) , h v | | 1 ( t ) ) : = ( ek v | | 0 , ek v | | 1 ) if | v | = n 1 .
Consider the ciphertext ct = lab , h ε , ( t ) [ λ ] , { P ˜ 0 , , P ˜ n , Q ˜ } , which is the output of RIBE . Enc ( mpk , id , t , m , PL ) . Consider the secret key sk id ( t ) : = ( id , { lk v ( t ) } v W , dk id ) , which is the output RIBE . DK . Obviously, sk id ( t ) is exactly the the secret key of id in the tree (of time t ). As long as the h ϵ ( t ) used in RIBE . Enc to generate ct is identical to the h ε ( t ) in lk ε ( t ) = ( h ε ( t ) , h 0 ( t ) , h 1 ( t ) , r ε ( t ) ) , the decryption RIBE . Dec can always recover the plaintext due to the correctness of the DG scheme.
Below we show the details of the correctness (this analysis is similar to that in [8]). For all nodes v W , we have the following facts.
  • { c j , b } j [ λ ] , b { 0 , 1 } : = Eval P ˜ | v | , lab j , h v , j ( t ) j [ λ ] = P [ id [ | v | + 1 ] , k | v | ,
    { lab j , b } j [ λ ] , b ] ( h v ( t ) ) = { HEnc ( k | v | , ( h v ( t ) , j + id [ | v | + 1 ] · λ , b ) , lab j , b ) } j [ λ ] , b { 0 , 1 } . Recall that lab ¯ : = { lab j , b } j [ λ ] , b { 0 , 1 } and ( lab ¯ , P ˜ ( | v | + 1 ) ) are the output of GCircuit ( 1 λ , P [ id [ | v | + 2 ] , k | v | + 1 , lab ¯ ] ) .
  • Due to the correctness of the chameleon encryption, we know that given ( h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) one can recover lab , h v | | id [ | v | + 1 ] , ( t ) [ λ ] by decrypting
    { c j , h v | | id [ | v | + 1 ] , j ( t ) } j [ λ ] . And lab , h v | | id [ | v | + 1 ] , ( t ) [ λ ] is the label for the next garbled circuit P ˜ ( | v | + 1 ) .
  • When | v | = n 1 , we obtain the set of labels lab j , ek id , j j [ λ ] . Recall that { lab j , b } j [ λ ] , b { 0 , 1 } and Q ˜ are the output of GCircuit ( 1 λ , Q [ m ] ) . And lab j , ek id , j j [ λ ] is the result of { lab j , b } j [ λ ] , b { 0 , 1 } selected by ek id . Thus,
    f : = Eval Q ˜ , lab j , ek id , j j [ λ ] = Q [ m ] ( ek id ) = E ( ek id , m ) .
    Due to the correctness of PKE = ( G , E , D ) , given decryption key dk id , one can always recover the original message m correctly with m D ( dk id , f ) .

4.2. Security

In this subsection, we prove that our revocable IBE scheme is IND-ID-CPA secure. Assume q is a polynomial upper bound for the running-time of an adversary A , and it is also an upper bound for the number of A ’s queries (which contains private key queries, key update queries, and revocation queries).
Theorem 1.
Assume that t max is the size of the time space and 2 n be the maximal number of users. If PRF is a pseudorandomn function, the garbled circuit scheme is secure, the chameleon encryption scheme CE is secure and PKE = ( G , E , D ) is IND-CPA secure, the above proposed revocable IBE scheme is adaptive-IND-ID-CPA secure (without decryption key exposure resistance) More specificly, for any PPT adversary A issuing at most q queries, there exist PPT adversaries B 1 , B 2 , B 3 and B 4 such that
Adv A IND ID CPA ( λ ) Adv B 1 P R F ( λ ) + ( n + 1 ) · Adv B 2 G C ( λ ) + n · λ · Adv B 3 C E ( λ ) + ( 2 q + 1 ) · Adv B 4 P K E ( λ ) .
Proof. 
The full proof of Theorem 1 is in Appendix B.1. □

5. Revocable IBE Scheme with DKER

In this section, we present the construction of revocable IBE scheme with decryption key exposure resistance from the CDH assumption. In [24], Katsumata et al. provided a generic construction of RIBE scheme with DKER from a hierarchal IBE (HIBE) scheme (the formal definition of HIBE is provided in Appendix A) and a RIBE scheme without DKER. Following this idea, based on the previous RIBE scheme RIBE = ( RIBE . Setup , RIBE . KG , RIBE . KU , RIBE . DK , RIBE . Enc , RIBE . Dec , RIBE . R ) in Section 4 and a HIBE scheme HIBE = ( HIBE . Setup , RIBE . KG , HIBE . Enc , HIBE . Dec ) in [8], both of which are based on the CDH assumption, we can construct a revocable IBE scheme Π with DKER from the CDH assumption.
Let ID , T and M denote identity space, time period space and plaintext space respectively. We assume Π . ID = RIBE . ID and Π . T = RIBE . T . id RIBE . ID and t RIBE . T , ( id | | t ) HIBE . ID . In addition, we assume Π . M = RIBE . M = HIBE . M .
Construction of RIBE with DKER. 
Now we describe our revocable IBE scheme Π = ( Setup , KG , KU , DK , Enc , Dec , R ) with DKER following [24].
  • Setup ( 1 λ , 1 n ) : given a security parameter λ , an integer n where 2 n is the maximal number of users that the scheme supports, i.e., Π . ID = { 0 , 1 } n . Define the time space as Π . T = { 0 , 1 } .
    • Run ( RIBE . mpk , RIBE . msk , RIBE . st ) RIBE . Setup ( 1 λ , 1 n ) .
    • Parse RIBE . st : = { KL , PL , RL , KU } .
    • Run ( HIBE . mpk , HIBE . msk ) HIBE . Setup ( 1 λ ) .
    • Output ( mpk : = ( RIBE . mpk , HIBE . mpk ) , msk : = ( RIBE . msk , HIBE . msk ) , st : = RIBE . st ) .
  • KG ( msk , id { 0 , 1 } n , st ) :
    • Parse msk : = ( RIBE . msk , HIBE . msk ) and st : = RIBE . st .
    • Run ( RIBE . sk id , RIBE . st ) RIBE . KG ( RIBE . msk , id { 0 , 1 } n , RIBE . st ) .
    • Run HIBE . sk id HIBE . KG ( HIBE . msk , id { 0 , 1 } n ) .
    • Output ( sk id : = ( RIBE . sk id , HIBE . sk id ) , st : = RIBE . st ) .
  • KU ( msk , t , st ) :
    • Parse msk : = ( RIBE . msk , HIBE . msk ) and st : = RIBE . st .
    • Run RIBE . st RIBE . KU ( RIBE . msk , t , RIBE . st ) .
    • Output ( st : = RIBE . st ).
  • DK ( mpk , sk id , KU , t ) :
    • Parse mpk : = ( RIBE . mpk , HIBE . mpk ) and sk id : = ( RIBE . sk id , HIBE . sk id ) .
    • Run RIBE . sk id ( t ) RIBE . DK ( RIBE . mpk , RIBE . sk id , KU , t ) .
    • Run HIBE . sk id | | t HIBE . KG ( HIBE . sk id , t { 0 , 1 } ) .
    • Output sk id ( t ) : = ( RIBE . sk id ( t ) , HIBE . sk id | | t ) .
  • Enc ( mpk , id , t , m , PL ) ) :
    • Parse mpk : = ( RIBE . mpk , HIBE . mpk ) .
    • Sample a pair ( RIBE . m , HIBE . m ) M 2 uniformly at random, subject to RIBE . m + HIBE . m = m .
    • Run RIBE . ct RIBE . Enc ( RIBE . mpk , id , t , RIBE . m , PL ) .
    • Run HIBE . ct HIBE . Enc ( HIBE . mpk , ( id | | t ) , HIBE . m ) .
    • Output ct : = ( RIBE . ct , HIBE . ct ) .
  • Dec ( mpk , sk id ( t ) , ct ) :
    • Parse mpk : = ( RIBE . mpk , HIBE . mpk ) and sk id ( t ) : = ( RIBE . sk id ( t ) , HIBE . sk id | | t ) .
    • Run RIBE . m RIBE . Dec ( RIBE . mpk , RIBE . sk id ( t ) , RIBE . ct ) .
    • Run HIBE . m HIBE . Dec ( HIBE . mpk , HIBE . sk id | | t , HIBE . ct , ) .
    • Output m : = RIBE . m + HIBE . m .
  • R ( id , t , st ) :
    • Run RIBE . st RIBE . R ( id , t , st ) .
    • Output st : = RIBE . st .
Obviously, the correctness of scheme Π follows from the correctness of the underlying RIBE scheme and HIBE scheme. The security of scheme Π is guaranteed by the following theorem.
Theorem 2.
(Theorem 1 in [24]) If the underlying RIBE scheme in the above RIBE scheme Π is selective-IND-ID-CPA secure but without decryption key exposure resistance (DKER), and the underlying HIBE scheme in Π is selective-IND-ID-CPA secure, then the resulting RIBE scheme Π is selective-IND-ID-CPA secure with DKER.
Please note that our RIBE scheme RIBE in Section 4 is adaptive-IND-ID-CPA secure without DKER and the hierarchal IBE HIBE constructed in [8] is selective-IND-ID-CPA secure. Both of RIBE and HIBE are based on the CDH assumption. Following Theorem 2, the constructed RIBE scheme Π will be selective-IND-ID-CPA secure with DKER based on the CDH assumption.
Corollary 1.
When instantiating the building blocks with our RIBE scheme RIBE in Section 4 and the hierarchal IBE HIBE in [8], the RIBE scheme Π is selective-IND-ID-CPA secure with DKER based on the CDH assumption.

6. Server-Aided Revocable IBE Scheme

In this section, we present a server-aided version of our revocable IBE scheme. Following the ideas in Section 4 and Section 5, we use a standard HIBE scheme HIBE = ( HIBE . Setup , HIBE . KG , HIBE . Enc , HIBE . Dec ) in [8] as a building block to construct such a SR-IBE Σ , so that Σ can obtain DKER. To describe our server-aided revocable IBE scheme Σ , we make use of these five subroutines (NodeGen, LeafGen, FindNodes, NodeChange, LeafChange) as defined in Section 4.
Let Σ . ID , Σ . T and Σ . M denote the identity space, the time period space and the plaintext space of scheme Σ respectively. Let HIBE . ID and HIBE . M denote the identity space and the plaintext space of scheme HIBE respectively. For all id Σ . ID and all t Σ . T , we assume ( id | | t ) HIBE . ID . In addition, we assume Σ . M = HIBE . M .
Idea. To convert the RIBE scheme Π with DKER in Section 5 to the SR-IBE scheme Σ , the problem is how to divide the decryption ability between the server and the users.
  • Key Generation: Recall that in RIBE Π the secret key of a user is ( Π . sk id : = ( RIBE . sk id , HIBE . sk id ) . Moreover, as shown in Figure 2, the RIBE private key RIBE . sk id can be treated as a path from the root to the leaf corresponding to id in a tree. Now for SR-IBE Σ , we divide the RIBE private key RIBE . sk id into two parts, the non-leaf part and the leaf part. The non-leaf part (we name it pk id ) is assigned to the server and the leaf part ( ek id , dk id ) (in fact dk id is enough) to user id . Besides, user id is also assigned with the HIBE private key HIBE . sk id . This is shown in Figure 7.
  • Key Update: If a user has been revoked in RIBE Π , the updating information in the leaf node corresponding to the user will not be issued. In other words, all the key updating information only occurs in the upper part of the tree excluding the leaves. Therefore, in SR-IBE Σ the key authority can issue the key updating list to the server and the server is in charge of updating keys for users.
  • Decryption: Recall that in the RIBE scheme Π with DKER in Section 5, the ciphertext consists of two parts: the ciphertext of the RIBE scheme RIBE . ct and the ciphertext of the HIBE scheme HIBE . ct . To decrypt RIBE . ct in SR-IBE Σ , the decryption is implemented from the top to the bottom along the path in the tree. The server will decrypt the upper non-leaf part while the user will decrypt the leaf part. Meanwhile, the user is alway able to use HIBE . sk id and time slot t to compute HIBE . sk id | | t and decrypt HIBE . ct with it. The process is shown in Figure 8.
Construction of SR-IBE. 
Now we describe our server-aided revocable IBE scheme Σ = ( Setup , PubKG , KU , TranKG , PrivKG , DK , Enc , Transform , Dec , R ) .
  • Setup ( 1 λ , 1 n ) : given a security parameter λ , an integer n where 2 n is the maximal number of users that the scheme supports. Define identity space as Σ . ID = { 0 , 1 } n and time space as Σ . T = { 0 , 1 } , and do the following.
    • Sample s $ { 0 , 1 } λ .
    • For each i [ n ] , invoke ( k i , t d i ) $ HGen ( 1 λ , 2 λ ) .
    • Initialize key list KL : = , public list PL = , key update list KU = and revocation list RL : = .
    • Run ( HIBE . mpk , HIBE . msk ) HIBE . Setup ( 1 λ ) .
    • mpk : = ( k 0 , , k n 1 , , HIBE . mpk ) ; st : = { KL , PL , RL , KU } ; msk : = ( mpk , t d 0 , , t d n 1 , s , HIBE . msk ) .
    • Output ( mpk , msk , st ) .
  • PubKG ( msk , id { 0 , 1 } n , st )
    • Parse msk = ( mpk , t d 0 , , t d n 1 , s , HIBE . msk ) , st = { KL , PL , RL , KU } and mpk = ( k 0 , , k n 1 , , HIBE . mpk ) .
    • W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string.
    • For all v W \ { id [ 1 n 1 ] } :
      ( h v , h v | | 0 , h v | | 1 , r v ) NodeGen ( ( k 0 , , k n 1 ) , ( t d 0 , , t d n 1 , s ) , v , ) ,
      KL : = KL { ( v , h v , h v | | 0 , h v | | 1 , r v ) } ,
      lk v : = ( h v , h v | | 0 , h v | | 1 , r v ) .
    • For v = id [ 1 n 1 ] :
      ( h v , h v | | 0 = ek v | | 0 , h v | | 1 = ek v | | 1 , r v , dk v | | 0 , dk v | | 1 ) LeafGen ( k n 1 , ( t d n 1 , s ) , v , ) ,
      KL : = KL { ( v , h v , ek v | | 0 , ek v | | 1 , r v ) , ( v | | 0 , ek v | | 0 , ) , ( v | | 1 , ek v | | 1 , ) } ,
      lk v : = ( h v , ek v | | 0 , ek v | | 1 , r v ) .
    • st = { KL , PL , RL , KU } and pk id : = ( t = 0 , id , { lk v } v W ) .
    • Output ( pk id , st ) .
      // This algorithm is almost the same as the Private Key Generation algorithm in Section 4 except that there is no dk id in pk id .
  • KU ( msk , t , st ) :
    • Parse msk = ( mpk , t d 0 , , t d n 1 , s , HIBE . msk ) , st = { KL , PL , RL , KU } and mpk = ( k 0 , , k n 1 , , HIBE . mpk ) .
    • Y FindNodes ( RL , t , KL ) . // Y stores all revoked leaves and their ancestors
    • If Y = , Output( KU , PL )
    • Set key update list KU ( t ) : = .
    • For all node v Y such that | v | = n : ( ek v ( t ) , ) LeafChange ( v , t , s ) ,
      KU ( t ) : = KU ( t ) { ( v , ek v ( t ) , ) } . h v ( t ) : = ek v ( t ) .
    • For i = n 1 to 0: For all node v Y and | v | = i :
      Set j : = t , KU ( 0 ) : = KL .
      While ( j 0 )
      If v | | b s.t. ( v | | b , h v | | b , · , · , · ) KU ( j ) ,
      h v | | b ( t ) : = h v | | b ,
      Break ;
      j : = j 1 .
      ( h v ( t ) , h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) NodeChange ( k i , t d i , v , h v | | 0 ( t ) , h v | | 1 ( t ) , t , s ) .
      KU ( t ) : = KU ( t ) { ( v , h v ( t ) , h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) } .
    • KU : = KU { ( t , KU ( t ) ) } and PL : = PL { ( t , h ε ( t ) ) } .
    • st : = { KL , PL , RL , KU }
    • Output ( st ) .
      // This algorithm is identical to the Key Update Generation algorithm in Section 4.
  • TranKG ( mpk , pk id , KU ) :
    • W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string.
    • Parse mpk = ( k 0 , , k n 1 , , HIBE . mpk ) and pk id = ( 0 , id , { h v , h v | | 0 , h v | | 1 , r v } v W ) .
    • From KU retrieve a set Ω : = { ( t ˜ , KU ( t ˜ ) ) | ( t ˜ , KU ( t ˜ ) ) KU , 0 t ˜ < t } .
    • For each ( t ˜ , KU ( t ˜ ) ) Ω with t ˜ in ascending order, does the following:
      For i = 0 to n 1 :
      v : = id [ 1 i ] (Recall id [ 1 0 ] = ε ).
      If ( v , h v ( t ˜ ) , h v | | 0 ( t ˜ ) , h v | | 1 ( t ˜ ) , r v ( t ˜ ) ) KU ( t ˜ ) :
      lk v ( t ) : = ( h v ( t ˜ ) , h v | | 0 ( t ˜ ) , h v | | 1 ( t ˜ ) , r v ( t ˜ ) ) .
    • Output tk id ( t ) : = ( t , id , { lk v ( t ) } v W )
      // This algorithm is almost the same as the Decryption Key Generation algorithm in Section 4 except that all update operations do not involve leaf nodes, i.e., dk id .
  • PrivKG ( msk , id { 0 , 1 } n )
    • Parse msk = ( mpk , t d 0 , , t d n 1 , s , HIBE . msk ) and mpk = ( k 0 , , k n 1 , , HIBE . mpk ) .
    • ( ek id , dk id ) G ( 1 λ , PRF ( s , 0 | | id ) )
    • Run HIBE . sk id HIBE . KG ( HIBE . msk , id ) .
    • sk id : = ( dk id , HIBE . sk id ) .
    • Output sk id .
  • DK ( sk id , t )
    • Parse sk id = ( dk id , HIBE . sk id ) .
    • Run HIBE . sk id | | t HIBE . KG ( HIBE . sk id , t ) .
    • dk id ( t ) : = ( dk id , HIBE . sk id | | t ) .
    • Output dk id ( t ) .
  • Enc ( mpk , id , t , m , PL ) ) :
    Same to the encryption algorithm in Section 4, we use these two circuits that will be garbled during the encryption procedure.
    -
    Q [ m ] ( e k ) : Compute and output E ( e k , m ) .
    -
    P [ β { 0 , 1 } , k , lab ¯ ] ( h ) : Compute and output { HEnc ( k , ( h , j + β · λ , b ) , lab j , b ) } j [ λ ] , b { 0 , 1 } , where lab ¯ is the short for { lab j , b } j [ λ ] , b { 0 , 1 } .
    Encryption proceeds as follows:
    • Retrieve the last item ( t ¯ , h ϵ ( t ¯ ) ) from PL . If t < t ¯ , output ⊥; otherwise h ϵ ( t ) : = h ϵ ( t ¯ ) .
    • Parse mpk = ( k 0 , , k n 1 , , HIBE . mpk ) .
    • Sample a pair ( RIBE . m , HIBE . m ) M 2 uniformly at random, subject to RIBE . m + HIBE . m = m .
    • Run HIBE . ct HIBE . Enc ( HIBE . mpk , ( id || t ) , HIBE . m ) .
    • ( Q ˜ , lab ¯ ) $ GCircuit ( 1 λ , Q [ RIBE . m ] ) .
    • For i = n 1 to 0,
      ( P ˜ i , lab ¯ ) $ GCircuit ( 1 λ , P [ id [ i + 1 ] , k i , lab ¯ ] ) and set lab ¯ : = lab ¯ .
    • Output RIBE . ct : = lab j , h ε , j ( t ) j [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ } , where h ε , j ( t ) is the j th bit of h ε ( t ) .
    • Output ct : = ( RIBE . ct , HIBE . ct ) .
  • Transform ( mpk , tk id ( t ) , ct )
    • W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string.
    • Parse mpk = ( k 0 , , k n 1 , , HIBE . mpk ) , ct = ( RIBE . ct , HIBE . ct ) and sk id ( t ) = ( t , id , { lk v ( t ) } v W ) , where lk v ( t ) = ( h v ( t ) , h v | | 0 ( t ) , h v | | 1 ( t ) , r v ( t ) ) .
    • Parse RIBE . ct : = lab j , h ε , j ( t ) j [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ }
    • Set y : = h ε ( t ) .
    • For i = 0 to n 1 :
      Set v : = id [ 1 i ] (Recall id [ 1 0 ] = ε ) ;
      { c j , b } j [ λ ] , b { 0 , 1 } Eval ( P ˜ i , { lab j , y j } j [ λ ] ) ;
      If i n 1 , set v : = id [ 1 i + 1 ] and y : = h v ( t ) , and for each j [ λ ] ,
      { lab j , y j } j [ λ ] HDec ( k i , c j , y j , ( h v | | 0 ( t ) | | h v | | 1 ( t ) ) , r v ( t ) ) .
      If i = n 1 , set y : = ek id and for each j [ λ ] , compute
      { lab j , y j } j [ λ ] HDec ( k i , c j , y j , ( ek v | | 0 | | ek v | | 1 ) = ( h v | | 0 ( t ) | | h v | | 1 ( t ) ) , r v ( t ) ) .
    • Compute f Eval ( Q ˜ , { lab j , y j } j [ λ ] ) .
    • Output ct : = ( f , HIBE . ct )
      // This algorithm is almost the same as the Decryption algorithm in Section 4 except that this algorithm omits the last step, i.e., it does not recover RIBE . m from f.
  • Dec ( mpk , dk id ( t ) , ct )
    • Parse mpk = ( k 0 , , k n 1 , , HIBE . mpk ) , dk id ( t ) = ( dk id , HIBE . sk id | | t ) and ct = ( f , HIBE . ct ) .
    • Run HIBE . m HIBE . Dec ( HIBE . mpk , HIBE . sk id | | t , HIBE . c t , ) .
    • Run RIBE . m D ( dk id , f ) .
    • Output m : = RIBE . m + HIBE . m
  • R ( id , t , st ) :
    • Parse st : = { KL , PL , RL , KU } .
    • Update the revocation list by RL : = RL { ( id , t ) } .
    • st : = { KL , PL , RL , KU } .
    • Output st .
Obviously, the correctness of this scheme Σ follows from the correctness of the RIBE scheme described in Section 4 and the HIBE scheme used as the building block. The security of scheme Σ is guaranteed by the following theorem.
Theorem 3.
If HIBE is the hierarchal IBE constructed in [8], the above server-aided revocable IBE scheme Σ is selective-SR-ID-CPA secure (with decryption key exposure resistance ) based on the CDH assumption.
Proof. 
The full proof of Theorem 3 is in Appendix B.2. □

7. Analysis of Key Updating Size

In this section, we analyze the key updating efficiency of our revocable IBE scheme. Different from an IBE scheme, a revocable IBE scheme has enormous cost on the publishing updating keys at each time slot. In our RIBE, the number of updating keys is linear to the number of updated nodes. Therefore, we focus on the number of updated nodes for the performance. The advantage of our RIBE lies in the fact that the nodes that needs to updated is only related to the number Δ r of newly revoked users in the past time slot. More precisely, in all the three schemes proposed in this paper, the number of nodes needs to be updated in each time plot is at most Δ r ( log N log ( Δ r ) ) . Thus the key updating size of our scheme is at most O ( Δ r ( log N log ( Δ r ) ) ) . If there is no new users revoked in the previous time slot, then key updating is not necessary at all.
Recall that in the most of RIBE schemes, the size of updating keys is closely related to the total number r of all the revoked users across all the past slots. For example, in [10] the size of updated key during each time slot is of order O ( r log ( N / r ) ) , where N is the number of users. In addition, in [14], the size of updated key during each time slot is of order O ( r ) .
For simulation, we use Poisson distribution to simulate the number of revoked users at each time period, where α denotes the expected number of revoked users in each time slot. At a time slot t , we sample a random number Δ r t following the Poisson distribution parameterized by α , and Δ r t denotes the number of revoked users at time slot t. The total number r t of the revoked users up to time slot t is given by t = 0 t Δ r t . We evaluate the key updating sizes in our RIBE, the RIBE in [10] and the RIBE in [14]. Since all the our three schemes share the same updating complexity in each time plot, we only simulate our RIBE scheme without DKER and compare the results with the RIBE scheme in [10] and the RIBE scheme in [14]. The simulation results for N = 2 20 and N = 2 25 are shown in Figure 9 and Figure 10 respectively.

Author Contributions

Conceptualization, Z.H.; Methodology, Z.H. and S.L.; Simulation, K.C. and Z.H.; Validation, J.K.L.; Formal Analysis, Z.H. and S.L.; Investigation, K.C.and J.K.L.; Writing—Original Draft Preparation, Z.H. and S.L.; Writing—Review & Editing, K.C.and J.K.L.; Visualization, K.C.; Supervision, J.K.L.; Project Administration, S.L.; Funding Acquisition, S.L. and K.C.

Funding

Ziyuan Hu and Shengli Liu were supported by the National Natural Science Foundation of China (NSFC Grant No. 61672346). Kefei Chen was supported by National Key R&D Program of China (Grant No. 2017YFB0802000), NSFC (Grant No. U1705264) and (Grant No. 61472114).

Acknowledgments

The authors thank the anonymous reviewers for their helpful comments. Special thanks go to Atsushi Takayasu who helped us to give a better presentation of this paper and told us their work of converting a RIBE scheme without DKER to a RIBE scheme with DKER.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Hierarchical Identity Based Encryption

We formally define Hierarchical Identity Based Encryption (HIBE). A HIBE scheme consists of four PPT algorithms HIBE = ( HIBE . Setup , HIBE . KG , HIBE . Enc , HIBE . Dec ) . Let HIBE . M denote the message space and HIBE . ID the identity space.
  • Setup: The setup algorithm HIBE . Setup is run by the key authority. The input of the algorithm is a security parameter λ . The output of this algorithm consists of a pair of key ( HIBE . mpk , HIBE . msk ) . In formula, ( HIBE . mpk , HIBE . msk ) HIBE . Setup ( 1 λ ) .
  • Key Generation: The key generation algorithm HIBE . KG is run by the key authority. It takes a secret key HIBE . sk id ( HIBE . msk for ϵ ) and an identity id as the input. The output of this algorithm is HIBE . sk id . In formula, HIBE . sk id | | id HIBE . KG ( HIBE . sk id , id ) .
  • Encryption: The encryption algorithm HIBE . Enc is run by the sender. It takes the master public key HIBE . mpk , an identity id and a plaintext message m as the input. The output of this algorithm is the ciphertext HIBE . ct . In formula, HIBE . ct HIBE . Enc ( HIBE . mpk , id , m ) .
  • Decryption: The decryption algorithm HIBE . Dec is run by the receiver. The input of this algorithm consists of the master public key HIBE . mpk , the secret key HIBE . sk id and the ciphertext HIBE . ct . The output of this algorithm is the plaintext m . In formula, m HIBE . Dec ( HIBE . mpk , HIBE . sk id , HIBE . ct ) .
Correctness. 
For all ( HIBE . mpk , HIBE . msk ) HIBE . Setup ( 1 λ ) , all ( id , id ) ( HIBE . ID ) 2 , HIBE . sk id HIBE . KG ( HIBE . msk , id ) , HIBE . sk id | | id HIBE . KG ( HIBE . sk id , id ) , all m HIBE . M and HIBE . ct HIBE . Enc ( HIBE . mpk , id | | id , m ) , it holds that m HIBE . Dec ( HIBE . mpk , HIBE . sk id | | id , HIBE . ct ) .
Security. 
Now we formalize the security of a revocable IBE. We first consider a oracle key generation oracle HIBE . KG ( · ) . This oracle takes an identity id as the input and outputs HIBE . sk id HIBE . KG ( HIBE . msk , id ) .
Definition 5.
Let HIBE = ( HIBE . Setup , HIBE . KG , HIBE . Enc , HIBE . Dec ) be a hierarchical IBE scheme. Below describes an experiment between a challenger C and a PPT adversary A .
EXP A selective IND ID CPA ( λ ) : ( m 0 , m 1 , id * ) A ; ( HIBE . mpk , HIBE . msk ) HIBE . Setup ( 1 λ ) ; θ $ { 0 , 1 } ; HIBE . ct * HIBE . Enc ( HIBE . mpk , id * , m θ ) θ A HIBE . KG ( · ) ( HIBE . mpk , HIBE . ct * ) ; If θ = θ Return 1 ; If θ θ Return 0 .
The experiment has the following requirements for A .
  • The two plaintexts submitted by A have the same length, i.e., | m 0 | = | m 1 | .
  • If A has queried id to oracle HIBE . KG ( · ) , then id cannot be the a prefix of id * .
A hierarchical IBE scheme is selective-IND-ID-CPA secure if for all PPT adversary A , the following advantage is negligible in the security parameter λ, i.e.,
Adv HIBE , A selective IND ID CPA ( λ ) = | Pr [ EXP A selective IND ID CPA ( λ ) = 1 ] 1 / 2 | = negl ( λ ) .

Appendix B. Proofs of Theorems

Appendix B.1. Proof of Theorem 1

Proof. 
The proof consists of 5 n + 4 hybrids, H 1 , { H 0 , H 0 , 1 , H 0 , 2 , H 0 , 3 , H 0 , 4 }, ⋯, { H n 1 , H n 1 , 1 , H n 1 , 2 , H n 1 , 3 , H n 1 , 4 } , H n , H n + 1 , H n + 2 , and we will show that adjacent hybrids are computational indistinguishable. Compared with H i , hybrid H i + 1 has small changes in how the oracle queries are answered and/or the challenge ciphertext is generated. Denote by H i 1 the event that the hybrid outputs 1.
  • H 1 : This hybrid is just the original experiment EXP A IND ID CPA ( λ ) (without oracle DK ( · , · ) ) as shown in Definition 1. Thus
    Adv A IND ID CPA ( λ ) = | Pr [ H 1 1 ] 1 / 2 ] | .
    Specifically, in this hybrid, the challenger C will first invoke RIBE . Setup ( 1 λ , 1 n ) to obtain ( mpk , msk , st ) where st = ( KL , PL , RL ) . C sends mpk to the adversary A and answers oracle queries as follows.
    • Private key generation oracle KG ( id ) . Upon receiving A ’s query id , the challenger invokes ( sk id , st ) RIBE . KG ( msk , id , KL , st ) and returns sk id to A .
    • Key update oracle KU ( t ) . Upon receiving A ’s query t , C does as follows:
      For t i from 1 to t :
      st RIBE . KU ( msk , t i , st )
      st : = st .
      Parse st = ( KL , PL , RL , KU )
      Returns ( KU , PL ) to A .
    • Revocation oracle R v k ( id , t ) . Upon receiving A ’s query an id and a t , C invokes st RIBE . R ( id , t , st ) and parses st = ( KL , PL , RL , KU ) . It returns RL to A .
  • H 0 : In this hybrid, we change how the challenger C answers oracle KG ( id ) and oracle KU ( t ) . Recall that in H 1 , the subroutines NodeGen and LeafGen are involved in RIBE.KG when answering queries to the oracle K G , and the subroutines NodeChange and LeafChange are involved in RIBE.KU when answering queries to the oracle KU . A pseudo-random subroutine PRF ( s , · ) is invoked in all the four subroutines. Now in H 0 , this PRF ( s , · ) will be replaces by a truly subroutine RF ( · ) . Note that C can efficiently implement the truly subroutine RF ( · ) : Given a fresh input x, C chooses a random element R in { 0 , 1 } λ as the output of RF ( · ) . C records ( x , R ) locally. If x is not fresh, C retrieves R from its records.
    Any difference between H 1 and H 0 will lead to a distinguisher B 1 , who can distinguish PRF from RF . Hence
    | Pr [ H 1 1 ] Pr [ H 0 1 ] | Adv B 1 P R F ( λ ) .
  • H γ for γ { 0 , 1 , , n } : In this hybrid, challenger C changes the generation of the challenge ciphertext. Recall that the challenge ciphertext ct : = lab j , h ε , j ( t ) j [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ } . In hybrid H γ , C invokes the simulator Sim provided by the garbled circuit scheme to generate the first γ garbled circuits { P ˜ 0 , , P ˜ γ 1 } . Meanwhile, for i [ 0 , γ 1 ] , the input of the Sim is the 2 λ chameleon encryption ciphertexts
    { HEnc ( k i , ( h id * [ 1 i ] ( t * ) , j , b ) , lab j , h id * [ 1 i + 1 ] , j ( t * ) ) } j [ λ ] , b { 0 , 1 } . We stress that the 2 λ labels satisfy lab j , 0 = lab j , 1 = lab j , h id * [ 1 i + 1 ] , j ( t * ) . Please note that Sim needs the hash value h id * [ 1 i ] ( t * ) with i [ 0 , γ ] . Therefore the challenger C has to determine h id * [ 1 i ] ( t * ) first with i [ 0 , γ ] . Then C invokes sim to generate { P ˜ 0 , , P ˜ γ 1 } , and invokes GCircuit to generate the rest circuits. Below is the detailed description of the generation of the challenge ciphertext by C .
    Assume A ’s challenge query as ( id * , t * , M 0 , M 1 ) . C first chooses a random bit θ , and encrypts M θ under id * in t * as follows:
    • Define W * : = { ε , id * [ 1 ] , , id * [ 1 n 1 ] } , where ε is the empty string. Determine the values ( h ε , h id * [ 1 ] , , h id * [ 1 n 1 ] , ek id * ) which are the values attached to all nodes on the path from the root to id * .
      -
      sk id * RIBE . KG ( msk , id * ) .
      -
      st RIBE . KU ( msk , t * , st ) .
      st : = st = ( KL , PL , RL , KU )
      Retrieve ( t * , h ε ( t * ) ) from PL .
      -
      sk id * ( t * ) RIBE . DK ( mpk , sk id * , KU , t * ) .
      Parse sk id * ( t * ) = ( id * , { ( h v ( t * ) , h v | | 0 ( t * ) , h v | | 1 ( t * ) , r v ( t * ) ) } v W * , dk id * ) , where
      ( h id * [ 1 n 1 ] | | 0 ( t * ) , h id * [ 1 n 1 ] | | 1 ( t * ) ) = ( ek id * [ 1 n 1 ] | | 0 , ek id * [ 1 n 1 ] | | 1 ) . Please note that dk id * = if id * has been revoked before t * .
    • ( Q ˜ , lab ¯ ) $ GCircuit ( 1 λ , Q [ M θ ] ) , where lab ¯ = { lab j , b } i [ λ ] , b { 0 , 1 } .
    • For i = n 1 to γ ,
      ( P ˜ i , lab ¯ ) $ GCircuit ( 1 λ , P [ id * [ i + 1 ] , k i , lab ¯ ] ) .
      Set lab ¯ : = lab ¯ .
    • For i = γ 1 to 0, set v = id * [ 1 i ] , where v = ε if i = 0 .
      ( P ˜ i , { lab j , h v , j ( t * ) } j [ λ ] ) $ Sim ( 1 λ , { HEnc ( k i , ( h v ( t * ) , j , b ) , lab j , h id * [ 1 i + 1 ] , j ( t * ) ) } j [ λ ] , b { 0 , 1 } )
      and set lab ¯ : = { lab j , h v , j ( t * ) , lab j , h v , j ( t * ) } j [ λ ] .
    • Output ct * : = lab , h ε , ( t * ) [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ } , where h ε , ( t * ) is the th bit of h ε ( t * ) .
    Please note that the randomnesses in RIBE . KG and RIBE . KU are generated by random subroutines instead of the PRF .
  • H γ , 1 for γ { 0 , 1 , , n 1 } : This hybrid is the same as H γ except that the challenger C changes the way of generating h v and r v when answering private key queries and the way of generating h v ( t ) and r v ( t ) when answering key update queries for v { 0 , 1 } γ . For γ = n 1 , set ( h v | | 0 , h v | | 1 ) : = ( ek v | | 0 , ek v | | 1 ) . In addition, set
    h v | | b ( t ) : = ek v | | b if v is not revoked , ek v | | b if v is revoked ,
    where ( ek v , dk v ) G ( 1 λ ) and b { 0 , 1 } . Specifically, C changes the generation process of ( h v , r v ) from
    h v : = H ( k γ , 0 2 λ ; RF ( v ) ) r v : = H 1 ( t d γ , ( 0 2 λ , RF ( v ) ) , h v | | 0 | | h v | | 1 )
    to
    r v $ Z p h v : = H ( k γ , h v | | 0 || h v | | 1 ; r v )
    C uses the same way to generate ( h v ( t ) , r v ( t ) ) , i.e., r v ( t ) is chosen randomly, and h v ( t ) : = H ( k γ , h v | | 0 ( t ) | | h v | | 1 ( t ) ; r v ( t ) ) .
    Due to uniformity properties of the chameleon hash, hybrids H γ and H γ , 1 are statistical indistinguishable. So
    | Pr [ H γ 1 ] Pr [ H γ , 1 1 ] | = negl .
  • H γ , 2 for γ { 0 , 1 , , n 1 } : This hybrid is the same as H γ , 1 except step 3 (as shown in H γ in detail). Specifically, set v : = id [ 0 γ ] . C changes the generation process of garbled circuits P ˜ γ from
    ( P ˜ γ , lab ¯ ) $ GCircuit ( 1 λ , P [ id * [ γ + 1 ] , k γ , lab ¯ ] )
    and setting lab ¯ : = lab ¯ to
    ( P ˜ γ , { lab j , h v , j ( t * ) } j [ λ ] ) $ Sim ( 1 λ , { HEnc ( k γ , ( h v ( t * ) , j , b ) , lab j , b ) } j [ λ ] , b { 0 , 1 } )
    and setting lab ¯ : = { lab j , h v , j ( t * ) , lab j , h v , j ( t * ) } j [ λ ] .
    Since { HEnc ( k γ , ( h v ( t * ) , j , b ) , lab j , b ) } j [ λ ] , b { 0 , 1 } is exactly the output of P [ id * [ γ + 1 ] , k γ , lab ¯ ] ( h v ( t * ) ) , the indistinguishability of H γ , 1 and H γ , 2 directly follows from the security of the garbled circuit scheme. If there is a PPT adversary A who can distinguish H γ , 1 and H γ , 2 with advantage ϵ , then we can construct a PPT algorithm B 2 who can break the security of the garbled circuit scheme with same advantage ϵ . Please note that B 2 can generate msk itself and simulate all the oracles for A perfectly. B 2 embeds its own challenge to ( P ˜ γ , lab ¯ ) . If ( P ˜ γ , lab ¯ ) is generated by GCircuit , B 2 perfectly simulates H γ , 1 . If ( P ˜ γ , lab ¯ ) is generated by Sim , B 2 perfectly simulates H γ , 2 . Hence
    | Pr [ H γ , 1 1 ] Pr [ H γ , 2 1 ] | Adv B 2 G C ( λ ) .
  • H γ , 3 for γ [ 0 , n 1 ] : This hybrid is the same as H γ , 2 except step 4 (as shown in H γ ). Challenger C changes
    ( P ˜ γ , { lab j , h v , j ( t * ) } j [ λ ] ) $ Sim ( 1 λ , { HEnc ( k γ , ( h v ( t * ) , j , b ) , lab j , b ) } j [ λ ] , b { 0 , 1 } )
    to
    ( P ˜ γ , { lab j , h v , j ( t * ) } j [ λ ] ) $ Sim ( 1 λ , { HEnc ( k γ , ( h v ( t * ) , j , b ) , lab j , h id * [ 1 γ + 1 ] , j ( t * ) ) } j [ λ ] , b { 0 , 1 } ) .
    Please note that t d γ is not used any more, the indistinguishability between H γ , 2 and H γ , 3 can be reduced to the security of the chameleon encryption scheme defined in Section 2.7. We need λ hybrids, { H γ , 2 0 , H γ , 2 1 , , H γ , 2 λ } , to prove this, where H γ , 2 i , i [ 0 , λ ] is the same as H γ , 2 except the generation of P ˜ γ . Set
    c t j , b : = HEnc ( k γ , ( h v ( t * ) , j , b ) , lab j , b ) if j > i HEnc ( k γ , ( h v ( t * ) , j , b ) , lab j , h id * [ 1 γ + 1 ] , j ( t * ) ) if j i
    In H γ , 2 i ,
    ( P ˜ γ , { lab j , h v , j ( t * ) } j [ λ ] ) $ Sim ( 1 λ , { c t j , b } j [ λ ] , b { 0 , 1 } ) .
    Obviously, H γ , 2 0 is the same as H γ , 2 and H γ , 2 λ is the same as H γ , 3 . Please note that the only difference between H γ , 2 i 1 and H γ , 2 i is c t i , 1 h id * [ 1 γ + 1 ] , i ( t * ) , where
    c t i , 1 h id * [ 1 γ + 1 ] , i ( t * ) : = HEnc ( k γ , ( h v ( t * ) , i , 1 h id * [ 1 γ + 1 ] , i ( t * ) ) , lab i , 1 h id * [ 1 γ + 1 ] , i ( t * ) ) in H γ ( i 1 ) HEnc ( k γ , ( h v ( t * ) , i , 1 h id * [ 1 γ + 1 ] , i ( t * ) ) , lab i , h id * [ 1 γ + 1 ] , i ( t * ) ) in H γ ( i ) .
    If there is a PPT adversary A who can distinguish H γ , 2 i 1 and H γ , 2 i with a advantage ϵ for i [ λ ] , we can construct a PPT distinguisher B 3 can use this adversary to break the security of the chameleon encryption scheme with the same advantage ϵ . B 3 simulates H γ , 2 i 1 ( H γ , 2 i ) for A as follows:
    • B 3 receives a hash key k * from it own challenger C IND CE of the chameleon encryption scheme.
    • B 3 generates ( mpk , msk , st ) RIBE . Setup ( 1 λ , n ) } . B 3 resets k γ : = k * . Now B 3 does not know the corresponding chameleon hash trapdoor t d γ . Then B 3 sends mpk to A .
    • B 3 can perfectly simulates all oracles for A since these oracles do not need the trapdoor t d γ anymore.
    • When receiving the challenge query ( id * , t * , M 0 * , M 1 * ) , B 3 sets
      x * = h id * [ 1 γ ] | | 0 ( t * ) | | h id * [ 1 γ ] | | 1 ( t * ) , r * : = r id * [ 1 γ ] ( t * ) (Please note that r id * [ 1 γ ] ( t * ) is chosen randomly).
      -
      B 3 generates { Q ˜ , P ˜ n 1 , , P ˜ γ + 1 } according to (A3), just like H γ , 2 i 1 ( H γ , 2 i ).
      -
      To generate P ˜ γ , B 3 does the following. It computes { c t j , b } j [ λ ] , b { 0 , 1 } but leaves c t i , 1 h id * [ 1 γ + 1 ] , i ( t * ) undefined. Set m 0 * : = lab i , h id * [ 1 γ + 1 ] , i ( t * ) and m 1 * : = lab i , 1 h id * [ 1 γ + 1 ] , i ( t * ) , where ( P ˜ γ + 1 , { lab j , b } j [ λ ] , b { 0 , 1 } ) $ GCircuit ( 1 λ , P [ id * [ γ + 2 ] , k γ + 1 , lab ¯ ] ) . B 3 sets its own challenge query as ( x * , r * , i , m 0 * , m 1 * ) . Then the challenger of B 3 generates a challenge ciphertext c t * and sends it to B 3 . B 3 sets c t i , 1 h id * [ 1 γ + 1 ] , i ( t * ) : = c t * . In addition, it computes P ˜ γ as (A7).
      -
      B 3 generates { P ˜ γ 1 , , P ˜ 0 } according to (A4), just like H γ , 2 i 1 ( H γ , 2 i ).
      -
      B 3 sends A the challenge ciphertext
      ct : = lab , h ε , ( t * ) [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ } .
    • If A returns a guessing bit θ to B 3 , B 3 returns θ to its own challenger.
    If c t * is the chameleon encryption of m 0 * , B 3 simulates H γ , 2 i perfectly for A . If c t * is the chameleon encryption of m 1 * , B 3 simulates H γ , 2 i 1 perfectly for A . If A can distinguish these two hybrids with advantage ϵ , B 3 can break the security of the multi-bit chameleon encryption with the same advantage ϵ . Therefore,
    | Pr [ H γ , 2 i 1 1 ] Pr [ H γ , 2 i 1 ] | Adv B 3 C E ( λ ) and
    | Pr [ H γ , 2 0 1 ] Pr [ H γ , 2 λ 1 ] | λ · Adv B 3 C E ( λ ) .
    Recall that H γ , 2 0 is the same as H γ , 2 and H γ , 2 λ is the same as H γ , 3 . We have
    | Pr [ H γ , 2 1 ] Pr [ H γ , 3 1 ] | λ · Adv B 3 C E ( λ ) .
  • H γ , 4 for γ { 0 , 1 , , n 1 } : In this hybrid, challenger C undoes the changes made from H γ and H γ , 1 . It is obvious that the computational indistinguishability between H γ , 3 and H γ , 4 also follows from uniformity properties of the chameleon hash. Please note that H γ , 4 is the same as H γ + 1 . We have
    | Pr [ H γ , 3 1 ] Pr [ H γ , 4 1 ] | = negl .
    Therefore, from Equations (A5), (A6), (A8) and (A9) and the fact that H γ , 4 is the same to H γ + 1 , it holds
    | Pr [ H γ 1 ] Pr [ H γ + 1 1 ] | = negl + Adv B 2 G C ( λ ) + λ · Adv B 3 C E ( λ ) .
    | Pr [ H 0 1 ] Pr [ H n 1 ] | = negl + n · Adv B 2 G C ( λ ) + n · λ · Adv B 3 C E ( λ ) .
  • H n + 1 : This hybrid is the same as H n except that the challenger C changes the way of generating Q ˜ . More Formally, C changes the generation process of garbled circuits Q ˜ from
    ( Q ˜ , lab ¯ ) GCircuit ( 1 λ , Q [ M b ] )
    to
    ( Q ˜ , { lab j , h id * , j ( t * ) } ) Sim ( 1 λ , E h id * ( t * ) ( M θ ) )
    This indistinguishability between H n and H n + 1 follows by the security of the garble circuit scheme. The proof is similar to the indistinguishability between H γ , 1 and H γ , 2 .Hence,
    | Pr [ H n 1 ] Pr [ H n + 1 1 ] | Adv B 2 G C ( λ ) .
  • H n + 2 : This hybrid is the same as H n + 1 except that the challenger C replaces the ciphertext E h id * | | 0 ( t * ) ( M θ ) hard-coded in the circuit Q ˜ with E h id * | | 0 ( t * ) ( 0 ) .
    If there is a PPT adversary A who can distinguish between H n + 1 and H n + 2 with advantage ϵ , there is a PPT distinguisher B 4 who can break the IND-CPA security of PKE = ( G , E , D ) with advantage ϵ / ( 2 q + 1 ) . First of all, We consider two kinds of adversaries:
    Type-I 
    : A I never queries id * to key generation oracle KG ( · ) for sk id * .
    Type-II 
    : A I I queries id * to KG ( · ) and obtains sk id * . In this case id * should be revoked before t * .
    | Pr [ H n + 1 1 ] Pr [ H n + 2 1 ] | = | Pr [ H n + 1 1 | A = A I ] Pr [ H n + 2 1 | A = A I ] | · Pr [ A = A I ] + | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] | · Pr [ A = A I I ] | Pr [ H n + 1 1 | A = A I ] Pr [ H n + 2 1 | A = A I ] | + | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] |
Claim 1
| Pr [ H n + 1 1 | A = A I ] Pr [ H n + 2 1 | A = A I ] | ( q + 1 ) · Adv B 4 P K E ( λ ) .
Proof. 
Suppose that A I issues q K queries to oracle K G ( · ) , and let id ( j ) be A I ’s j-th query to K G ( · ) . For each PPT A I such that | Pr [ H n + 1 1 | A = A I ] Pr [ H n + 2 1 | A = A I ] | = ϵ , we build a PPT algorithm B 4 breaking the IND-CPA security of PKE with the advantage q K · ϵ . B 4 simulates H n + 1 ( H n + 2 ) to A I as follows:
  • B 4 generates ( mpk , msk , st ) RIBE . Setup ( 1 λ , n ) . B 4 sends mpk to A I .
  • B 4 receives encryption key ek * from its own challenger.
  • B 4 chooses j $ [ 0 , q K ] .
  • If j 0 , since B 4 has msk , B 4 can perfectly simulate all oracles for A I I as in H n + 1 ( H n + 2 ). B 4 embeds ek * in the private key generation of identity id ( j ) (the output of K G ( id ( j ) )). More specifically, B 4 invokes RIBE . KG ( msk , id ( j ) , st ) with a little change (framed parts are added) in the fourth step of the algorithm as follows:
    -
    For v = id ( j ) [ 1 n 1 ] :
    h v H ( k n , 0 2 λ ; w v ) , where w r RF .
    ( ek v | | id ( j ) [ n ] , dk v | | id ( j ) [ n ] ) G ( 1 λ ) ,
    ( h v , ek v | | 0 , ek v | | 1 , r v , dk v | | 0 , dk v | | 1 ) LeafGen ( k n 1 , ( t d n 1 , s ) , v , )
    ek v | | ( 1 id ( j ) [ n ] ) : = ek * .
    r v H 1 ( t d n 1 , ( 0 2 λ , w v ) , ek v | | 0 | | ek v | | 1 ) .
    KL : = KL { ( v , h v , ek v | | 0 , ek v | | 1 , r v ) , ( v | | 0 , ek v | | 0 , ) , ( v | | 1 , ek v | | 1 , ) } ,
    lk v : = ( h v , ek v | | 0 , ek v | | 1 , r v ) .
    Recall that ek v | | ( 1 id ( j ) [ n ] ) is generated by
    ( ek v | | ( 1 id ( j ) [ n ] ) , dk v | | ( 1 id ( j ) [ n ] ) ) G ( 1 λ ) in LeafGen algorithm, hence ek v | | ( 1 id ( j ) [ n ] ) has identical distribution with ek * . As a result, B 4 perfectly simulates the oracle K G on for A I just like H n + 1 ( H n + 2 ).
  • B 4 receives the challenge query ( id * , t * , M 0 , M 1 ) from A I .
    If j 0 and id * id ( j ) [ 1 n 1 ] | | ( 1 id ( j ) [ n ] ) , B 4 aborts the game.
    If j = 0 and there exists i [ q K ] such that id * = id ( i ) [ 1 n 1 ] | | ( 1 id ( i ) [ n ] ) , B 4 aborts the game.
    Otherwise:
    B 4 chooses θ $ { 0 , 1 } .
    B 4 sets its own challenge query as m 0 * : = 0 and m 1 * = M θ .
    After receiving the challenge ciphertext c t * from its own challenger, B 4 computes ( Q ˜ , { lab j , ek id * , j } ) Sim ( 1 λ , c t * ) , and continues to generate { P ˜ n 1 , , P ˜ 0 } according to (A4), just like H n + 1 ( H n + 2 ) .
    B 4 sends the challenge ciphertext ct : = lab , h ε , ( t * ) [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ } to A I I .
  • Finally, B 4 outputs what A I outputs.
As long as B 4 does not abort the game, it simulates H n + 1 when c t * is the encryption of M b and B 4 simulates H n + 2 when c t * is the encryption of 0. Therefore, we have
Adv B 4 P K E ( λ ) = | Pr [ ¬ abort H n + 1 1 | A = A I ] Pr [ ¬ abort H n + 2 1 | A = A I ] | = | Pr [ H n + 1 1 | A = A I ] Pr [ H n + 2 1 | A = A I ] | · Pr [ ¬ abort ]
= 1 / ( q K + 1 ) · | Pr [ H n + 1 1 | A = A I ] Pr [ H n + 2 1 | A = A I ] | 1 / ( q + 1 ) · | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] | .
(A14) holds due to the fact that j [ 0 , q K ] is independently chosen while (A15) holds due to q K q . □
Claim 2 | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] | q · Adv B 4 P K E ( λ ) .
Proof. 
Suppose that A I I issues q R queries to oracle R v k ( · ) , and let ( id ( j ) , t ( j ) ) be A I I ’s j-th query to R v k ( · ) . For each PPT A I I such that | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] | = ϵ , we build a PPT algorithm B 4 breaking the IND-CPA security of PKE with the advantage q R · ϵ . B 4 simulates H n + 1 ( H n + 2 ) to A I I as follows:
  • B 4 generates ( mpk , msk , st ) RIBE . Setup ( 1 λ , n ) } . B 4 sends mpk to A I I .
  • B 4 receives encryption key ek * from its own challenger.
  • B 4 chooses j $ [ q R ] .
  • Since B 4 has msk , B 4 can perfectly simulate all oracles for A I I as in H n + 1 ( H n + 2 ). B 4 embeds ek * in the key update generation (the output of K U ) of time t ( j ) . More specifically, B 4 invokes RIBE . KU ( msk , t ( j ) , st ) with a little change (a framed part is added) in the fifth step of the algorithm as follows:
    -
    For all node v Y such that | v | = n : ( ek v t ( j ) , ) LeafChange ( v , t ( j ) , s ) ,
    If v = id ( j ) , ek v t ( j ) : = ek * .
    KU t ( j ) : = KU t ( j ) { ( v , ek v t ( j ) , ) } .
    h v t ( j ) : = ek v t ( j ) .
    Recall that ek v ( j ) is generated by ( ek v ( j ) , dk v ( j ) ) G ( 1 λ ) in LeafChange algorithm, hence ek v ( j ) has an identical distribution with ek * . As a result, B 4 perfectly simulates the oracle K U for A I I just like H n + 1 ( H n + 2 ).
  • B 4 receives the challenge query parsed as ( id * , t * , M 0 , M 1 ) from A I I .
    If id * id ( j ) , B aborts the game.
    Else:
    B 4 chooses θ $ { 0 , 1 } .
    B 4 sets its own challenge query as m 0 * : = 0 and m 1 * = M θ .
    After receiving the challenge ciphertext c t * from its own challenger, B 4 computes ( Q ˜ , { lab j , ek id * , j } ) Sim ( 1 λ , c t * ) , and continues to generate { P ˜ n 1 , , P ˜ 0 } according to (A4), just like H n + 1 ( H n + 2 ) .
    B 4 sends the challenge ciphertext ct : = lab , h ε , ( t * ) [ λ ] , { P ˜ 0 , , P ˜ n 1 , Q ˜ } to A I I .
  • Finally, B 4 outputs what A I I outputs.
    Given that id * = id ( j ) , B 4 simulates H n + 1 when c t * is the encryption of M b and B 4 simulates H n + 2 when c t * is the encryption of 0. Therefore, we have
    Adv B 4 P K E ( λ ) = | Pr [ id * = id ( j ) H n + 1 1 | A = A I I ] Pr [ id * = id ( j ) H n + 2 1 | A = A I I ] | = | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] | · Pr [ id * = id ( j ) ]
    = 1 / q R · | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] | 1 / q · | Pr [ H n + 1 1 | A = A I I ] Pr [ H n + 2 1 | A = A I I ] | .
    (A16) holds due to the fact that j [ q R ] is independently chosen while (A17) holds due to q R q .
 □
According to (A13), Claim 1 and Claim 2, we have
| Pr [ H n + 1 1 ] Pr [ H n + 2 1 ] | ( 2 q + 1 ) · Adv B 4 P K E ( λ ) .
  • Please note that in H n + 2 , the challenge ciphertext is information theoretically independent of the plaintexts submitted by A . So we have
    Pr [ H n + 2 1 ] = 1 / 2 .
    Combining (A1), (A2), (A11), (A12), (A18) and (A19), we have
    Adv A IND ID CPA ( λ ) Adv B 1 P R F ( λ ) + ( n + 1 ) · Adv B 2 G C ( λ ) + n · λ · Adv B 3 C E ( λ ) + ( 2 q + 1 ) · Adv B 4 P K E ( λ ) .
 □

Appendix B.2. Proof of Theorem 3

Proof. 
This theorem can be derived from Corollary 1. For any PPT adversary A in the selective-SR-ID-CPA security game of SR-IBE Σ , we can construct a PPT algorithm B breaking the selective-IND-ID-CPA security of RIBE Π such that
Adv Σ , A selective SR ID CPA ( λ ) = Adv Π , B selective IND ID CPA ( λ ) .
B simulates EXP A selective SR ID CPA ( λ ) as follows:
  • A generates the challenge identity id * and time slot t * to B . Then B sends the same challenge pair ( id * , t * ) to its own challenger.
  • B receives Π . mpk from its own challenger and sets Σ . mpk : = Π . mpk . Then B sends Σ . mpk to A .
  • When A queries for the oracle PubKG with an identity id , B queries for his oracle KG with the same identity id to its own challenger. Set W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string. Upon receiving the Π . sk id , B parses Π . sk id : = ( Σ . pk id , Σ . sk id ) , where Σ . pk id : = ( t = 0 , id , { lk v } v W ) and Σ . sk id : = ( dk id , HIBE . sk id ) . B sends Σ . pk id to A .
  • When A queries for the oracle PrivKG with an identity id , B queries for his oracle KG with the same identity id to its own challenger. Set W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string. Upon receiving the Π . sk id , B parses Π . sk id : = ( Σ . pk id , Σ . sk id ) , where Σ . pk id : = ( t = 0 , id , { lk v } v W ) and Σ . sk id : = ( dk id , HIBE . sk id ) . B sends Σ . sk id to A .
  • When A queries for the oracle KU, B queries for the oracle KU to its own challenger. Upon receiving the ( KU , PL ) , B sends ( KU , PL ) to A .
  • When A queries for the oracle DK with an identity id and a time slot t , B queries for his oracle DK with the same pair ( id , t ) to its own challenger. Set W : = { ε , id [ 1 ] , , id [ 1 n 1 ] } , where ε is the empty string. Upon receiving the Π . sk id ( t ) , B parses Π . sk id ( t ) : = ( t , id , { lk v } v W , dk id , HIBE . sk id | | t ) . B sends Σ . dk id ( t ) : = ( dk id , HIBE . sk id | | t ) to A .
  • When A queries for the oracle Rvk with an identity id and a time slot t , B queries for his oracle Rvk with the same pair ( id , t ) to its own challenger.
  • When A submits the challenge query ( m 0 , m 1 ) , B sends the same challenge query ( m 0 , m 1 ) to its own challenger. Upon receiving the challenge ciphertext Π . ct θ * , B sends Σ . ct θ * : = Π . ct θ * to A .
  • Finally, B outputs what A outputs.
Since EXP B selective IND ID CPA ( λ ) has the same requirements as EXP A selective SR ID CPA ( λ ) , B simulates EXP A selective SR ID CPA ( λ ) to A perfectly. Therefore, we have
Adv Σ , A selective SR ID CPA ( λ ) = Adv Π , B selective IND ID CPA ( λ ) .
According to Corollary 1, we have that for PPT adversary B , the advantage is negligible:
Adv Π , B selective IND ID CPA ( λ ) = negl ( λ ) .
Combining (A20) and (A21), for any PPT adversary A , we have
Adv Σ , A selective SR ID CPA ( λ ) = negl ( λ ) .
Thus we finish the proof. □

References

  1. Shamir, A. Identity-Based Cryptosystems and Signature Schemes. In Proceedings of the CRYPTO 1984, Advances in Cryptology, Santa Barbara, CA, USA, 19–22 August 1984; pp. 47–53. [Google Scholar] [CrossRef]
  2. Waters, B. Efficient Identity-Based Encryption Without Random Oracles. In Proceedings of the 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Advances in Cryptology (EUROCRYPT 2005), Aarhus, Denmark, 22–26 May 2005; pp. 114–127. [Google Scholar] [CrossRef]
  3. Gentry, C. Practical Identity-Based Encryption Without Random Oracles. In Proceedings of the 25th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Advances in Cryptology (EUROCRYPT 2006), St. Petersburg, Russia, 28 May–1 June 2006; pp. 445–464. [Google Scholar] [CrossRef]
  4. Okamoto, T.; Takashima, K. Fully Secure Functional Encryption with General Relations from the Decisional Linear Assumption. In Proceedings of the 30th Annual Cryptology Conference, Advances in Cryptology (CRYPTO 2010), Santa Barbara, CA, USA, 15–19 August 2010; pp. 191–208. [Google Scholar] [CrossRef]
  5. Gentry, C.; Peikert, C.; Vaikuntanathan, V. Trapdoors for hard lattices and new cryptographic constructions. In Proceedings of the 40th Annual ACM Symposium on Theory of Computing, Victoria, BC, Canada, 17–20 May 2008; pp. 197–206. [Google Scholar] [CrossRef]
  6. Agrawal, S.; Boneh, D.; Boyen, X. Efficient Lattice (H)IBE in the Standard Model. In Proceedings of the 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques: Advances in Cryptology: (EUROCRYPT 2010), Monaco/Nice, France, 30 May–3 June 2010; pp. 553–572. [Google Scholar] [CrossRef] [Green Version]
  7. Cash, D.; Hofheinz, D.; Kiltz, E.; Peikert, C. Bonsai Trees, or How to Delegate a Lattice Basis. In Proceedings of the 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Advances in Cryptology (EUROCRYPT 2010), Monaco/Nice, France, 30 May–3 June 2010; pp. 523–552. [Google Scholar] [CrossRef]
  8. Döttling, N.; Garg, S. Identity-Based Encryption from the Diffie-Hellman Assumption. In Proceedings of the 37th Annual International Cryptology Conference, Advances in Cryptology (CRYPTO 2017), Santa Barbara, CA, USA, 20–24 August 2017; pp. 537–569. [Google Scholar] [CrossRef]
  9. Boneh, D.; Franklin, M.K. Identity-Based Encryption from the Weil Pairing. SIAM J. Comput. 2003, 32, 586–615. [Google Scholar] [CrossRef] [Green Version]
  10. Boldyreva, A.; Goyal, V.; Kumar, V. Identity-based encryption with efficient revocation. In Proceedings of the 2008 ACM Conference on Computer and Communications Security (CCS 2008), Alexandria, VA, USA, 27–31 October 2008; pp. 417–426. [Google Scholar] [CrossRef]
  11. Sahai, A.; Waters, B. Fuzzy Identity-Based Encryption. In Proceedings of the 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Advances in Cryptology (EUROCRYPT 2005), Aarhus, Denmark, 22–26 May 2005; pp. 457–473. [Google Scholar] [CrossRef]
  12. Libert, B.; Vergnaud, D. Adaptive-ID Secure Revocable Identity-Based Encryption. In Proceedings of the Cryptographers’ Track at the RSA Conference on Topics in Cryptology (CT-RSA 2009), San Francisco, CA, USA, 20–24 April 2009; pp. 1–15. [Google Scholar] [CrossRef]
  13. Seo, J.H.; Emura, K. Revocable Identity-Based Encryption Revisited: Security Model and Construction. In Proceedings of the 16th International Conference on Practice and Theory in Public-Key Cryptography: Public-Key Cryptography (PKC 2013), Nara, Japan, 26 February–1 March 2013; pp. 216–234. [Google Scholar] [CrossRef]
  14. Lee, K.; Lee, D.H.; Park, J.H. Efficient revocable identity-based encryption via subset difference methods. Des. Codes Cryptogr. 2017, 85, 39–76. [Google Scholar] [CrossRef]
  15. Watanabe, Y.; Emura, K.; Seo, J.H. New Revocable IBE in Prime-Order Groups: Adaptively Secure, Decryption Key Exposure Resistant, and with Short Public Parameters. In Proceedings of the Cryptographers’ Track at the RSA Conference on Topics in Cryptology (CT-RSA 2017), San Francisco, CA, USA, 14–17 February 2017; pp. 432–449. [Google Scholar] [CrossRef]
  16. Park, S.; Lee, K.; Lee, D.H. New Constructions of Revocable Identity-Based Encryption from Multilinear Maps. IEEE Trans. Inf. Forensics Secur. 2015, 10, 1564–1577. [Google Scholar] [CrossRef]
  17. Chen, J.; Lim, H.W.; Ling, S.; Wang, H.; Nguyen, K. Revocable Identity-Based Encryption from Lattices. In Proceedings of the 17th Australasian Conference on Information Security and Privacy (ACISP 2012), Wollongong, NSW, Australia, 9–11 July 2012; pp. 390–403. [Google Scholar] [CrossRef]
  18. Takayasu, A.; Watanabe, Y. Lattice-Based Revocable Identity-Based Encryption with Bounded Decryption Key Exposure Resistance. In Proceedings of the 22nd Australasian Conference on Information Security and Privacy (ACISP 2017), Auckland, New Zealand, 3–5 July 2017; pp. 184–204. [Google Scholar] [CrossRef]
  19. Qin, B.; Deng, R.H.; Li, Y.; Liu, S. Server-Aided Revocable Identity-Based Encryption. In Proceedings of the 20th European Symposium on Research in Computer Security (ESORICS 2015), Vienna, Austria, 21–25 September 2015; pp. 286–304. [Google Scholar] [CrossRef]
  20. Liang, K.; Liu, J.K.; Wong, D.S.; Susilo, W. An Efficient Cloud-Based Revocable Identity-Based Proxy Re-encryption Scheme for Public Clouds Data Sharing. In Proceedings of the 19th European Symposium on Research in Computer Security (ESORICS 2014), Wroclaw, Poland, 7–11 September 2014; pp. 257–272. [Google Scholar] [CrossRef]
  21. Yang, Y.; Liu, J.K.; Liang, K.; Choo, K.R.; Zhou, J. Extended Proxy-Assisted Approach: Achieving Revocable Fine-Grained Encryption of Cloud Data. In Proceedings of the 20th European Symposium on Research in Computer Security (ESORICS 2015), Vienna, Austria, 21–25 September 2015; pp. 146–166. [Google Scholar] [CrossRef]
  22. Yang, Y.; Liu, J.K.; Wei, Z.; Huang, X. Towards Revocable Fine-Grained Encryption of Cloud Data: Reducing Trust upon Cloud. In Proceedings of the 22nd Australasian Conference on Information Security and Privacy (ACISP 2017), Auckland, New Zealand, 3–5 July 2017; pp. 127–144. [Google Scholar] [CrossRef]
  23. Liu, J.K.; Yuen, T.H.; Zhang, P.; Liang, K. Time-Based Direct Revocable Ciphertext-Policy Attribute-Based Encryption with Short Revocation List. In Proceedings of the 16th International Conference on Applied Cryptography and Network Security (ACNS 2018), Leuven, Belgium, 2–4 July 2018; pp. 516–534. [Google Scholar] [CrossRef]
  24. Katsumata, S.; Matsuda, T.; Takayasu, A. Lattice-based Revocable (Hierarchical) IBE with Decryption Key Exposure Resistance. IACR Cryptol. ePrint Arch. 2018, 2018, 420. [Google Scholar]
Figure 1. System model of a server-aided revocable IBE.
Figure 1. System model of a server-aided revocable IBE.
Cryptography 02 00033 g001
Figure 2. The IBE tree of depth n = 3 .
Figure 2. The IBE tree of depth n = 3 .
Cryptography 02 00033 g002
Figure 3. The IBE tree of depth n = 3 when users “000” and “010” have been revoked.
Figure 3. The IBE tree of depth n = 3 when users “000” and “010” have been revoked.
Cryptography 02 00033 g003
Figure 4. The illustration of Private Key Generation for user “110”. The private key sk 110 of user “110” collects all the node values along the path from “110” to “ ε ” in the tree.
Figure 4. The illustration of Private Key Generation for user “110”. The private key sk 110 of user “110” collects all the node values along the path from “110” to “ ε ” in the tree.
Cryptography 02 00033 g004
Figure 5. The illustration of KU ( t ) when users “000” and “010” have been revoked at time slot t .
Figure 5. The illustration of KU ( t ) when users “000” and “010” have been revoked at time slot t .
Cryptography 02 00033 g005
Figure 6. The illustration of the Decryption Key Generation for user “011” when users “000” and “010” have been revoked at time slot t. For i from 1 to t , the node values along the path from “011” to “ ε ” in the tree will be replaced by the corresponding node values in KU ( i ) . The decryption key sk 011 ( t ) of user “011” collects all the updated node values along the path from “011” to “ ε ” in the tree.
Figure 6. The illustration of the Decryption Key Generation for user “011” when users “000” and “010” have been revoked at time slot t. For i from 1 to t , the node values along the path from “011” to “ ε ” in the tree will be replaced by the corresponding node values in KU ( i ) . The decryption key sk 011 ( t ) of user “011” collects all the updated node values along the path from “011” to “ ε ” in the tree.
Cryptography 02 00033 g006
Figure 7. Separation of Π . sk 111 to the server and the user “111” in SR-IBE Σ , where pk 111 is the public key and sk 111 is the private key of user “111”.
Figure 7. Separation of Π . sk 111 to the server and the user “111” in SR-IBE Σ , where pk 111 is the public key and sk 111 is the private key of user “111”.
Cryptography 02 00033 g007
Figure 8. The process of the SR-IBE scheme.
Figure 8. The process of the SR-IBE scheme.
Cryptography 02 00033 g008
Figure 9. N = 20.
Figure 9. N = 20.
Cryptography 02 00033 g009
Figure 10. N = 25.
Figure 10. N = 25.
Cryptography 02 00033 g010
Table 1. Comparison with RIBE schemes (in the standard model). Here N is the total number of users, r is the number of all revoked users and Δ r is the number of newly revoked users the past time slot. DKER means decryption key exposure resistance.
Table 1. Comparison with RIBE schemes (in the standard model). Here N is the total number of users, r is the number of all revoked users and Δ r is the number of newly revoked users the past time slot. DKER means decryption key exposure resistance.
IBESecurity AssumptionPairing FreeSecurity ModelKey Updating SizeDKER
[17]LWESelective-IND-ID-CPA O ( r log ( N / r ) ) ×
[18]LWESelective-IND-ID-CPA O ( r log ( N / r ) ) Bounded
[10]DBDH×Selective-IND-ID-CPA O ( r log ( N / r ) ) ×
[12]DBDH×Adaptive-IND-ID-CPA O ( r log ( N / r ) ) ×
[13]DBDH×Adaptive-IND-ID-CPA O ( r log ( N / r ) )
[14]DBDH×Adaptive-IND-ID-CPA O ( r )
[15]DDH and ADDH×Adaptive-IND-ID-CPA O ( r log ( N / r ) )
[16]Multilinear×Selective-IND-ID-CPA O ( 1 )
Our RIBE 1CDHAdaptive-IND-ID-CPA O ( Δ r ( log N log ( Δ r ) ) ) ×
Our RIBE 2CDHSelective-IND-ID-CPA O ( Δ r ( log N log ( Δ r ) ) )
Our SR-IBECDHSelective-IND-ID-CPA O ( Δ r ( log N log ( Δ r ) ) )
Table 2. Three oracles that the adversary can query.
Table 2. Three oracles that the adversary can query.
KG ( id ) : KU :
( sk id , st ) RIBE . KG ( msk , id , st ) st RIBE . KU ( msk , t , st )
st : = st .
      Parse st = ( KL , PL , RL , KU )
Output sk id .Output ( KU , PL ) .
Rvk ( id , t ) : DK ( id , t ) :
st RIBE . R ( id , t , st ) ( sk id , st ) RIBE . KG ( msk , id , st )
st : = ( KL , PL , RL , KU ) sk id ( t ) RIBE . DK ( mpk , sk id , KU , t )
Output RL .Output sk id ( t ) .
Table 3. Five oracles that the adversary of a SR-IBE scheme can query.
Table 3. Five oracles that the adversary of a SR-IBE scheme can query.
PubKG ( id ) : KU :
pk id PubKG ( msk , id , st ) st KU ( msk , t , st )
Output pk id . st : = st .
PrivKG ( id ) :     Parse st = ( KL , PL , RL , KU )
sk id PrivKG ( msk , id ) Output ( KU , PL ) .
Output sk id .
Rvk ( id , t ) : DK ( id , t ) :
st R ( id , t , st ) sk id PrivKG ( msk , id )
st : = ( KL , PL , RL , KU ) Dk id ( t ) DK ( sk id , t )
Output RL .Output Dk id ( t ) .
Table 4. Five subroutines run by the key authority.
Table 4. Five subroutines run by the key authority.
NodeGen ( ( k 0 , , k n ) , ( t d 0 , , t d n , s ) , v { 0 , 1 } n 1 { ε } , ) :FindNodes ( RL , t , KL ) :
Let i : = | v | Y
h v H ( k i , 0 2 λ ; PRF ( s , 0 | | v ) ) , ( id , t i ) RL
h v | | 0 H ( k i + 1 , 0 2 λ ; PRF ( s , 0 | | v | | 0 ) ) , If t i = t , then add id to Y .
h v | | 1 H ( k i + 1 , 0 2 λ ; PRF ( s , 0 | | v | | 1 ) ) .For i = n 1 to 0:          \ \ find the ancestors of id Y .
r v H 1 ( t d i , ( 0 2 λ , PRF ( s , 0 | | v ) ) , h v | | 0 | | h v | | 1 ) . ( v , · , · ) KL with | v | = i :
Output ( h v , h v | | 0 , h v | | 1 , r v ) . If ( v | | 0 Y ) ( v | | 1 Y ) , add v to Y .
Output Y .
LeafGen ( k n 1 , ( t d n 1 , s ) , v { 0 , 1 } n 1 , ) :NodeChange ( k , t d , v { 0 , 1 } n 1 { ε } , h v | | 0 , h v | | 1 , t , s ) :
h v ( t ) H ( k , 0 2 λ ; PRF ( s , t | | v ) ) ,
h v H ( k n , 0 2 λ ; PRF ( s , 0 | | v ) ) , r v ( t ) H 1 ( t d , ( 0 2 λ , PRF ( s , t | | v ) ) ; h v | | 0 | | h v | | 1 ) .
( ek v | | 0 , dk v | | 0 ) G ( 1 λ , PRF ( s , 0 | | v | | 0 ) ) ,Output ( h v ( t ) , h v | | 0 , h v | | 1 , r v ( t ) ) .
( ek v | | 1 , dk v | | 1 ) G ( 1 λ , PRF ( s , 0 | | v | | 1 ) ) ,LeafChange ( v { 0 , 1 } n , t , s ) :
r v H 1 ( t d n 1 , ( 0 2 λ , PRF ( s , 0 | | v ) ) , ek v | | 0 | | ek v | | 1 ) . ( ek v ( t ) , dk v ( t ) ) G ( 1 λ , PRF ( s , t | | v ) ) .
Output ( ( h v , ek v | | 0 , ek v | | 1 , r v ) , dk v | | 0 , dk v | | 1 ) .Output ( ek v ( t ) , ) .

Share and Cite

MDPI and ACS Style

Hu, Z.; Liu, S.; Chen, K.; Liu, J.K. Revocable Identity-Based Encryption and Server-Aided Revocable IBE from the Computational Diffie-Hellman Assumption. Cryptography 2018, 2, 33. https://0-doi-org.brum.beds.ac.uk/10.3390/cryptography2040033

AMA Style

Hu Z, Liu S, Chen K, Liu JK. Revocable Identity-Based Encryption and Server-Aided Revocable IBE from the Computational Diffie-Hellman Assumption. Cryptography. 2018; 2(4):33. https://0-doi-org.brum.beds.ac.uk/10.3390/cryptography2040033

Chicago/Turabian Style

Hu, Ziyuan, Shengli Liu, Kefei Chen, and Joseph K. Liu. 2018. "Revocable Identity-Based Encryption and Server-Aided Revocable IBE from the Computational Diffie-Hellman Assumption" Cryptography 2, no. 4: 33. https://0-doi-org.brum.beds.ac.uk/10.3390/cryptography2040033

Article Metrics

Back to TopTop