Correction
31 Oct 2018: The PLOS ONE Staff (2018) Correction: Traceable ciphertext-policy attribute-based encryption scheme with attribute level user revocation for cloud storage. PLOS ONE 13(10): e0206952. https://doi.org/10.1371/journal.pone.0206952 View correction
Figures
Abstract
In a ciphertext-policy attribute-based encryption (CP-ABE) scheme, a user may have multiple attributes, and each attribute may be shared simultaneously by many users. The decryption key of an attribute can thus be shared by many users who all possess the attribute. For monetary gain, a malicious authorized user may reveal his/her decryption key to a third party, and it is difficult to trace the owner of primitive secret key from an exposed key. At the same time, this situation may also limit commercial applications of CP-ABE systems. To solve these problems and enable fine-grained access control for the encrypted data, we propose a traceable CP-ABE scheme with attribute-level user revocation for cloud storage (TUR-CPABE). Our scheme enjoys four advantages. First, it has the ability to trace malicious users who have leaked key information from the system. Second, it supports attribute-level user revocation for malicious users and allows ABE fine-grained access control. Third, it allows secret key updates and ciphertext updates to resist collusion attacks between users. Fourth, outsourcing encryption, decryption and attribute revocation are used to reduce the computational burden on data owners, data users and the trust authority, respectively. In addition, our scheme has been proven to be secure against chosen plaintext attacks under a selective access policy based on decisional q – BDHE assumption in the standard model.
Citation: Wang S, Guo K, Zhang Y (2018) Traceable ciphertext-policy attribute-based encryption scheme with attribute level user revocation for cloud storage. PLoS ONE 13(9): e0203225. https://doi.org/10.1371/journal.pone.0203225
Editor: Hua Wang, Victoria University, AUSTRALIA
Received: June 20, 2018; Accepted: August 16, 2018; Published: September 13, 2018
Copyright: © 2018 Wang et al. This is an open access article distributed under the terms of the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
Data Availability: All relevant data are within the paper and its Supporting Information file.
Funding: This research is supported by the National Natural Science Foundation of China (No. 61572019, http://www.nsfc.gov.cn), and the Key Project of Research Foundation of Natural Science Foundation of Shaanxi Province of China (No. 2016JZ001, http://www.sninfo.gov.cn/). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.
Competing interests: The authors have declared that no competing interests exist.
1 Introduction
In a cloud storage system, the cloud server must be able to provide data storage and other services for end users. Increasingly, companies and individuals prefer to store their valuable data in cloud servers due to limited equipment resources and the need to process big data. Due to security and privacy concerns, data owners always encrypt their data before outsourcing it to the cloud server. Encrypting data is a valid way to prevent information leakage, but encrypting messages hampers the sharing of messages with fine-grained access control. To solve this problem, Sahai and Waters [1] proposed the concept of attribute-based encryption (ABE), which can provide a “one-to-many” encryption scheme with fine-grained access control.
ABE has two main categories: ciphertext-policy attribute-based encryption (CP-ABE) [2] and key-policy attribute-based encryption (KP-ABE) [3]. In CP-ABE, attributes are related to the user’s decryption key, and access policy affects the ciphertext. KP-ABE is exactly the opposite. Not only can CP-ABE defend the privacy of data and provide ABE with fine-grained access control, it also allows the data owner to define flexible access policies for the data. To obtain the better expressivity, efficiency and security, Waters et al. [4–11] conducted a large number of studies of ABE systems. We will discuss two significant developments: trace and revocation.
Recently, several revocable ABE schemes have been presented [12–15]. To our knowledge, revocable ABE systems can be classified into two main types: direct revocable ABE systems and indirect revocable ABE systems. In a direct revocable ABE system, the trusted authority calls for renewal of the revocation list, and users have no need to communicate with the trusted authority after a revocation has taken place. There are some ABE schemes [16–19] that have revocation at the user level. In that case, the trusted authority must control the revocation list and distribute keys for non-revoked users so that revoked users cannot continue to decrypt in an indirect revocable ABE system. Certain ABE schemes [20–22] have been proposed with revocation at the attribute level. Compared with revocation at the user level, revocation at the attribute level offers more fine-grained access control.
In general, traceable CP-ABE is an applied encryption method that is traceable, and it can achieve fine-grained access control. However, some of the existing traceable CP-ABE schemes are less expressive, as the access structure is almost completely restricted to AND gates. To enable greater expressivity, Liu et al. [23] proposed a traceable CP-ABE scheme that supports any monotonous access structure. Considering the characteristics of ABE, it is hard to trace the owner of a primitive secret key when a malicious authorized user reveals his/her decryption key to a third party. Inspired by Boyen’s [24] signature scheme, Liu added the user’s identity in the private key generation phase and uses less expense to add malicious user traceability into the CP-ABE system. Inspired by [23], Ning et al. [25] who presented a white-box traceable ciphertext-policy attribute-based encryption scheme that supports flexible attributes. Considering the business applications of CP-ABE, the number of attributes is not polynomial-bound, and storing the cost of a betrayer trace is constant.
Recently, some cryptography researchers have proposed practical ABE schemes that can support traitor tracing and revocation. Wong et al. [26] proposed a betrayer tracing and revocation ABE for a large universe. Subsequently, Li et al. [27] proposed a traitor tracing and revocable ABE scheme. The scheme was proven to be safe under the prime order group, but it cannot resist a collusion attack between users. Although both Wong and Li’s scheme support direct user revocation, their schemes can neither support a key update nor ciphertext updates, nor can they acquire ABE fine-grained access control. In 2017, Liu et al. [28] proposed traitor tracing the CP-ABE scheme, which can support ciphertext updates, but it can neither resist collusion attacks between users nor gain key update. In order to explain the above collusion attack, we provide the following specific example.
For instance, a sensitive data is encrypted through the access policy (“hospital” AND “hematology” AND “doctor”). We assume u1 holds a secret key associated with the attributes set (“hospital” AND “hematology” AND “nurse”) and u2 holds a secret key associated with the attributes set (“hospital” AND “gastroenterology” AND “doctor”). In our assumption, u1cannot decrypt the ciphertext because of lacking attribute “doctor”, u2 cannot decrypt the ciphertext because of lacking attribute “hematology”. However, they can collude to forge the attributes set (“hospital” AND “hematology” AND “doctor”) and get the correct decryption key. Therefore, the scheme [28] suffers the collusion attack between users. To solve the above problem, we present a traceable CP-ABE scheme with attribute-level user revocation.
1.1 Our contribution
Scheme [25] only considered trace malicious users, and scheme [29] can support attribute-level user revocation. Inspired by [25] and [29], we provide a traceable ciphertext-policy attribute-based encryption scheme with attribute-level user revocation for cloud storage (TUR-CPABE). Our main contributions are as follows.
- In this paper, we formally propose the definition of a traceable ciphertext-policy attribute-based encryption scheme with attribute-level user revocation for cloud storage. In our scheme, we adopt linear secret sharing schemes (LSSS) as an access structure. This provides attribute-level user revocation for malicious user and fine-grained access control for ABE. In our scheme, the trust authority can trace defectors and send the identity of a defector to the attribute manager. The attribute manager is responsible for revoking the defector’s attributes and updating the related decryption key and ciphertext. A user in the system could decrypt ciphertext successfully if and only if his/her identity was absent from the revocation list and his/her attributes can satisfy the access policy.
- In the scheme, we distribute the identity of each user on a leaf node in the KEK tree. We can revoke a user by revoking his/her attributes. When the attribute manager revokes a malicious user’s attribute i, it will update i’s users group Gi and the corresponding group key GSK, re-encrypted ciphertext CT′ and the header of the message Hdr. Thus, our scheme can resist collusion attacks between users.
- In the proposed scheme, outsourcing encryption, decryption and attribute revocation are used to reduce the computational burden of data owners, users and trust authority, respectively. Moreover, the experimental results show that the time spent in the decryption phase is constant.
- The scheme is proven to be secure against a chosen plaintext attack under decisional q – BDHE assumption in the standard model.
1.2 Related work
Sahai and Waters first presented the concept of ABE [1], and then, the ideas of KP-ABE and CP-ABE were formally proposed by Goyal et al.in [3]. After that, many cryptography researchers focused on KP-ABE and CP-ABE schemes [30–34].
In 2007, Abdalla et al. [35] proposed a traitor trace identity-based encryption scheme, and that was the original work on traitor tracing. In 2011, Wang et al. [36] presented another traitor tracing ABE scheme that can recognize a user’s identity. This scheme could employ the technique of betrayer tracing and combine with a security coding technique to ensure the identity of the key abuser. Subsequently, Ning [37] proposed a traceable CP-ABE scheme; this scheme can catch malicious users effectively. A commitment scheme is used to trace defectors, but the method does not support the malicious user revocation.
To expand the commercial applications of ABE systems and combine them with user revocation mechanisms, Liu [38] presented a white-box traceable dynamic ABE scheme. The scheme can support user revocation and outsourcing decryption. However, it can neither resist collusion attacks between users nor support key and ciphertext updates. Jiang [39] proposed a traceable CP-ABE scheme that can resist key abuse. A betrayer who wants to leak a decryption key must abandon the whole key and give an exclusive dummy attribute set. Yang [40] presented a traceable scheme supporting search encryption and user revocation; it can perform efficient keyword search and provides fine-grained access control for encrypted data. At the same time, a large proportion of cryptographic computing is being outsourced to the cloud server, and this alleviates the computational burden on end-user devices. Zhang et al. [41] used a composite order bilinear group to construct an effective white-box traceable CP-ABE scheme with a large universe and multiple authorities. Although this scheme can be used to trace malicious users and resist collusion attacks between users, it cannot support malicious user revocation.
1.3 Organization
The remainder of our paper is summarized as follows. We provide some necessary background knowledge that will be applied to our scheme in Section 2. We describe the system model and security model of our scheme in Section 3. We present a TUR-CPABE scheme and the proof of its security based on security games in Section 4 and 5, respectively. In Section 6, we provide a theoretical performance analysis of our scheme. Finally, we conclude the paper in Section 7.
2 Preliminaries
In this section, we give some necessary background information used in our scheme, including information about bilinear maps, binary trees, access structures and complexity assumptions.
2.1 Bilinear maps
Let and
be two multiplication cyclic groups of prime order p, and g be a generator of
. A map
is a bilinear map [42] with the following properties:
- Bilinearity:
and
, we have e(ua,vb) = e(u,v)ab;
- Nondegeneracy: e(g,g) ≠ 1;
- Computability: There is an efficient polynomial time algorithm to compute the value of e(u,v) for all
.
2.2 Access structure
Definition 1 (Access structure [43]). Let P = {P1,P2,⋯,Pn} be a set of parties. A collection is called monotone for ∀B,C: if
and B ⊆ C then
. An (monotone) access structure is a (monotone) collection
of non-empty subsets of P, i.e.,
. The sets in
are called the authorized sets, or else the sets are called the unauthorized sets. In this paper, we only consider the monotone access structure.
2.3 Linear secret sharing scheme
Definition 2 (linear secret sharing scheme (LSSS) [43]). A LSSS over a group of parties P can be defined as follows:
- The shares for each party from a vector over
.
- For a LSSS, there is a matrix M with l rows and n columns referred to as the share generating matrix. For i ∈ [1,l], we define a function ρ that labels the i-th row of matrix M as attribute ρ(i). We consider a column vector v = (s,v2,v3,…,vn), where
is a secret value to be shared and we choose random
. Then Mv is the vector of l shares of the secret s, and the share (Mv)i belongs to attribute ρ(i).
Each LSSS in the above definition also enjoys the linear reconstruction property, defined as follows: Let be an access structure for the LSSS and
be any authorized sets, and let I ⊆ {1,2,…,l} be defined as I = {i: ρ(i) ∈ S}. There exists a set of constants {ωi|i ∈ I} such that ∑i∈IωiMi = (1,0,…,0). Thus ∑i∈Iωiλi = s if λi = Mi ⋅ v is a valid share of any secret s.
2.4 Binary tree
Definition 3 (Binary tree [44]). We denote be a group of users in the system, a user
and
be users group for attribute x. We describe the binary tree below:
- We assign a user uk for every leaf node and allocate a unique value vj for every node in the tree.
- We define path(i) as a Dijkstra from the root node to the node i.
- The minimal covering set node(Gx) is the minimal set of nodes, and it is able to cover all of the leaf nodes that have users connected in Gx.
- To consider the intersection of path(uk) and node(Gx), we have βx = node(Gx) ∩ path(uk). As shown in Fig 1, we give an example: suppose that the users group for attribute x is Gx = {u1,u3,u4,u5,u6,u8} and u8 is a user connected with leaf node 14, then compute node(Gx) = {v7,v4,v5,v14}, path(u8) ={v0,v2,v6,v14}, we have βx = {v14}.
2.5 Complexity assumptions
Now we briefly introduce the l-Strong Diffie-Hellman (l − SDH) assumption and the q- Bilinear Diffie-Hellman exponent (q − BDHE) assumption.
Assumption 1 (l − SDH assumption [24]). Let be a bilinear group of prime order p and let g be a generator of
. A l − SDH problem can be described as follows: Randomly choose exponent
and given a l + 1-tuple
, output a pair
. Algorithm
can solve the l − SDH problem with the advantage ε if
Definition 4. We say that the l − SDH assumption holds if no polynomial time algorithm can solve the l − SDH problem with a non-negligible advantage.
Assumption 2 (q − BDHE assumption [4]). Let be a bilinear group of prime order p and g be a generator of
. A decisional q − BDHE problem can be described as follows: Randomly choose exponent
, given
It is difficult for the algorithm to distinguish
from the random element
. Algorithm
can solve the q − BDHE problem with the advantage ε if
Definition 5. We say that the q − BDHE assumption holds if no polynomial time algorithm has a non-negligible advantage in solving the q − BDHE problem.
3 System model
In this section, we first account the system architecture of TUR-CPABE and then provide the formal definition and security model of TUR-CPABE.
3.1 System architecture
As shown in Fig 2, the system architecture of the TUR-CPABE scheme has the following six entities.
Trust authority (TA): TA can produce the public parameters and the master key, and it is in charge of distributing private keys to users in the system. In our scheme, the TA is fully trusted.
Attribute manager (AM): The AM has users groups for every attribute, and it generates the manager public key, the manager master key and the group key for the users in each group. In addition, AM is responsible for re-encrypting local ciphertext, updating the key, updating the ciphertext and obtaining an attribute revocation list.
Data owner (DO): The DO takes charge of defining the access policy, encrypting data under the access policy and uploading the local ciphertext to the attribute manager.
Data user (DU): This is an entity who wants to access outsourced data. A user in the system can decrypt the ciphertexts successfully if and only if his/her identity is absent from the revocation list and his/her attributes can satisfy the access policy.
Cloud server provider (CSP): We suppose that a CSP is honest but curious. In other words, it can execute every authorization request honestly but it obtains as much information as possible in the process and from the result.
Outsourcing decryption server provider (ODSP): The server can provide outsourcing decryption service for the user to generate a partially decrypted ciphertext.
3.2 Formal definition
A TUR-CPABE involves eight algorithms: system setup, manager setup, key generation, encryption, decryption, key sanity check, trace and update.
System setup (λ,U)→(PP,MSK): TA runs this algorithm. The algorithm inputs the security parameter λ as well as the attributes universe U in the system, and it outputs the public parameters PP and the master key MSK.
Manager setup (PP)→(MPK,MMK): AM runs this algorithm. The algorithm inputs the public parameters PP, and it outputs the manager public key MPK and the manager master key MMK.
Key generation (PP,MSK,MPK,MMK,S,id)→SK: In this algorithm, a decryption key SK consists of the user private key USK produced by the TA and the group key GSK generated by the AM. The algorithm inputs the public parameters PP, the master key MSK, the manager public key MPK, the manager master key MMK, a user’s identity id as well as an attributes set S, then it outputs the user private key USK and the group key GSK.
Encryption (PP,MPK,m(M,ρ))→(Hdr,CT′): The algorithm inputs the public parameters PP, the manager public key MPK, a message m and an access policy (M,ρ), then it outputs the re-encrypted ciphertext CT′ and the header of message Hdr. This algorithm is performed by the AM and the DO.
Decryption (PP,CT′,Hdr,SK)→m: This algorithm is carried out by the DU and the ODSP. The algorithm inputs the public parameters PP, the re-encrypted ciphertext CT′, the header of the message Hdr and the decryption key SK. The algorithm outputs plaintext m if and only if the user’s identity is absent from the revocation list and his/her attributes can satisfy the access policy.
Key sanity check (PP,SK)→1 or 0: TA performs this algorithm. If a user’s decryption key SK is suspected, then it must be determined whether it is a well-formed decryption key by means of the key sanity check. If SK cannot pass the key sanity check, it outputs 0. Otherwise, it outputs 1.
Trace (PP,SK)→ id or ⊥: TA runs this algorithm. If a user’s decryption key SK is a well-formed decryption key, then TA sends his/her identity id to the AM. Finally, the AM revokes the attribute for the malicious user.
Update : AM can perform attribute revocation for the malicious user, add the malicious user’s id and revoke the attribute into the revocation list to get a new revocation list RL′. Finally, the AM inputs the group key GSK, the re-encrypted ciphertext CT′ and the header of message Hdr to obtain the updated
,
and
.
3.3 Security model
In this section, we propose the security model for our TUR-CPABE system.
3.3.1 Traceability.
In this subsection, we present a traceability definition of our TUR-CPABE system. We describe it by considering a security game between an adversary and a simulator
as follows:
Initialization: Simulator executes System setup (λ,U) as well as Manager setup (PP) to obtain the public parameters PP and the manager public key MPK. After that,
sends PP as well as MPK to
.
Key query: submits a series of attributes sets (id1,S1),…,(idq,Sq) to request the corresponding decryption keys, where (ui,x) ∈ RL (it denotes revoke attribute x for user ui whose identity is idi) or Si ∉ (M*,ρ*)(M*,ρ*) is a challenge access policy), i = 1,2,…,q. Then simulator
performs the key generation algorithm and returns the result to
Key forgery: Adversary
outputs a decryption key SK*. If Trace(PP,SK*) ≠ ⊥ (i.e., SK* is a well-formed decryption key) and Trace(PP,SK*) ≠ {id1,…,idq}, then
wins the game. The advantage of
wins the game is defined as: Pr[Trace(PP,SK*) ≠ {⊥,id1,…,idq}].
Definition 6. A TUR-CPABE scheme is traceable if no polynomial time adversary has at most negligible advantage in this game.
3.3.2 IND-CPA security.
In this subsection, we provide the IND − CPA security of our TUR-CPABE system. We describe it by a security game between an adversary and a simulator
as follows:
Initialization: Adversary chooses a revocation list RL* as well as a challenge access policy (M*,ρ*), where M* is a l* × n* matrix with n* ≤ q. Then
sends them to
.
Setup: Simulator performs System setup (λ,U) as well as Manager setup (PP) to obtain the public parameters PP and the manager public key MPK, the master key MSK as well as the manager master key MMK. Finally
keeps MSK, MMK secret and sends PP, MPK to adversary
.
Phase 1: submits a series of tuples (id1,S1),…,(idq,Sq) to ask for corresponding to decryption keys.
- If S ∈ (M*,ρ*) and (u,x) ∉ RL* (this denotes the revoke attribute x for the user u), the algorithm aborts.
- If S ∉ (M*,ρ*) and (u,x*) ∈ RL*, simulator
generates a decryption key for each attributes set (idi,Si) and returns it to
.
Challenge: Adversary submits two equal length messages m0,m1 to
. Then,
chooses υ ∈ {0,1} randomly, encrypts the message mυ under the access policy (M*,ρ*) as well as computes the challenge ciphertext <Hdrυ*,CTυ*>. Finally,
sends the challenge ciphertext to
.
Phase 2: Same as Phase 1.
Guess: outputs a guess υ′ of υ. If υ = υ′,
wins the game. The advantage of adversary
wins the game is defined as: Adv = |Pr[υ = υ′]−1/2|.
Definition 7. If there is no polynomial time adversary who is able to break our scheme with a negligible advantage in this game, our scheme is said to be indistinguishable from a chosen plaintext attack under a selective access policy.
4 Construction of TUR-CPABE
In our scheme, user’s decryption key consists of two parts. One is the user private key USK related to his/her attributes set, and the other is the group key GSK related to users group he/she belongs to. Only by combining the corresponding USK and GSK is the user able to decrypt the ciphertext. In the proposed scheme, the encryption algorithm also has two steps: First, the data owner encrypts the message to obtain the local ciphertext. Then, the attribute manager re-encrypts the local ciphertext to gain the re-encrypted ciphertext and the header of the message, and the attribute manager uploads them to the cloud server provider. A user can decrypt the ciphertext when and only when the user’s identity id is absent from a revocation list and his/her attributes can satisfy the access policy. In addition, our decryption algorithm can be stated as follows: the outsourcing decryption server provider performs the outsourcing decryption algorithm and then sends the partially decrypted ciphertext to users; and users execute the local decryption algorithm to recover the plaintext.
System setup (λ,U)→(PP,MSK): The algorithm inputs the security parameter λ and the attributes universe U = {1,2,…,x,…,n}. Let and
be two multiplication cyclic groups of prime order p, g be a generator of
. Function
is a bilinear map. As shown in Fig 1,
is a binary KEK tree, and for every leaf node in the tree to assign a user u whose identity is id. RL = {(id,x)} is a revocation list (The initial is empty); this denotes the revoke attribute x for user u. The TA performs the following algorithms.
- Randomly choose
and
.
- For every attribute x ∈ U, select
.
- TA chooses a probabilistic encryption scheme (Enc,Dec)[45] from {0,1}* to
, it is a symmetric encryption with secret key
, and the scheme encrypts the same plaintext generating different ciphertext each time.
Then, the TA sets the public parameters and the master key
. Finally, the TA publishes PP and keeps the MSK secret.
Manager setup (PP)→(MPK,MMK): For every attribute x ∈ U(1 ≤ x ≤ |U|), AM chooses a random number and computes
. Then, it sets the manager public key as MPK = {Wx|1 ≤ x ≤ |U|} and the manager master key as MMK = {wx|1 ≤ x ≤ |U|}. Finally, AM publishes MPK and keeps MMK secret.
Key generation (PP,MSK,MPK,MMK,S,id)→SK: In this algorithm, a decryption key SK consists of user private key USK produced by the TA and group key GSK generated by the AM. The specific steps are as follows:
- USK generation: For the user
, the TA authenticates his/her attributes set Sk(Sk ⊆ U) and generates a USKk connected with attributes set Sk. This algorithm can be stated as follows:
- For each attribute x ∈ Sk(1 ≤ x ≤ |U|), the TA chooses
randomly and computes
, where the user uk’s identity is idk and there is no distinction between the result c and a random number in
. Then, the private key USKk′ is set as follows:
- TA randomly selects
and sets the transformation key TKk as
and uk’s user private key USKk is set as USKk = (K1 = z,TKk).
- For every attribute x ∈ Sk(1 ≤ x ≤ |U|), TA computes
and adds (x,kekx) into uk’s group key GSKk.
- TA retains GSKk, then it sends USKk to the user and GSKk to the AM by the secure channel, respectively.
- For each attribute x ∈ Sk(1 ≤ x ≤ |U|), the TA chooses
- GSK generation: Every node in the tree is assigned an exclusive value vj and an exclusive sequence number sequence(vj). For the user
, AM produces a group KEKx that can compute path nodes from a leaf node to the root node. The detailed algorithm is as follows:
- For each attribute x ∈ Sk(1 ≤ x ≤ |U|), AM computes a minimal covering set node(Gx) for Gx and defines a Dijkstra path(uk) for the user
, where Gx is the users group for attribute x.
- For every attribute x ∈ Sk(1 ≤ x ≤ |U|), AM executes an intersection operation βx = node(Gx) ∩ path(uk). If βx = ϕ, AM doesn’t compute a KEKx for the user uk. Otherwise, it computes
, where vj ∈ βx. Then, AM adds {sequence(vj),KEKx} into uk’s group key GSKk.
- For each attribute x ∈ Sk(1 ≤ x ≤ |U|), AM computes a minimal covering set node(Gx) for Gx and defines a Dijkstra path(uk) for the user
- AM sends GSKk to the user and Gx to the TA by the secure channel, respectively. Then, the user uk obtains an unbroken decryption key SKk = {USKk,GSKk}.
Encryption (PP,MPK,m,(M,ρ))→(Hdr,CT′): This algorithm has two steps. First, the user owner DO encrypts the message m to obtain the local ciphertext CT. Then, AM re-encrypts CT to produce the re-encrypted ciphertext CT′ and the header of the message Hdr. The specific process is as follows:
- DO encrypts: The algorithm inputs the public parameters PP, the message m and an access policy (M,ρ). M is a matrix with l × n elements, and function ρ maps the rows of M into the attributes set. Then, the DO chooses a random column vector ν = (s,ν2,ν3,…,νn), where ν2,ν3,…,νn are applied to share s. DO computes λi = Mi ⋅ ν for ∀i ∈ [1,l], where Mi is a vector corresponding to the i-th row of matrix M. DO randomly chooses an exponent
and computes the local ciphertext CT as follows:
Then DO sends CT to the AM. - AM encrypts: For ∀i ∈ [1,l], AM randomly chooses
and re-encrypts CT:
For ∀i ∈ [1,l], AM computes node(Gρ(i)) and sets the header of the message Hdr as:
Finally, AM uploads the ciphertext <CT′,Hdr> to the CSP.
Decryption (PP,CT′,Hdr,SK)→m: This algorithm has two steps. First, ODSP executes the outsourcing decryption operation. Second, DU performs the local decryption algorithm. For the user , given the ciphertext <CT′,Hdr> and the decryption key SKk = {USKk,GSKk}, there are two cases:
- If the user uk’s attributes set Sk ∉ (M,ρ) (in other words, the user uk’s attributes set Sk cannot satisfy the access policy (M,ρ))or uk ∈ RL, the algorithm aborts.
- If the user uk’s attributes set Sk ∈ (M,ρ) and uk ∉ RL, let I = {i:ρ(i) ∈ S} and I ⊆ [1,l], there exists a set of constants
so that ∑i∈Iωiλi = s. Then, DU sends the ciphertext <CT′,Hdr>, the transformation key TKk and the group key GSKk to the ODSP. Finally, ODSP sends the partially decrypted ciphertext CT1 to the DU, then DU recovers the message m. The algorithms are stated as follows.
Key sanity check (PP,SK)→1 or 0: If the user uk’s decryption key SKk is suspected, TA will check whether user private key USKk satisfies the key sanity check:
- USKk is in the form of
and
,
.
- e(L2,g) = e(L1,ga).
.
- ∃x ∈ Sk,s.t. e(Kx,2,g) = e(Ux,Kx,1) ≠ 1.
If USKk can pass the key sanity check, the algorithm outputs 1. Otherwise, it outputs 0.
Trace (PP,SK)→id or ⊥: This algorithm is performed by the TA. If the user uk’s user private key USKk cannot pass the key sanity check, the algorithm outputs ⊥. Otherwise, the algorithm should be done as follows:
- It extracts the user uk’s identity idk from
.
- Search idk from attribute x’s users group Gx. If TA can find idk, the algorithm outputs the corresponding malicious user uk. Otherwise, it outputs a user u* who is never appear in Gx.
- TA sends the malicious user’s idk to the AM.
Update : In an ABE scheme, a user has multiple attributes. Usually, each attribute can be shared by many users. Thus, the decryption key of an attribute can be shared by many users. When the user uk’s attribute x is revoked, we can update other unrevoked users corresponding to GSKx. In the meantime, we need to update the ciphertext related to this attribute to make sure the user’s decryption key connected to the attribute is useless. Thus, the user uk loses his/her decryption privilege. The attribute revocation algorithm includes the following steps.
- Key update: In our system, AM performs the attribute revocation algorithm and updates the user’s GSKk. The particular steps are as follows:
- For each tuple
, AM randomly chooses
and for every tuple
, let δx = 1. Then, for each attribute x ∈ U(1 ≤ x ≤ |U|), AM computes
. Finally, AM updates the manager public key as
, and updates the manager master key as
.
- For each tuple
, AM updates the users group for attribute x as
and computes
.
- For every tuple
, AM performs an intersection operation
. Then, it computes
and
, where
.
- AM replaces the group key GSKk with the updated group key
.
- For each tuple
- Ciphertext update: After updating the group key, AM continues executing the ciphertext update algorithm, and the algorithm is described as follows.
5 Security analysis
In this section, we first provide a proof of traceability based on the l − SDH hardness assumption. Then, we prove that our scheme is able to achieve IND−CPA security if the q − BDHE assumption holds.
5.1 Traceability
Theorem 1. Suppose that q < l, our TUR-CPABE system is traceable if l − SDH assumption holds. Where q is the number of key queries that the attacker makes.
Proof: Suppose there is a probabilistic polynomial time (PPT) adversary capable of winning this traceability game with advantage ε, w.l.o.g., suppose l = q + 1, we can establish a PPT algorithm
to break the l − SDH hardness problem with a non-negligible advantage.
Let and
be two multiplication cyclic groups of prime order p, let g be a generator of
and let function
be a bilinear map. The algorithm
receives a l − SDH challenge problem
, where
, and the goal of
is to output a tuple
. Let
. To solve the l − SDH problem, algorithm
can imitate a challenger’s role for adversary
. The specific processes are stated below:
Setup: Algorithm selects q different values
randomly. Let
, where
are the coefficient of polynomial f(y). Then
performs the following algorithm:
- Let
and
.
randomly picks
. For each attribute x ∈ U,
chooses a random number
and establishes
. Finally,
publishes the public parameters as
.
- For each x ∈ U,
randomly chooses
and computes
, then publishes the manager public key as MPK = {Wx|1≤x≤|U|}.
- Set up a binary KEK tree and assign a user u for every leaf node, and the user’s identity is id. Every node possesses an exclusive value vj as well as an exclusive sequence number sequence(vj) in the binary KEK tree.
Key query: Adversary submits a set of attributes (idi,Si) to
and requests the corresponding decryption keys. When it goes on the i-th query, we suppose i ≤ q, let polynomial
, we can write fi(y) as
.
computes
and
randomly selects
, computes DSKi related to (idi,Si) as follows: First,
computes
Then sets the transformation key TKi as
and builds the user private key as USKi = (K1 =z,TKi). Finally,
computes
.
To define a function node(Gx) for attribute x’s users group Gx, where x ∈ Si. For every user ,
defines a function path(ui) and performs an intersection operation βx = node(Gx) ∩ path(ui). If βx = ϕ,
sets GSKi = {x,kekx}. Otherwise,
computes
, where vj ∈ βx. Then,
sets the group key as GSKi = {x,sequence(vj),kekx,KEKx}.
Finally, returns the decryption key SKi = {DSKi,GSKi} to
.
Key forgery: Adversary submits a forged decryption key SK* to
. Here the distribution of the decryption key SK and the public parameters PP in the above game are the same as in the real system.
Let denote the event that
wins the game, i.e., SK* can pass the key sanity check and K1′ ∉ {c1,c2,…,cq}. If the event
does not happen,
chooses a random tuple
as a solution to the l − SDH hardness problem. If event
takes place,
writes the polynomial f as f(y) = γ(y)(y + K1′) + γ − 1, where
,
. Note that γ − 1 ≠ 0, since
,
and K1′ ∉ {c1,c2,…,cq}, f(y) cannot be divisible by y + K1′.
computes the tuple
as follows:
Suppose L1 = gr, where is unknown, and let K1 =z, where
. According to the equality e(L2,g) = e(L1,ga) from the key sanity check, we have L2 = gar. On the basis of the equality
, we have
. Then
continues performing the following algorithm.
As , the tuple (cr,ωr) is a solution to l − SDH hardness problem.
At present, we assess the superiority of to break the l − SDH hardness problem.
Suppose ζ denotes the event that (cr,ωr) is the solution to the l − SDH hardness problem and this solution can be checked by verifying whether the equality holds. When
randomly selects (cr,ωr), ζ can happen with a negligible advantage. We denote this as 0 for simplicity. When the event
occurs,
outputs a tuple (cr,ωr) and the probability of tuple (cr,ωr) satisfies the equality
is 1. Hence, the possibility of
solves l − SDH challenge problem is as follows:
5.2 IND − CPA security of the TUR-CPABE
Theorem 2. If the decisional q − BDHE assumption holds, then there are no PPT adversaries that have non-negligible advantages in breaking our TUR-CPABE scheme under selective access policy and chosen plaintext attacks, where and
is the number of users in the system.
Proof: Suppose there is a PPT adversary able to break our TUR-CPABE scheme with an advantage ε. In this case, we could set up a simulator
who has an advantage ε/2 to break the decisional q − BDHE hardness problem. The simulation processes are described as follows:
Let and
be two multiplication cyclic groups of prime order p, g be a generator of
and function
be a bilinear map. Given
then simulator
casts a fair coin μ. If μ = 0,
sets
. Otherwise,
sets T = Z, where Z is a random element in
.
Initialization: Adversary chooses a challenge access policy (M*,ρ*) as well as a revocation list RL*, where M* is a l* × n* matrix and n* ≤ q.
Setup: To simulate public parameters as well as manager public key, simulator needs to execute the following algorithms.
chooses a random
such that
, where implicit sets α = α′ + dq+1.
- Randomly select a value
for every attribute x ∈ U(1 ≤ x ≤ |U|), then every group element
is generated as follows. If there exists i ∈ {1,2,…,l*} such that ρ*(i) = x, set
. Otherwise, let
.
randomly chooses
, then computes ga and sets h = gd.
- Given a revocation list RL*. If (u,x) ∈ RL*,
randomly chooses
and sets
, where implicit sets wx = dθx. Otherwise, builds
, where wx = θx.
- Set up a binary KEK tree and assign a user u for every leaf node, and the user’s identity is id. Every node has an exclusive value vj as well as an exclusive sequence number sequence(vj) in the binary KEK tree.
Hence, the simulator publishes the public parameters as
and the manager public key as MPK = {Wx|1 ≤ x ≤ |U|}.
Phase 1: Adversary commits a sequence of tuples (u1,S1),…,(uq,Sq) to ask for the corresponding decryption keys, where (u,x) denotes revoke the user u’s attribute x.
does the following in response:
Case 1. If S ∈ (M*,ρ*) and (u,x) ∉ RL*, the algorithm aborts.
Case 2. If S ∈ (M*,ρ*) and (u,x*) ∈ RL*, chooses a random
and implicit sets
. Then, the simulator performs the following algorithm to setting decryption key.
computes USK′ as follows:
- Choose a random exponent
, then let K1 = z and set TK as
Finally, obtain USK = (z,TK). - For have been revoked attribute x*,
selects the value v* ∈ path(u), then computes
and
. Otherwise,
computes
, then computes a minimal covering set node(Gx) for the attribute x’s users group Gx and defines a Dijkstra path(u) for the user u, finally performs an intersection operation βx = node(Gx) ∩ path(u). If βx = ϕ,
does not compute KEKx for u. Otherwise,
computes
, where vj ∈ βx.
Case3. If S ∉ (M*,ρ*) and (u,x*) ∈ RL*, responds in the following.
- Find a vector
such that ω1 = −1 and
, where ρ*(i) ∈ S. As S ∉ (M*,ρ*), such a vector must exist.
selects a random number
, builds K1′ = c.
chooses a random number
, implicit defines
computes K2′,L1′,L2′,Kx,1′ are as follows:
For ∀x ∈ S,computes Kx,2′. If there no exists i such that ρ*(i) = x,
computes
. Otherwise, sets
.
chooses a random exponent
, then builds K1 = z. Compute the transformation key as
and set USK = (K1 = z,TK).Then,
computes
and
as in case 2.
Case4. If S ∉ (M*,ρ*) and (u,x) ∉ RL*, the simulator computes USK as in case 3. First, computes
. Then,
computes a minimal covering set node(Gx) for the attribute x’s users group Gx and defines a Dijkstra path(u) for the user u. Finally,
performs an intersection operation βx = node(Gx) ∩ path(u). If βx = ϕ,
doesn’t compute KEKx for u. Otherwise,
computes
, where vj ∈ βx.
Challenge: Finally, we set the challenge ciphertext. Adversary submits two equal length messages m0,m1 to
. Then,
casts a fair coin υ ∈ {0,1} and performs the following algorithms.
Local encryption: First, sets
, C0 = gs, C1 =(gs)a. Then,
randomly chooses
and builds
Finally, sets the local ciphertext as
.
Re-encryption: For each non-revoked attribute ρ*(i)(1≤i≤l*), randomly chooses
. Otherwise,
sets ki* = d ⋅ ki. Then,
re-encrypts the local ciphertext to obtain
In addition, for every ρ*(i)(1≤i≤l*) corresponding to the attribute x, computes a minimal covering set node(Gx) for x’s users group Gx. Then,
sets the header of message as
Finally, sends the challenge ciphertext <Hdrυ*,CTυ*> to
.
Phase 2: Same as Phase 1.
Guess: Finally, outputs a guess υ′of υ. If υ′ = υ, the simulator outputs μ′ = 0 to show that T is a valid q − BDHE tuple. Otherwise,
outputs μ′ = 1 to indicate that T is a random group element from
.
The decryption key and public parameters generated by simulations in the above game are the same as those in the real system.
When μ = 1, the adversary cannot acquire any information about υ. Therefore, we have .
guesses μ′ = 1 as υ′ ≠ υ, we have
.
When μ = 0, receives mυ’s ciphertext. If the advantage of
is ε, we have
.
guesses μ′ = 0 as υ′ = υ, and we have
.
The advantage of simulator in the decisional q − BDHE game is defined as:
6 Performance Analysis
In this section, our scheme is compared with several related schemes in terms of functionality and performance. The comparisons are listed in Tables 1and 2. Our experiment is realized by using of the Pairing Cryptography (PBC) library [46]. Our pairing is structured on an ellipse curve y2 = x3 + x in a finite field (q is a prime number and q ≡ 3 mod 4). The environment of the hardware runtime is Intel Core i5-3470 CPU @ 3.20GHz, and RAM is 4.00GB. The software runtime environment is JDK 1.7.5, JPBC 2.0.0 and MyEclipse 10.
We compared our scheme with the other schemes [25,26,37,38,41] in Table 1. Those scheme can support traceability, and schemes [25,37,41] cannot support malicious user revocation. To achieve ABE fine-grained access control, our scheme can sustain the attribute level user revocation. In addition, we find that schemes [26,41] and our scheme both can resist collusion attacks between users. Only scheme [38] and our scheme can support an outsourcing decryption algorithm. Finally, Table 1 shows that our scheme can obtain a key update algorithm and a ciphertext update algorithm, and schemes [25,26,37,38,41] do not possess those functionalities.
From Table 2, we can find that our scheme is more efficient than those in [25,26,37,38,41] for the encryption algorithm. As our scheme only conducts one exponentiation operation and one multiplication operation in the decryption algorithm, our scheme and scheme [38] are much better than are other schemes [25,26,37,41]. In the trace algorithm, it is obvious that the schemes in [25,37,38] are less efficient than our scheme, and due to the cost of multiplication operations, it is much less expensive than a bilinear pairing operation so that our scheme is slightly lower in efficiency than that of the scheme [41]. Although our scheme is more efficient than are those schemes in [25,26,38,41] for the key generation algorithm, it is slightly less efficient than scheme [37]. It is worth noting that our scheme can perform the attribute-level user revocation and can resist collusion attacks with a lower key generation expenditure.
Fig 3 compares the computational overheads in key generation time, encryption time, decryption time and trace time. Fig 3(A) compares key generation times between our scheme and the above schemes. We find that the key generation time in the proposed scheme is much less than that in other schemes [25,26,38,41]. Fig 3(B) shows the time required for the data owner to encrypt a message. Our scheme takes much less time than that of the others [25,26,37,38,41]. Fig 3(C) shows the time required for the data user to decrypt a message. Because our scheme and scheme [38] make use of outsourcing decryption algorithm, the decryption time is a constant. Compared with schemes [25,26,37,41], our scheme has an obvious advantages in the decryption time. Fig 3(D) compares the trace times in the above scheme. Our scheme’s trace time is much less than those of other schemes [25,37,38]. Compared with scheme [41], although our scheme does not have a clear advantage in its trace time, our scheme can achieve user revocation and can resist user collusion. In brief, the results of our experiment agree with the above theoretical analysis.
(a)Key generation time (b)Encryption time (c)Decryption time (d)Trace time.
7 Conclusion
In this paper, we propose a scheme called traceable CP-ABE with attribute-level user revocation for cloud storage (TUR-CPABE). In our construction, a user’s decryption key and ciphertext both have two parts. A secret key update and a ciphertext update are used to resist collusion attacks between users. In addition, outsourcing encryption, decryption and attribute revocation are used to reduce the computational burden of data owners, users and the trust authority, respectively. Finally, the security of our scheme is demonstrated under a chosen plaintext attack based on a decisional q − BDHE hardness problem in the standard model.
Because a black-box traceable tool is much better than a white-box traceable tool, our future work will focus on constructing a black-box traceable CP-ABE tool with attribute-level user revocation.
Acknowledgments
We would like to thank the anonymous reviewer for comments and suggestions. This work was supported by the National Natural Science Foundation of China under Grants 61572019, the Key Project of Research Foundation of Natural Science Foundation of Shaanxi Province of China under Grant No. 2016JZ001.
References
- 1.
Sahai A, Waters B. Fuzzy Identity-Based Encryption. In: Cramer R, editor; 2005 2005//; Berlin, Heidelberg. Springer Berlin Heidelberg. pp. 457–473.
- 2.
Bethencourt J, Sahai A, Waters B. Ciphertext-Policy Attribute-Based Encryption; 2007 20–23 May 2007. pp. 321–334.
- 3.
Goyal V, Pandey O, Sahai A, Waters B (2006) Attribute-based encryption for fine-grained access control of encrypted data. Proceedings of the 13th ACM conference on Computer and communications security. Alexandria, Virginia, USA: ACM. pp. 89–98.
- 4.
Waters B. Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and Provably Secure Realization. In: Catalano D, Fazio N, Gennaro R, Nicolosi A, editors; 2011 2011//; Berlin, Heidelberg. Springer Berlin Heidelberg. pp. 53–70.
- 5.
Liu Je, Wan Z, Gu M (2011) Hierarchical attribute-set based encryption for scalable, flexible and fine-grained access control in cloud computing. Proceedings of the 7th international conference on Information security practice and experience. Guangzhou, China: Springer-Verlag. pp. 98–107.
- 6.
Au MH, Huang Q, Liu JK, Susilo W, Wong DS, et al. (2008) Traceable and retrievable identity-based encryption. Proceedings of the 6th international conference on Applied cryptography and network security. NewYork, NY, USA: Springer-Verlag. pp. 94–110.
- 7.
Lewko A, Waters B. New Proof Methods for Attribute-Based Encryption: Achieving Full Security through Selective Techniques. In: Safavi-Naini R, Canetti R, editors; 2012 2012//; Berlin, Heidelberg. Springer Berlin Heidelberg. pp. 180–198.
- 8.
Green M, Hohenberger S, Waters B (2011) Outsourcing the decryption of ABE ciphertexts. Proceedings of the 20th USENIX conference on Security. San Francisco, CA: USENIX Association. pp. 34–34.
- 9.
Rouselakis Y, Waters B (2013) Practical constructions and new proof methods for large universe attribute-based encryption. Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security. Berlin, Germany: ACM. pp. 463–474.
- 10.
Li J, Chen X, Li J, Jia C, Ma J, et al. Fine-Grained Access Control System Based on Outsourced Attribute-Based Encryption. In: Crampton J, Jajodia S, Mayes K, editors; 2013 2013//; Berlin, Heidelberg. Springer Berlin Heidelberg. pp. 592–609.
- 11. Deng H, Wu Q, Qin B, Domingo-Ferrer J, Zhang L, et al. (2014) Ciphertext-policy hierarchical attribute-based encryption with short ciphertexts. Information Sciences 275: 370–384.
- 12.
Zhang P, Chen Z, Liang K, Wang S, Wang T. A Cloud-Based Access Control Scheme with User Revocation and Attribute Update. Information Security and Privacy; 2016; Cham. Springer International Publishing. pp. 525–540.
- 13.
Ma H, Dong E, Liu Z, Zhang L. Privacy-Preserving Multi-authority Ciphertext-Policy Attribute-Based Encryption with Revocation. Advances on Broad-Band Wireless Computing, Communication and Applications; 2018; Cham. Springer International Publishing. pp. 811–820.
- 14. Zhang P, Chen Z, Liu JK, Liang K, Liu H (2018) An efficient access control scheme with outsourcing capability and attribute update for fog computing. Future Generation Computer Systems 78: 753–762.
- 15.
Li D, Chen J, Liu J, Wu Q, Liu W. Efficient CCA2 Secure Revocable Multi-authority Large-Universe Attribute-Based Encryption. Cyberspace Safety and Security; 2017; Cham. Springer International Publishing. pp. 103–118.
- 16. Li J, Yao W, Zhang Y, Qian H, Han J (2017) Flexible and Fine-Grained Attribute-Based Data Storage in Cloud Computing. IEEE Transactions on Services Computing 10: 785–796.
- 17. Shi Y, Zheng Q, Liu J, Han Z (2015) Directly revocable key-policy attribute-based encryption with verifiable ciphertext delegation. Information Sciences 295: 221–231.
- 18.
Ma H, Peng T, Liu Z (2017) Directly revocable and verifiable key-policy attribute-based encryption for large universe. 272–284 p.
- 19. Wang H, Zheng Z, Wu L, Li P (2017) New directly revocable attribute-based encryption scheme and its application in cloud storage environment. Cluster Computing 20: 2385–2392.
- 20. Qian H, Li J, Zhang Y, Han J (2015) Privacy-preserving personal health record using multi-authority attribute-based encryption with revocation. International Journal of Information Security 14: 487–497.
- 21.
Huang X, Tao Q, Qin B, Liu Z. Multi-Authority Attribute Based Encryption Scheme with Revocation; 2015 3–6 Aug. 2015. pp. 1–5.
- 22. Li X, Tang S, Xu L, Wang H, Chen J (2017) Two-Factor Data Access Control With Efficient Revocation for Multi-Authority Cloud Storage Systems. IEEE Access 5: 393–405.
- 23. Liu Z, Cao Z, Wong DS (2013) White-Box Traceable Ciphertext-Policy Attribute-Based Encryption Supporting Any Monotone Access Structures. IEEE Transactions on Information Forensics and Security 8: 76–88.
- 24.
Boneh D, Boyen X (2004) Short Signatures Without Random Oracles. 56–73 p.
- 25. Ning J, Dong X, Cao Z, Wei L, Lin X (2015) White-Box Traceable Ciphertext-Policy Attribute-Based Encryption Supporting Flexible Attributes. IEEE Transactions on Information Forensics and Security 10: 1274–1288.
- 26.
Liu Z, Wong DS. Practical Ciphertext-Policy Attribute-Based Encryption: Traitor Tracing, Revocation, and Large Universe. Applied Cryptography and Network Security; 2015; Cham. Springer International Publishing. pp. 127–146.
- 27.
Li X, Liang K, Liu Z, Wong D (2017) Attribute based Encryption: Traitor Tracing, Revocation and Fully Security on Prime Order Groups. 309–320 p.
- 28. Liu Z, Duan S, Zhou P, Wang B (2017) Traceable-then-revocable ciphertext-policy attribute-based encryption scheme. Future Generation Computer Systems https://doi.org/10.1016/j.future.2017.09.045.
- 29. Li J, Yao W, Han J, Zhang Y, Shen J (2018) User Collusion Avoidance CP-ABE With Efficient Attribute Revocation for Cloud Storage. IEEE Systems Journal 12: 1767–1777.
- 30. Wang H, Dong X, Cao Z (2017) Multi-value-Independent Ciphertext-Policy Attribute Based Encryption with Fast Keyword Search. IEEE Transactions on Services Computing 1–1.
- 31.
Qiu S, Liu J, Shi Y, Zhang R (2017) Hidden policy ciphertext-policy attribute-based encryption with keyword search against keyword guessing attack.
- 32. Li J, Lin X, Zhang Y, Han J (2017) KSF-OABE: Outsourced Attribute-Based Encryption with Keyword Search Function for Cloud Storage. IEEE Transactions on Services Computing 10: 715–725.
- 33. Zhu H, Wang L, Ahmad H, Niu X (2017) Key-Policy Attribute-Based Encryption With Equality Test in Cloud Computing. IEEE Access 5: 20428–20439.
- 34. Yang K, Zhang K, Jia X, Hasan MA, Shen X (2017) Privacy-preserving attribute-keyword based data publish-subscribe service on cloud platforms. Information Sciences 387: 116–131.
- 35.
Abdalla M, Dent AW, Malone-Lee J, Neven G, Phan DH, et al. Identity-Based Traitor Tracing. Public Key Cryptography–PKC 2007; 2007; Berlin, Heidelberg. Springer Berlin Heidelberg. pp. 361–376.
- 36.
Wang Y, Chen K-F, Chen J-H (2011) Attribute-Based Traitor Tracing. 181–195 p.
- 37. Ning J, Cao Z, Dong X, Wei L (2017) White-Box Traceable CP-ABE for Cloud Storage Service: How to Catch People Leaking Their Access Credentials Effectively. IEEE Transactions on Dependable and Secure Computing 1–1.
- 38.
Liu Z, Wang X, Cui L, Jiang ZL, Zhang C. White-box traceable dynamic attribute based encryption; 2017 15–17 Dec. 2017. pp. 526–530.
- 39. Jiang Y, Susilo W, Mu Y, Guo F (2018) Ciphertext-policy attribute-based encryption against key-delegation abuse in fog computing. Future Generation Computer Systems 78: 720–729.
- 40. Yang Y, Liu X, Deng RH, Li Y (2017) Lightweight Sharable and Traceable Secure Mobile Health System. IEEE Transactions on Dependable and Secure Computing 1–1.
- 41. Zhang K, Li H, Ma J, Liu X (2018) Efficient large-universe multi-authority ciphertext-policy attribute-based encryption with white-box traceability. Science China Information Sciences 61: 032102.
- 42.
Boneh D, Franklin M. Identity-Based Encryption from the Weil Pairing. Advances in Cryptology—CRYPTO 2001; 2001; Berlin, Heidelberg. Springer Berlin Heidelberg. pp. 213–229.
- 43.
Beimel A (1996) Secure Schemes for Secret Sharing and Key Distribution.
- 44. Hur J, Noh DK (2011) Attribute-Based Access Control with Efficient Revocation in Data Outsourcing Systems. IEEE Transactions on Parallel and Distributed Systems 22: 1214–1221.
- 45. Goldwasser S, Micali S (1984) Probabilistic encryption. Journal of Computer and System Sciences 28: 270–299.
- 46. Duquesne S, Lange T (2005) Pairing-based cryptography. Mathiiscernetin volume 22: 573–590.