Hidden Policy Attribute-Based Data Sharing with Direct Revocation and Keyword Search in Cloud Computing

Attribute-based encryption can be used to realize fine-grained data sharing in open networks. However, in practical applications, we have to address further challenging issues, such as attribute revocation and data search. How do data users search for the data they need in massive amounts of data? When users leave the system, they lose the right to decrypt the shared data. In this case, how do we ensure that revoked users cannot decrypt shared data? In this paper, we successfully address these issues by proposing a hidden policy attribute-based data sharing scheme with direct revocation and keyword search. In the proposed scheme, the direct revocation of attributes does not need to update the private key of non-revoked users during revocation. In addition, a keyword search is realized in our scheme, and the search time is constant with the increase in attributes. In particular, the policy is hidden in our scheme, and hence, users’ privacy is protected. Our security and performance analyses show that the proposed scheme can tackle the security and efficiency concerns in cloud computing.


Introduction
With the application of intelligent terminals in our lives, a large amount of data can be generated quickly. These collected data are closely related to our lives. By analyzing personal data, one's behavior can be predicted, and by analyzing the enterprise data, a lot of business secrets can be obtained which can pose a serious threat to individuals [1] or enterprises [2]. Furthermore, there are many threats to data privacy during the processes of data processing [3,4], data transmission [5], data storage [6,7], data search [8], data confidentiality [9,10] and data access [11,12]. Among these security problems, we focus on security issues in cloud storage and cloud computing.
While the rapid development of cloud computing brings convenience to enterprises and individuals because of its storage services, computing services, scalability and so on, data security and user privacy are also a big problem [13,14] owing to data being exposed in open network environments [15]. Encrypting data before uploading data to the cloud server can solve data security and user privacy issues very well [16,17]. However, the encryption of data causes the loss of some characteristics of plaintext, and data sharing among numerous data users becomes another problem. Fortunately, attribute-based encryption (ABE) [18] provides a good solution to the data sharing and access control on cloud storage and cloud computing. After Sahai et al. proposed the notion of ABE, much work was done to improve the function and efficiency of the ABE. For example, Li et al. [19] proposed a multi-authority, fine-grained access control scheme. Zhang et al. [20] proposed an anonymous access control scheme for proxy re-encryption. Shen et al. [21] proposed a data sharing scheme with anonymous tracking. These schemes are extensions of the ABE scheme and can be applied to some specific environments. In the scenario of data sharing, the Ciphertext Policy Attribute-Based Encryption (CP-ABE) [22] is more popular. In the CP-ABE system, the data owner specifies the access control structure related to ciphertexts. Only when the user attributes connected with the user secret key satisfy the access control structure, can the data be decrypted correctly. For example, Cai et al. [23] applied CP-ABE to the medical cloud which can help to improve the quality of medical services. Zhang et al. [24] applied CP-ABE to the mobile cloud computing, which makes it possible for resource-limited users to share data with others.
Although CP-ABE can bring a lot of convenience to our lives, there are still many problems to be considered in practical applications. For example, how can we ensure that revoked users cannot decrypt shared data? How do data users search for the data they want among massive amounts of data? In addition, in the CP-ABE system, the access control structure is also uploaded to the cloud server with the ciphertext, which may also leakage some sensitive information. In order to solve the above problems, the typical CP-ABE scheme is no longer suitable for the complex cloud computing environment. Therefore, searchable attribute-based encryption schemes (SABE) [25] and revocable attribute-based encryption schemes (RABE) [26] have been put forward.
In SABE [27,28], the data owner will upload the encrypted keyword index together with the ciphertext. When data users want to use data, he will generate a keyword trapdoor with his secret key, then uploads it to the cloud server. The cloud server checks whether the ciphertext containing the keyword index exists on the server without knowing the keyword. If it exists, the ciphertext will be returned to data users. Therefore, data users can retrieve the data they want based the keyword trapdoor. However, the search time in most searchable attribute-based encryption schemes increases with the number of attributes, which increases the burden on the server and reduces the user experience. In addition, when the access control structure is uploaded, it will also leakage some sensitive information.
The revocation scheme has practical application in dynamic networks and systems. For example, when a user leaves the system, the user identity is revoked in the system [29] which increases the security of the system. The RABE scheme can be divided into indirectly revocable attribute-based encryption (IRABE) schemes [30,31] and directly revocable attribute-based encryption (DRABE) schemes [32][33][34][35]. In the IRABE schemes, the revocation list is maintained by the authority center. When the user is removed from the system, the authority center updates the secret key of the non-revoked user. In DRABE schemes, the user's revocation list is held by the user. When a user is revoked, the user's private key does not need to be updated. Comparing the two schemes, the direct revocation scheme is more suitable for open network environments. In order to prevent the revoked users from decrypting the previous ciphertext, we can use the powerful computing power of cloud computing to update the ciphertext when the user is revoked from the system.
In order to make the data sharing scheme of CP-ABE more applicable to practical applications, it is necessary to propose a data sharing scheme with the functions of direct revocation and keyword search.

Our Contribution
In order to solve the problem described above and make the data sharing scheme of ABE more practical, we propose a hidden policy attribute-based data sharing scheme with direct revocation and keyword search (ABERS). Our scheme has the following advantages: • Direct revocation of attributes: We use subset covering theorem to achieve the direct revocation of attributes. After revocation, there is no need to update the private key of the non-revoked user.
In order to ensure that the users who have been revoked cannot decrypt the previous ciphertext, the ciphertext is updated.

•
Fast keyword search: We use aggregation technology to achieve the fast search of keywords. Keyword search time is constant and will not increase with the numbers of attributes.
• Hidden policy: We use the AND gate access control structure to achieve the hidden policy. When the ciphertext is uploaded, the access control structure does not need to be uploaded. Thus, the function of the hidden policy can be realized.

Related Work
We review the work of the AND-gate attribute based encryption, the revocable attribute based encryption and the authorized keyword search in this section.
AND-gate attribute based encryption: Sahai and Waters [18] proposed the ABE scheme to solve data sharing and data access control. After Sahai et al. had proposed the ABE, much work was done to improve the function and efficiency of the ABE. In order to apply the function of the ABE scheme more flexibly, ABE was divided into key-policy ABE (KP-ABE) [36] and ciphertext-policy ABE (CP-ABE) [22,37]. In order to facilitate the application of terminal devices, some work was also done in references [38,39]. An AND-gate access structure ABE was introduced by Cheung and Newprot [40]. Unfortunately, there is no hidden access policy in this scheme. Due to the appearance of inner product encryption schemes, several other schemes [28,41,42] follow this structure, while hiding the access policy.
Revocable attribute based encryption: The RABE scheme is divided into IRABE schemes [30,31] and DRABE schemes [32][33][34]. In IRABE schemes, the revocation list is maintained by the authority center. When the user is removed from the system, the authority center updates the secret key of the non-revoked user. In DRABE schemes, the user's revocation list is held by the user. When a user is revoked, the user's private key does not need to be updated. In order to prevent revoked users from decrypting ciphertexts that existed before revocation, some work on the re-encryption proxy was done in reference [31] without interacting with data owners and in reference [43] without interacting with non-revoked users.
Authorized keyword search: The search encryption scheme can be traced back to Perrig et al. [44]. Unfortunately, the scheme has a high computational cost. To accelerate the search, Lee et al. [45] implemented search encryption through hash tables. To make the application scene more flexible, a keyword search encryption scheme based on a public key was proposed in reference [46,47]. In order to make the search more secure, the authentication search encryption scheme was proposed in reference [48,49]. Further work was done in references [50,51]. In reference [50], the authorized keyword search was implemented through ABE technology with multi-keywords. The scheme presented in reference [51] can be applied to multi-user and multi-owner scenes; however, it is not suitable for dynamic network environments.

Preliminary
In this section, we mainly introduce the basic knowledge about attribute revocation and keyword search.

Access Control Structure
The "AND gate" access structure [52] is described as follows: Let S = (x 1 , x 2 , . . . , x n ) represent an attribute list of a user. Let W = (w 1 , w 2 , . . . , w n ) represent an access policy. The attributes satisfy the access control structure, if and only if x i = w i , i ∈ [1, . . . , n]. Because the access control structure and attribute set have the same structure, when uploading ciphertext, there is no need to upload the control structure. So, the hidden policy can be achieved.

Multilinear Maps
The concept of multilinear mapping was first proposed by Boneh and Silverberg, as the following [53]. First, run Γ(1 λ , n) to get G = (<G 1 >, . . . ,<G n >), where λ is a security parameter. The description of the prime number group, G i , whose order is p > 2 λ and contains the generator, g i , of G i , is expressed by < G i >. A series of linear maps, {e i,j : G i × G j |i, j ≥ 1; i + j ≤ n}, are defined as follows: We simplify the description as e(g u i , g v j ) = g uv i+j .

Subset Cover
First, we introduce the full binary tree T of depth d, in which two functions depth(x) and path(x) are involved. Both depth(x) and path(x) take node x as the input. The function depth(x) takes the depth of node x as the output. The function path(x) takes the path from the roo,t P x,0 = root, to the node, P x,denpth(x) = x, as the output. The use of subset cover theorem to solve the user revocation was referred to by Naor et al. [54]. Let the leaf node express the user in the system. For a set of revoked users, R, we can get all paths, {path(x)} ∀x∈R , of the revocation node x ∈ R. The cover(R) is the smallest set that can cover the unmarked nodes. For ease of understanding, we give a simple example, shown in Figure 1. Eight leaves x 8 , . . . , x 15 are contained in the full binary tree, T. If R = {x 8 , x 11 } is a revocation set. The paths of nodes x 8 and x 11 are path( respectively. The cover(R) set is {x 3 , x 9 , x 10 }. The non-revoked leaf nodes are covered by cover(R). Select v 0 , . . . , v n ∈ Z p . Compute g v 0 1 , . . . , g v n 1 . For any poly-time algorithm, it is difficult with non-negligible advantage to tell g ∏ j∈[0,..,n] v j n from a random element in G n . Please refer to [55] for more details.

Definition
In this section, we mainly introduce the deployment of the model, the definition of the scheme and the security model of the scheme.

Deployment
ABERS can be applied to real environments. The data sharing system is shown in Figure 2. It involves four entities: data owner, data user, attribute authority and cloud server. Now, we will introduce their specific functions and functions.

•
Data owner: The data owner is responsible for encrypting the data and generating the keyword index, I, and then uploading the ciphertext, CT, and keyword index, I. When the revocation list changes, the revocation list, R , is sent to the cloud server by the data owners. • Data user: When data users want to download data, they should first use their own private keys to generate a keyword trapdoor, T, and then send T to the cloud server to check it. If the request is legal, then the desired data CT can be obtained.
• Attribute authority: The attribute authority is responsible for managing all users in the system, initializing the system, publishing the system's public parameters, PK, and generating the secret key, SK, for the user.

•
Cloud server: The cloud server is responsible for storing the ciphertext of the data owner. When the data user sends the keyword trapdoor to the cloud server, the cloud server searches for it. If the file exists, it is returned to the data user. When the new revocation list is received from the data owner, the cloud server updates the ciphertext with the U pdata(R ) algorithm.

Cloud Service
Attribute Authority

Data Owner Data User
Upload T Figure 2. The data sharing system. CT is the ciphertext, I is the keyword index, R' is the revocation list, T is the keyword trapdoor and SK is the secret key.

Definition of the System Model
Our construction algorithm consists of the following eight algorithms. Setup(1 λ , d, I, U) → PK, MSK: The algorithm takes the security parameters, λ, the depth of the tree, d, the set of the user identity, I, and the collection of attributes, U, as inputs with the common system parameters, PK, and the main secret key, MSK, as the outputs.
Keygen(PK, MSK, S, id) → SK S : The algorithm uses PK, MSK, the user attribute, S, and the user identity, id, as inputs, with SK S as the output.
Encrypt(PK, M, W, R, w) → CT W,R , I ω : This algorithm uses PK, the message, M, an AND-gate access structure, W, a revocation list, R and the keyword, w, as inputs, with the ciphertext, CT W,R , and keyword index, I ω , as the outputs.
Trapdoor(SK S , w) → t ω : This algorithm takes the user's secret key, SK S , and a keyword, w, as inputs with a trapdoor, t ω , as the output.
Test(I ω , t ω ) → 0 or 1: This algorithm takes the keyword index, I ω , and a trapdoor, t ω , as inputs with a Boolean value, {0, 1}, as the output.
Decryption(PK, CT W,R , SK S ) → m or ⊥: This algorithm takes PP, CT W,R and SK S as inputs, with m or ⊥ as the output.
U pdate(CT W,R , R ) → CT W,R : This algorithm takes CT W,R and R as inputs with CT W,R as the output.

Definition of System Security
The adversaries against the ABERS scheme include unauthorized data users and revoked data users. For unauthorized users, their attributes do not satisfy the access control structure. For revoked data users, their identities are in the revocation list. Both of them try their best to get the information of the ciphertext. Their behavior also includes a secret key recovery attack. They want to get a private key from a keyword trapdoor. The concrete models are as follows: Indistinguishability against chosen plaintext attack (IND-CPA): This security game is defined as follows: In this game, the advantage of adversary A is defined as follows: If the advantage, Pr A , of any polynomial-time adversary A is negligible, then the ABERS scheme is selectively indistinguishable under the (d + 3)-MDDH assumption.

Indistinguishability against chosen keyword attack (IND-CKA):
This security game is defined as follows: In this game, the advantage of adversary A is defined as follows: In this game, the advantage of adversary A is defined as follows: If the advantage, Pr A , of any polynomial-time adversary, A, is negligible, then the ABERS scheme has selective security under the (d + 3)-MDDH assumption.

Data Sharing System
In this section, we mainly introduce the concrete scheme, which contains the following seven algorithms System initialization, User registration, Ciphertext upload, Trapdoor generation, Ciphertext retrieval, Ciphertext decryption and Ciphertext update. The attribute authority executes the System initialization algorithm to generate public parameters and a master key for the system. Next, a secret key is generated by the attribute authority by running the User registration algorithm for each legitimate user based on their attributes. After that, ciphertext generated by the Ciphertext upload algorithm based on the access control structure can be uploaded to the cloud server to share data. If a data user wants to use data that is shared by a data owner, he first generates a keyword trapdoor with the Trapdoor generation algorithm based on his private key and keyword and uploads the keyword trapdoor to the server. After receiving the request, the cloud server checks whether the ciphertext containing the keyword trapdoor exists by calling the Ciphertext retrieval algorithm. If it exists, the ciphertext is returned to the data user. Then, the data user can decrypt the information with the Ciphertext decryption algorithm if his attributes satisfy the access control structure. In addition, when the cloud service receives the new revocation list from the data owner, the server updates the ciphertext with the Ciphertext update algorithm. The concrete implementation is as follows:

User Registration
At the user registration stage, the interaction between the attribute authority and the system user is as shown Figure 3-when the attribute authority receives the user's attributes, S, and identity, id, the Keygen algorithm is called and returns the secret key, SK, to the system user safely.
The concrete algorithms are as follows: Suppose that the path of id is path(id) = {p id,0 , . . . , p id,d }, where p id,0 = root and p id,d = x. The algorithm sets P id,−1 = g a 1 . Then, it calls the following recursive algorithm: P id,j = e(H 2 (P id,j ), P id,j−1 ), for j ∈ [0, d], P id,j ∈ path(id). Then, for ∀x i ∈ S, it randomly selects r i ∈ Z p . In addition, a random number, r ∈ Z p , is selected. Finally, it calculates r = ∑ n i=1 r i ,

Identity id
Secret Key (SK) Attribute S Figure 3. User registration.

Ciphertext Uploading
At the ciphertext uploading phase, the interaction between the cloud server and the data owner is as shown as Figure 4: The data owner calls the Encryption algorithm and then uploads the ciphertext, CT, and keyword index, I, to the cloud server.

Trapdoor Generation
At the trapdoor generation phase, the interaction between the cloud server and the data user is as shown as Figure 5: The data user calls the algorithm Trapdoor, and then uploads the keyword trapdoor, T, to the cloud server. The data user generates the keyword trapdoor with the following formula: .
No information about w can be obtained from t ω .

Ciphertext Retrieval
The cloud server runs the Test algorithm according to the definition of the system model. It retrieves the file containing the keyword w with the following formula: When the equation is correct, it returns 1. The file exists on the cloud server. When the equation is wrong, it returns 0. The file does not exist on the cloud server.
The correctness of the phase Ciphertext retrieval is verified as follows:

Ciphertext Decryption
At the ciphertext decryption stage, the interaction between the cloud server and the data user is as shown as Figure 6: The data user calls the Decrypt algorithm. If the user is legal, the ciphertext will be deciphered.
The concrete algorithms are as follows: If ∃i ∈ [1, . . . , n] x i = W i , the attribute list S does not satisfy the access control structure. The algorithm returns ⊥. When id ∈ R, The algorithm outputs ⊥. Otherwise, it calculates the following process.
The algorithm sets P id,depth(x) = P x,depth(x) = C 2,x . Then, it calls the recursive algorithm P id,j = e(H 2 (P id,j ), P id,j−1 ) for j ∈ [depth(x i ) + 1, . . . , d]. The equation P id,d = P s id,d can be obtained. Then, it calculates e(K 0 , C 2 ) ∏ n i=1 e(K i ,C 1 ) Finally, the following formula is used to get the plaintext: The correctness of the Ciphertext decryption phase is verified as follows:

Ciphertext Update
When the revocation is changed, the ciphertext stored on the cloud server will be updated. The cloud server runs the U pdate algorithm according to the definition of the system model. It inputs a ciphertext, CT W,R , and a new revocation list, R , where R ⊂ R outputs the updated ciphertext, CT W,R .

Security Proof
Theorem 1. The ABERS scheme is the I ND-CPA security under (d + 3)-MDDH assumption in the random oracle model.
If the adversary, A, can break through our scheme with an advantage that we cannot ignore, a simulator, B, can call the Adversary, A, to break the (d + 3)-MDDH assumption.
Simulator B inputs the group parameters, (1 γ , n), and instantiates the (d + 3)-MDDH instance (g 1 , g a 0 1 , . . . , g a d+3 2 , Z). The game between the simulator B and the attacker A is as follows: Setup: Adversary A selects a revocation list, R * , and sends it to B. For each element, id ∈ R * , in the revocation list, R * , the simulator B sets P R * = {p id,i ∈ path(id)} id∈R * ,i∈[0,...,d] and the hash functions H 1 , H 2 are simulated as followed: • O H 1 : When H 1 is called by the adversary, A (or B), a random number, z i ∈ Z p , is selected (unless it has already been done), and the simulator returns g z i 1 as a response to H 1 (x i ). • O H 2 : When p id,i ∈ P R * , H 2 is called by the adversary, A (or B), and a random number, v id,i ∈ Z p , will be selected (if it has already been done, the same result will be returned), and the simulator returns g a i +v id,i 1 as a response to H 2 (p id,i ). • When p id,i / ∈ P R * , H 2 is called by the adversary, A (or B), a random number, v id,i ∈ Z p , will be selected (if it has already been done, the same result will be returned), and the simulator returns g v id,i 1 as a response to H 2 (p id,i ).
The challenger, B, randomly selects the random number, α, β, a ← Z p , and calculates g α d+3 , g β 1 , g a 1 and then returns (G, g α d+3 , g β 1 , g a 1 , O H 1 , O H 2 ) to A. Phase1&2: The adversary A makes the following enquiries to the challenger.

•
When id / ∈ R * , the enquiry is aborted.

•
When id ∈ R * , if A asks the challenger about the secret key of the user's identity, id, and attributes, S = (x 1 , x 2 , . . . , x n ), random numbers, r j ∈ Z p and r j i ∈ Z p ∀x i ∈ S, will be selected.
Then, the simulator B calculates The path of id is represented as path(id) = (p id,0 , p id,d ) and then H 2 (p id,i ) = g (a i +v id,i ) 1 . After that, by calling multi-linear maps on g b 1 , g a 0 +v id,d 1 , . . . , g a d +v id,d 1 and Finally, the secret key, {K 0 , K 1 , Challenge: The adversary A sends two messages, m * 0 , m * 1 (|m * 0 | = |m * 1 |), and a challenge access structure, W, to B, B randomly selects b ∈ {0, 1}, and the encryption process is as follows: . In addition, P x,d is generated according to the specified algorithm.
, A plays the security game with B. When Z is a random number in a group, G d+3 , the information that C 0 contains m * b is lost. Therefore, the simulator, B, can call the A to break the (d + 3)-MDDH assumption. Because the assumption is difficult, our scheme is secure.

Theorem 2.
Suppose q is a bound on the total number of group elements in the I NK-CKA security game. The advantage in this security game is O(q 2 /p).
Simulator B inputs the group parameters (1 γ , n) and instantiates the (d + 3)-MDDH instance (g 1 , g a 0 1 , . . . , g a d+3 2 , Z). The game between the simulator B and the attacker A is as follows: Setup: The hash function, H 1 , is simulated as follows: O H 1 : When H 1 is called by the adversary, A (or B), a random number, z i ∈ Z p , will be selected (unless it has already been done), and the simulator returns g z i 1 as a response to H 1 (x i ). The challenger, B, randomly selects the random number, α, β, a ← Z p , and calculates g α d+3 , g β 1 , g a 1 and then returns (G, g α d+3 , g β 1 , g a 1 , O H 1 ) to A. Phase1: The adversary, A, makes the following enquiries to the challenger. The adversary A asks for the keyword, w, connected with S = (x 1 , x 2 , . . . , x n ) and the user's identity, id, for B. The random numbers r j ∈ Z p and r j i ∈ Z p ∀x i ∈ S will be selected.
Then, the simulator, B, calculates Finally, the simulator B produces trapdoor t w as t w = e(K 3 , g w 1 ) = e(g β ∑ n i=1 z i 1 , g w 1 ). After that, the trapdoor t w is sent to A.
Challenge: The adversary, A, sends two keywords, w * 0 , w * 1 (|w * 0 | = |w * 1 |) to B. At the same time, the challenge access control structure, W, will also be sent. B randomly selects s, s ∈ Z p and b ∈ {0, 1}, and the encryption process is as follows: C 1,i = g z i s 1 ,C 1 = e(g β 1 , g w * b s 1 ),C 2 = g ss 1 . The challenge index, I * w , is sent to A.
Phase 2: This stage is the same as Phase 1, but there is the restriction that the trapdoors of generated attributes that satisfy the access control policy have not been queried before.
The Schwartz-Zipple lemma [56] points out that the probability of an "unexpected collision" occurring is, at most, O(q 2 /p). Theorem 3. The ABERS scheme achieves selective security on updated ciphertext under the (d + 3)-MDDH assumption in the random oracle model.
We can see that any polynomial time adversary can not learn any information from the original ciphertext under Theorem 1. The key to proving Theorem 3 is determining whether the original ciphertext is distinguishable from the updated ciphertext. Now let us take a look at whether the original ciphertext and the updated ciphertext generated by the same message, the attribute set, S, and the revocation list, R , are uniformly distributed.
The original ciphertext generated by calling Encrypt(PP, M, W, R , w) is . The original ciphertext generated by calling Encrypt(PP, M, W, R, w) is . The updated ciphertext generated by calling U pdate(CT R , R ) is where C 0 = M · g α·s * d+3 , C 1 = g s * 1 , C 2 = g βs 1 , C 1,i = H 1 (W i ) s * and C 2,i = P s * x,depth(x) for ∀id ∈ (Cover(R) Cover(R )), C 2,i = C 2,i = P s * x,depth(x) , and ∀id ∈ (Cover(R ) − Cover(R)), C 2,i = P s * x,depth(x) . The original ciphertext and the updated ciphertext have the same terms, and each term is blinded by random numbers. Therefore, the original ciphertext and the updated ciphertext have the same distribution. At this point, similar to the analysis in [43], if the adversary, A, can break through our scheme, the simulator will be able to break the (d + 3)-MDDH assumption.

Comparison
In this section, we compare our scheme with some related schemes. We have chosen several representative solutions related to the keyword search of ciphertext [42,52,57] and direct revocation [43,57,58]. The results of the comparison are shown in Table 1. Table 1 compares the functional differences between our schemes and related schemes from the perspective of keyword search, fast keyword search, direct revocation, hidden policy, communication overhead and storage overhead. Compared with other schemes, our scheme has better function. It is more accurate than the scheme [52]. The communication cost of the keyword trapdoor is the same, but the functioning of our scheme is greater. Compared with other schemes, the storage cost of our scheme is not very large.
Next, we compare the efficiency of the keyword search. In order to exclude other sources of interference and to make the result more accurate, we tested the schemes on the same platform, and the test results are shown in Figure 7. Figure 7 compares our scheme's search efficiency with refs. [42,52,57]. We can see that, compared with schemes [42] and [57], the keyword search efficiency in our scheme is very high. The search time cost does not increase linearly with the number of attributes in ciphertext policies, which is not enabled in [42,57]. This is because our search scheme uses aggregated search key technology without pairing the secret key components with the corresponding ciphertext components. In the process of keyword trapdoor generation, only one linear pair operation is needed. In the process of ciphertext retrieval, by comparing whether the results of two pairs of linear pairs are equal, we can determine whether the required ciphertext exists. Although our scheme has the same efficiency in the search phase as that shown in reference [52], our scheme is more functional. From the point of view of function and efficiency, our scheme is more applicable to the practical environment. (resp. ×) represents the corresponding feature is (resp. is not) achieved in the scheme. KS means keyword search, FKS means fast keyword search, DR means direct revocation, HP means hidden policy, CO means communication overhead and SO means storage sverhead. |S| means the number of user attributes, |Z| means the bit length of an element of Z p , |G| means the bit length of an element of G i , |I| means the bit length of user ID, |L| means the number of rows of the access control matrix, |P| means the number of columns of the access control structure, |C| means the cardinality of cover(R), |R| means the cardinality of a revocation list, |M| means the maximum number of revoked users and |N| means the number of keywords.

Conclusions and Future Work
In this article, we have put forward a hidden policy attribute-based data sharing scheme with direct revocation and keyword search. The scheme has the following advantages. First, it uses subset covering theorem to achieve the direct revocation of attributes. After revocation, there is no need to update the private key of a non-revoked user. In order to ensure that the users who have been revoked cannot decrypt the previous ciphertext, the ciphertext is updated. In this way, some secret keys do not match some ciphertext, and users who are revoked can not decrypt the previous ciphertext. In addition, when there is a user leaving the system, we just need to send the revocation list to the cloud server and let the cloud server update the ciphertext. Then, the private key of the non-revoked user does not need to be updated. Second, we use aggregation technology to achieve the fast search of keywords. In the process of keyword trapdoor generation, only one linear pair operation is needed. In the process of ciphertext retrieval, by comparing whether the results of two pairs of linear pairs are equal, we can determine whether the required ciphertext exists. So, the keyword search time is constant and does not increase with the number of attributes. Third, the AND gate access control structure is used to achieve the hidden policy. When ciphertext is uploaded, the access control structure does not need to be uploaded. Thus, the function of the hidden policy can be achieved. In brief, when a lot of data is being shared, our solution can provide a good solution.
When a user leaves the system, the user needs to interact with the cloud server, and then, the server updates the ciphertext. This not only increases the cost of communication and computing, but the revoked user can decrypt the former ciphertext before the ciphertext is updated which is a threat to the security of the system. If there is no need to update the ciphertext, the revoked user will not be able to decrypt the ciphertext at the moment of revocation. So, in future work, we will solve the problem of how to ensure that the user can not decrypt the previous ciphertext without updating the ciphertext.