1.
Introduction
With the development of the internet of things [1], artificial intelligence [2] and cloud computing [3], more and more people use cloud storage servers to store large amounts of data. But these servers are untrustworthy, and information security has higher requirements in the new environment. Therefore, scholars have proposed an encryption and decryption system based on attribute: attribute-based encryption (ABE). It uses the access structure associated with the user attribute to decrypt the ciphertext if and only if the user's own attributes satisfy the access policy. Subsequently, more flexible key policy attribute-based encryption (KP-ABE) and CP-ABE schemes were proposed. Considering the actual application scenarios, our scheme is based on CP-ABE.
In many systems that use CP-ABE, it is required to be able to flexibly add or delete user rights. According to the basic characteristics of ABE, such an application scenario can be implemented by adding and revoking attributes of users. Since attribute revocation is more complicated than attribute addition and is more difficult to implement, the research focus is more on revocation. According to the method of revocation, the granularity of revocation will be different, and the efficiency of revocation will also be different. The scheme [4] only implements user revocation, and its application scenarios are bound to be limited. Some schemes have not updated the ciphertext after the revocation, such as [5], that is, the revocable storage isn't implemented. At this time, the system has a forward security problem. In the scheme of implementing revocable storage, there is a problem that the computational complexity becomes larger as the complexity of the scheme becomes larger. For example, in scheme [6], the operation complexity of decryption will increase linearly with the attribute or revocation events, and the operation cost in the later stage of the scheme is huge. After using outsourcing decryption technology to solve complex operations and make up for the lack of time, there is still a spatial problem. The ciphertext length in most schemes increases linearly with the complexity of the access policy, resulting in a huge communication cost in data sharing. In particular, the partial revocation method also causes the ciphertext length to increase linearly with the number of revocation events. What is more serious is that the partial access structure is not flexible enough, which causes the scheme to lose the basic characteristics of ABE-flexibility.
It can be seen that constructing an outsourcing decryption CP-ABE scheme with fine-grained revocable storage, flexible access structure and constant ciphertext length has fatal research significance.
1.1. Related work
Through the efforts of scholars, there have been a lot of achievements in the field of cryptography [7,8,9,10,11,12,13,14,15]. After the development of identity-based cryptography for a period, attribute-based cryptography was proposed based on the fuzzy identity-based encryption technology [16]. It uses the attribute sets to represent the users' identities. The encryptor only needs to specify some attributes of the decryptor and does not need to specify its specific identity, so the attribute-based encryption is suitable for scenarios where the decryption party is not fixed. In 2006, Goyal et al. [17] proposed key policy attribute-based encryption (KP-ABE). Its main idea is to add an access structure constructed from user attribute sets to the user's private key, if and only if the access structure in the private key is satisfied by the attribute set in the ciphertext, the ciphertext can be decrypted. In 2007, the ciphertext policy attribute-based encryption scheme corresponding to the KP-ABE scheme was proposed by Bethencourt et al. [18]. The user's attribute set is stored in the user's private key, and all users' attribute sets in the system are stored in the ciphertext together with the access structure constructed by the access rules. Decryption can only be performed when the user attribute satisfies the access structure in the ciphertext.
In recent years, there have been a lot of researches on ABE, such as ABE with AND-gates structure, revocation ABE, ABE with fixed length ciphertext and outsourcing decryption ABE, etc.
In the study of the AND-gates, Cheung and Newport [19] proposed a CP-ABE scheme that supports AND-gates on positive and negative attributes with wildcards (AND∗+,−), and proved its security under the standard model. Emura et al. [20] proposed the first ciphertext length constant CP-ABE scheme. However, the scheme only supports AND gates on positive and negative attributes (AND+,−), including the scheme of AND-gates on multi-valued attributes (ANDm) structure proposed later, which has serious drawbacks, that is, a user can decrypt the ciphertext if and only if the attributes in his private key are exactly the same as those contained in the ciphertext access structure, this has lost the basic principle of attribute-based encryption: one-to-many. Later, Nishide et al. [21] proposed AND∗m structure scheme, which greatly improved the flexibility of access. On this basis, Zhang et al. [6] realized the fixed ciphertext length and reduced the storage cost. Constant-size ciphertext is also one of the key directions of ABE research. In recent years, there have been many achievements such as [22,23,24,25,26].
In addition to the study of access structures, the attribute revocation mechanism is also critical in ABE. In recent years, scholars at home and abroad have proposed a series of attribute revocation schemes, which are divided into indirect revocation and direct revocation. Indirect revocation requires the authority to periodically update the key, while direct revocation puts the revocation information into the ciphertext at the time of encryption. The indirect revocation of attributes scheme was first proposed by Pirretti et al. [27], which sets an expiration date for each attribute, and the authority periodically updates the key, but it cannot suspend the validity period of the key at any time. In response to its related issues, Bethencourt et al. [18] proposed the idea of setting the attribute suspension date, but the solution authority still has a large workload. Later, Attrapadung et al. [28] divided the revocation mechanism into two types: direct revocation and indirect revocation. Then they proposed a hybrid revocation scheme. The encryption party chooses either of the two mechanisms for encryption, the user can use keys to decrypt ciphertexts of any types. Most of the direct revocation schemes use broadcast encryption technology such as [29,30,31]. In order to reduce the workload of the authorized organization, Yu et al. [5] use the version number to mark the key and ciphertext, and introduce the proxy server to combine the proxy re-encryption technology with CP-ABE, which greatly reduced the workload of the authorized organization and achieved attribute revocation under a smaller overhead. To solve the forward security problem, Sahai et al. [32] proposed the concept of revocable storage, that is, ciphertext update must be performed when the revocation occurs. The direct revocation scheme proposed by Zhang et al. [6] introduces the revocation auxiliary judgment function applicable to the multi-attribute environment to determine whether the ciphertext needs to be updated when the attribute revocation event occurs. Zhao et al. [4] use the Chinese remainder theorem to construct a direct revocation scheme with constant length of ciphertext and key. After the revocation, the purpose of revocation can be achieved by only updating the ciphertext.
Another drawback in ABE is that decryption operations are very expensive, so they are not suitable for resource-constrained devices. In order to improve the efficiency of the scheme, Green et al. [33] proposed a solution for outsourcing the computationally expensive decryption operation to the cloud server. The main solution is the user uses the proxy re-encryption method to obtain the conversion key, sends it and ciphertext to the third-party server. The server performs the decryption operation to obtain a simpler form ciphertext, and the user can recover the plaintext with only a small computational overhead. After that, scholars tried to use outsourcing algorithm at different stages of ABE, such as generating private key phase [34,35], encryption phase [36] and decryption phase [37,38]. However, a malicious third-party server may tamper the original ciphertext, and the user will not be aware of it. The security of most outsourcing solutions can only ensure that malicious cloud servers can't understand any information about encrypted messages, but it does not guarantee the correctness of their conversion operations. In order to solve this problem, Lai et al. [39] proposed a verifiable outsourcing decryption CP-ABE scheme to ensure the correctness of the conversion operation. Li et al. [34] also proposed an outsourcing decryption ABE scheme that effectively solves the verifiability.
This paper mainly studies efficient revocation schemes. In the existing revocation schemes, there are some defects in revocation granularity, storage consumption, etc., as shown in Table 1. [5] does not implement revocable storage and the access structure is only AND∗+,−, so its permissions are less flexible and users can illegally access the ciphertext which is encrypted before revocation. [6] contains a complex revocation algorithm and a decryption algorithm. For different types of ciphertexts, users divide them into 4 cases for revocation and decryption, which brings huge computational overhead to users. In scheme [32], revocation only reaches the user level, which cannot handle the requirement of flexible permission change. In summary, in the context of cloud storage, it is necessary to study more efficient and multi-functional revocation schemes.
1.2. Our contribution
In this paper, based on the study of revocable storage, ciphertext size and decryption efficiency, we propose a constant ciphertext length CP-ABE scheme with revocable storage and verifiable outsourcing decryption (RVOC-CP-ABE).
For the revocable storage problem, we improve the version numbering method which is based on proxy re-encryption to adapt to the characteristics of fixed-length ciphertext, and realize fine-grained attribute revocation and ciphertext update. If the user is the revocation target, cannot access the corresponding files, especially the encrypted files before revocation. In order to improve the decryption efficiency, we propose an outsourcing decryption mechanism, which can reduce the user's local computation and provide verification function to ensure decryption accuracy. Then, we combined the above two mechanisms to construct RVOC-CP-ABE scheme on the basis of AND∗m access structure which is more flexible than traditional And-gate. Our scheme ensures that the attribute permissions are correctly revoked while reducing the decryption complexity and storage complexity to a constant level. We further describe the cloud server architecture and data flow of the scheme, providing a complete and efficient solution for cloud storage security.
Finally, under the DBDH assumption, we prove RVOC-CP-ABE scheme can resist chosen plaintext attacks (CPA), and the performance comparison with similar schemes shows that the scheme is efficient and feasible.
1.3. Organization
The structure of this paper is as follows: Chapter 2 introduces the relevant theoretical knowledge used in this scheme; Chapter 3 will introduce the access structure used in this scheme, then introduce the design and security model of the scheme, and finally detail the implementation of the scheme. The fourth chapter will carry out security proof. The fifth chapter analyzes the performance of the scheme and compares it with similar schemes. Finally, the sixth chapter draws the conclusions of this program.
2.
Preliminaries
2.1. Bilinear map
Assuming two multiplicative cyclic groups G and Gt, They have the same prime number p. Then let g be a generator element of cyclic group G. e is an effective bilinear mapping from G to Gt: G × G → Gt. e satisfies the following three properties:
1. Bilinearity: ∀a,b∈ Zp, e(ga,gb)=e(g,g)ab.
2. Non-Degeneracy: ∃u,v∈ G, e(u,v)≠ 1.
3. Computability: ∀u,v∈ G, e(u,v) can be calculated effectively.
2.2. Complexity assumption
Let a,b,c,θ∈RZp. There isn't a polynomial-time algorithm probabilistic has non-negligible advantage to distinguish the DBDH-tuple [g,ga,gb,gc,gabc] from the random five-tuple [g,ga,gb,gc,gθ].
3.
Revocable and verifiable outsourcing CP-ABE with constant ciphertext length
In this chapter, we will detail RVOC-CP-ABE. The scheme uses AND∗m access structure to implement a fixed ciphertext length CP-ABE, which implements efficient revocable storage using version numbering method and proxy re-encryption, while outsourcing complex decryption calculations to a third-party server and verifying the decryption results. This chapter mainly has the following parts:
1. Introduce AND∗m access structure.
2. Show the basic design of this program.
3. Introduce the security model of this scheme.
4. Describe the specific implementation of this program.
3.1. AND-Gates on multi-valued attributes with wildcards
As mentioned earlier, the AND+,− and ANDm access strategies are too restrictive and should not be used. Compared with AND∗m and AND∗+,−, the same access strategy using AND∗m expression is much simpler than using AND∗+,− expression.
Now assume there is an attribute set as shown in the table 2, using AND∗+,− to indicate the access policy:
The w+ represents the attribute in the access policy, the w− represents the access policy not have the attribute, and the wildcard w∗ represents no effect on the attribute. Using AND∗m to indicate the access policy:
Each of these is the value of the corresponding attribute, and the wildcard means that the attribute has no effect. Through the above comparison, it is obvious that the access strategy AND∗m is simple and clear, so this paper adopts this structure.
Given a list of attributes L and an access policy W, L|=W means that L matches W, and L|≠W means that the two do not match. Given a list of attributes L=[L1,L2,...,Ln] and access policy W=[W1,W2,...,Wn]=∧i∈IWWi. For 1⩽i⩽n, if Li=Wi or Wi=∗, then L|=W, otherwise L≠W. Where IW={i|1⩽i⩽n,Wi≠∗} is a subscript index set, which clarifies the attributes of non-wildcards that appear in W. In the calculation, only the values corresponding to these subscripts are taken for calculation (IL also take these indices to calculate). And does not appear in W the attribute is represented as a wildcard ∗, and whether the user has the corresponding attribute does not affect its decryption ability.
3.2. Scheme design idea
This scheme implements revocable storage and outsourcing decryption, so compared to the general CP-ABE, it will use two more servers: the revocation server and the outsourcing decryption server. The revocation server also completes the function of proxy re-encryption and updates the ciphertext after the revocation occurs. In this scheme, the users whose key needs to be updated does not need to send the decryption key information in the key to the revocation server, and only needs to exchange the irrelevant part, then they can decrypt the new ciphertext correctly, which is safer than the scheme [5]. Our scheme uses the version number to mark the ciphertext and key to complete the revocation. Therefore, the version number of each part should be consistent with the system version number. If it is inconsistent, the key or ciphertext should obtain the revocation related information from the revocation server to update the version to the latest. RVOC-CP-ABE requires the following six participants: data encryptor (DE), data decryptor (DD), authority center (AC), data storage server (DSS), revocation server (RS), and outsourcing decryption server (ODS).
● Data Encryptor (DE): The data encryptor is the user who owns the original plaintext. Considering the advantages of mixed encryption, it encrypts the plaintext with a symmetric key. Then it requests AC to obtain the system public key, and encrypts the symmetric key using the public key and the access policy, and then stores the ciphertexts to DSS.
● Data Decryptor (DD): The data decryptor is the user who accesses the system to obtain the plaintext. The user obtains the private key corresponding to the attribute from AC, and then converts the private key, sends the conversion key and the ciphertext to ODS, and the returned converted ciphertext is further decrypted to obtain the symmetric key, finally, the symmetric decryption is performed to obtain the plaintext. If the user finds that the private key version is inconsistent with the system version, the user should obtain the latest version of the revocation key from the RS, which is independent of the decryption key information in the private key.
● Authority Center (AC): The Authority center is a fully trusted server that initializes the scheme system to generate the system's public key and master secret key. Provide user registration function and generate a decryption private key for DD by the master secret key and user attributes.
● Data Storage Server (DSS): The data storage server is used to store the ciphertext encrypted by DE. Because it is a cloud server, it can easily expand its storage capacity and it is also an untrusted third-party server. All information should be encrypted when stored in it. When the version number of the ciphertext which is accessed is inconsistent with the system version number, DSS is responsible for passing the old version of the ciphertext to RS for re-encryption to complete the ciphertext update after the revocation is completed.
● Revocation Server (RS): The revocation server mainly stores the relevant information of the revocation: the re-encryption parameter table and the attribute revocation table. When the system revokes some users' attributes, RS is responsible for generating a new version of the revocation parameters and promoting the system version. After the storage server sends the low version ciphertext to RS, the server uses the re-encryption parameter table to re-encrypt the old version ciphertext, thereby implementing the ciphertext update and completing the revocable storage. When the user sends the low version revocation key to RS, the server uses the re-encryption parameter table and the attribute revocation table to calculate a new revocation key and return. In this scheme, if there are multiple revocation versions, ciphertexts and revocation keys of them can be updated in one time, which greatly reduces the resource overhead of re-encryption.
● Outsourcing Decryption Server (ODS): Due to the complex ABE decryption calculation, this scheme puts the most complicated part of the decryption process into the outsourcing decryption server. Because the user passes the blinded conversion key to the three-party server during decryption, it overcomes the untrustworthy problem of outsourcing decryption. After the complicated bilinear calculation, ODS only obtains the intermediate ciphertext.
The program also adds decryption verification to ensure that revocation and outsourcing are performed correctly. The framework of RVOC-CP-ABE scheme is shown as Figure 1. The Authority Center initializes the system to generate the public key (PK) and master secret key (MSK). The data encryptor first performs symmetric encryption, then obtains the PK from AC, generates the ciphertext in combination with AND∗m access policy and the symmetric key, and stores the ciphertexts in the data storage server. The data decryptor obtains the private key (SK) corresponding to the own attributes from the AC, blinds it into a conversion key, and sends the conversion key and ciphertext to the outsourcing decryption server. The server performs complex operations of decryption to obtain the converted ciphertext and return it to DD. The decryptor first performs preliminary verification on the converted ciphertext, then performs a simple operation to obtain the symmetric key, and verifies the symmetric key. If the verification passes, symmetric decryption is performed to obtain plaintext. If the SK or ciphertext is inconsistent with the system version during the decryption process, the corresponding update is performed by RS.
According to the above process, the RVOC-CP-ABE algorithm is mainly divided into eight parts, namely: initialization algorithm Setup, key generation algorithm KeyGen, encryption algorithm Enc, pre-decryption algorithm Dec−Pre, decryption algorithm Dec, re-encryption parameter algorithm ReParam, re-encryption ciphertext algorithm ReEnc, re-encryption key algorithm ReKey. The latter three mainly occurred after the revocation event.
1. Setup(1λ)→(ver,PK,MSK): AC runs the system initialization algorithm, taking the security parameter λ as input, and outputs the system's PK and MSK. The authority center will publicize the PK and save the MSK safely.
2. KeyGen(PK,MSK,L)→(SK): The key generation algorithm is also run by AC. DD submits its attribute list L to AC. The server uses PK, MSK and L to generate the corresponding user private key SK.
3. Enc(PK,M,W)→(CT,E(M)): The encryption algorithm is run by DE. The algorithm first uses the symmetric key ck to encrypt the plaintext M to generate the symmetric ciphertext E(M), then inputs the system's PK, the symmetric key ck, and the access policy W, outputs the corresponding ciphertext CT, then saves the CT and E(M) to DSS.
4. Dec-Pre(CT,PK,SK)→(CT′): The pre-decryption algorithm is mainly to perform outsourcing decryption operations. DD obtains the CT, and then uses the blind parameter z to blindly encrypt the own key SK to obtain the conversion key TK, then sends (CT,TK) to ODS for outsourcing decryption, and returns the intermediate ciphertext CT′.
5. Dec(CT′,z,E(M))→(M): After DD obtains the intermediate ciphertext, it uses CT′ and the blind parameter z to obtain the symmetric key ck, then verifies the decryption result. If the decryption succeeds, the symmetric decryption is continued to obtain the plaintext M.
6. ReParam(μ,IDs): After the attribute revocation occurs in the system, RS obtains the attribute set μ that needs to be updated and its corresponding revocation user set IDs to perform system version upgrade, and generates a new version of the re-encryption parameter and the attribute revocation information.
7. ReEnc(CT)→(¯CT): DSS can check the ciphertext version when a DD accesses the ciphertext. If the version is not up-to-date, the ciphertext CT is sent to RS for ciphertext re-encryption to obtain the latest version of the ciphertext ¯CT.
8. ReKey(SK)→(¯SK): After obtaining the ciphertext CT, DD finds the version of its private key SK is inconsistent with CT's version, then DD sends its old version revocation key (a part of SK) to RS. RS checks whether it has the revocation attribute according to the user ID, and only updates the parameters corresponding to the unrevoked attributes of the user. After the user gets the new version revocation key, update SK to ¯SK.
3.3. Security model
This scheme mainly needs the following aspects of security: ciphertext security, outsourcing decryption computing security, and security of revocation algorithm. The CP-ABE encryption system guarantees the security of ciphertext storage, and unauthorized users cannot successfully decrypt and obtain ciphertext. When the scheme performs the outsourcing decryption algorithm, the user needs to blind the key before sending it to the third-party server, so the security can be converted into the security of the scheme algorithm. On the other hand, the revocable storage of this scheme is implemented by the revocation server, it mainly generates new re-encryption parameters for different versions. Although the server directly updates the ciphertext, it only updates revocation key of the user's private key, does not involve the key part of decryption in the private key, so its security can also be transferred to the security of the scheme.
For the above security issues, this paper considers the indistinguishability under chosen plaintext attack (IND-CPA), which is simulated by a security game containing adversary A and challenger C. The process is as follows:
1. Initialization: Adversary A will select the access structure W∗ and a version number ver∗ used in the game and send them to challenger C.
2. Setup: C runs the Setup algorithm in this scheme to initialize the system, create the system's public key PK and master secret key MSK, and run ReParam algorithm to upgrade the system version from 1 to ver∗. Finally, PK is sent to A.
3. Phase 1: A can randomly select the attribute set S={S1,S2,...,Sn} from the all attributes set, S is limited to not satisfy W∗. A sends S to C query for private key. C calculates the private key SK corresponding to ver = 1 by running the calculation, and then returns SK to the adversary. A runs ReKey algorithm and raises the private key version to the ver∗ version.
4. Challenge: A selects two challenged plaintexts M0,M1 and sends them to C. C randomly selects a number b from {0, 1} then uses Mb as plaintext, inputs Mb, PK and W∗ to the encryption algorithm to calculate the corresponding ciphertext CTb. After completing the above operation, C runs ReEnc algorithm updates CTb to ¯CTb which version is ver∗, then returns the ciphertext ¯CTb to A.
5. Phase 2: A repeats the same query as Phase 1.
6. Guess: A guesses b′ that b′ belongs to {0, 1}. If b′=b then A wins this safe game. The probability of A winning a safe game in this game is defined as follows:
If polynomial time adversary A has no probability to break the security game with a non-negligible advantage, then the adversary has no advantage, and it can be theoretically shown that RVOC-CP-ABE is safe.
3.4. Scheme realization
This section will give a concrete implementation of the revocation algorithm, the outsourcing decryption algorithm, and the basic CP-ABE scheme.
Let G and Gt be two multiplicative cyclic groups with the order is a large prime p, g is a generator of G, and map e:G×G→Gt is a bilinear map. Suppose that the attribute domain of the system has a total of n attributes, and its attribute set is recorded as U={u1,u2,...,un}, each attribute has multiple values, and the i-th attribute ui has ni values. The corresponding set of values is denoted as Vi={vi,1,vi,2,...,vi,ni}. H:Gt→Z∗p is a collision-resistant hash function.
1. Setup(1λ)→(ver,PK,MSK): The authority center runs the Setup algorithm to initialize the system. Select u,v,d∈G,xi,j,yi,j∈RZ∗p(i∈[1,n],j∈[1,ni]). Then initialize the system version initial value ver = 1, generate the public key and the master secret key of system as follows:
2. KeyGen(PK,MSK,L)→(SK): The user with the attribute list L=[L1,L2,...,Ln] applies for the attribute private key from the authority center. Let Li=vi,j, the authority center first selects a random number r∈RZ∗p, the revocation key is ¯RK(1)i=1,1⩽i⩽n, ¯RK(k)i represents i-th attribute Li corresponding to the k version of the revocation key, then calculates as follows:
So the user private key SK is:
3. Enc(PK,M,W)→(CT,E(M)): First, the symmetric key ck is selected to symmetrically encrypt the plaintext M to generate the ciphertext E(M), then input public key PK, symmetric key ck and access policy W. Let ver=1,W=∧IWWi,Wi=vi,j, then the data encryptor selects a random number s∈RZ∗p, calculates as follows:
Due to the need of verification function, the encryptor continues to select s′∈RZ∗p,~ck, then calculates:
Therefore, the output ciphertext is CT=(ver,W,ˆC,C0,C1,C2,C′0,C′1,C′2).
4. Dec-Pre(CT,PK,SK)→(CT′): First, the user obtains the ciphertext CT from the data storage server. The data storage center detects whether the ver in the ciphertext is consistent with the system version number. If the inconsistency occurs, the server executes the ReEnc algorithm to obtain the new version of the ciphertext. After obtaining the ciphertext, the user checks whether the ver of SK is consistent with the ver in the obtained CT. If not, the ReKey algorithm is executed to obtain a new revocation key. If they are consistent, the user generates a conversion key for outsourcing computing, chooses an outsourcing parameter z∈RZ∗p and save it, then calculates:
Then the user send (CT,TK) to outsourcing decryption server for outsourcing decryption operation. If the ver in the TK is inconsistent with the ver in the CT, the server directly suspends the operation and returns the decryption failure. Check user's attribute set L and the access policy W in ciphertext, If L|≠W, return decryption failed. Otherwise, the version number is the same and L=W, calculate ¯RK=∏i∈IL¯RK(ver)i. Assuming this is the decryption process of ver = 1, so ¯RK = 1, then doing the following calculation:
The conversion ciphertext CT′=(ˆT=ˆC,T0=C0,T′0=C′0,T′,T″,¯RK) is returned to the data decryptor.
5. Dec(CT′,z,E(M))→(M): The user first checks whether part of the information in the converted ciphertext is consistent with the ciphertext: ˆT=ˆC,T0=C0,T′0=C′0, and if there is an inequality, the decryption is aborted. After verification, first assuming this is the decryption process of ver = 1, then ¯RK = 1, the decryption process is as follows:
Then verify: ˆT=uH(ck)vH(~ck)d. If the equation is true, then use ck to symmetric decrypt E(M) to get the message M, otherwise the decryption fails.
6. ReParam(μ,IDs): Run this algorithm when the system has an attribute revocation. Input the attribute set μ that needs to be updated and the revocation user set IDs corresponding to each attribute. We use rk(k)i,j represent re-encryption parameter of attribute vi,j in the k-th version. In the new version ver+1, the re-encryption parameter rk(ver+1)i,j is selected for each attribute. If the revocation attribute is va,b, then rk(ver+1)a,b∈RZ∗p,rk(ver+1)(i,j)≠(a,b)=1, that is, the non-revoked attribute re-encryption parameter is 1. The revocation server maintains two tables: the re-encryption parameter table and the attribute revocation table. Each time a revocation occurs, the system increments ver by 1. The re-encryption parameter table records the new version corresponding to the re-encryption parameters, as shown in the Table 3.
At the same time, save the user ID of each revocation attribute according to IDs, as shown in Table 4. According to the table, only the unrevoked attributes are re-encrypted when the relevant user performs key re-encryption.
7. ReEnc(CT)→(¯CT): The system after a revocation, does not need to update the ciphertext immediately. When a user accesses a ciphertext with an unupgraded version, the data storage server sends the ciphertext to the revocation server and updates the ciphertext multiple versions at a time. Assuming the old ciphertext differ with the latest version of the k version, first calculate based on the attributes contained in the access structure in the ciphertext:
Then calculate:
Return new ciphertext ¯CT=(ver+k,W,ˆC,¯C0,C1,¯C2,¯C′0,C1,¯C′2).
8. ReKey(SK)→(¯SK): When the user accesses the ciphertext and finds that the version number ver in SK is not equal to that in the ciphertext. Assuming there is a difference of k versions between the two, the user sends (ver,L,{¯RK(ver)i}1⩽i⩽n) to the revocation server to obtain a new revocation key{¯RK(ver+k)i}. Here we can see that the revocation server gets only the insignificant private key information, not the core decryption parameters. The revocation server first determines whether there is an attribute of the user that is revoked according to the user's ID. If there is, the re-encryption parameter of the attribute is not included in the calculation, and IR is set to the attribute set that the user is revoked, and the following calculation is performed:
The revocation ¯RK(ver+k)i of the user's revoked attribute remains the original value, finally return (ver+k,{¯RK(ver+k)i}1⩽i⩽n). The user updates SK to ¯SK=(ver+k,L,K,{Ki}1⩽i⩽n,¯RK(ver+k)i1⩽i⩽n).
To facilitate understanding, a specific revocation example is used to illustrate the process of the revocation algorithm and its correctness.
Now assume that the first time the user is revoked attribute v1,2, the second time the user is revoked attribute v1,2,v2,3, the system version is from 1 to 3, and the ciphertext containing these two attributes is re-encrypted as follows:
Other attributes are not revoked, rk(2)i,j≠(1,2)=1, rk(3)i,j≠(1,2),(2,3)=1, so ¯RKW=rk(2)(1,2)rk(3)(1,2)rk(3)(2,3), output new ciphertext ¯CT like the result of ReEnc algorithm.
A user with the v1,2,v2,3 attributes and version number 1 accesses the above ciphertext, uses the Rey algorithm to calculate:
Because of ¯RK(1)1=1,¯RK(1)2=1,rk(2)2,3=1,¯RK(3)i≠1,2=1, get the value of the revocation key ¯RK(3)1=rk(2)1,2×rk(3)1,2,¯RK(3)2=rk(3)2,3.
Then the outsourcing decryption operation as follows:
Finally, the user local Calculation as follows:
Then verify ˆT=uH(ck)vH(~ck)d, if the equation is true, then use ck to symmetric decrypt E(M) to get the message M, otherwise the decryption fails. If the user has the attribute revoked, then ¯RK≠¯RKW, so it can't get the correct plaintext.
4.
Security analysis
In this section, it will be demonstrated that the scheme RVOC-CP-ABE is CPA-safe under the DBDH assumption.
Theorem 1. If an adversary A wins the IND-CPA game with a non-negligible advantage ε, then there is a challenger C to solve the decision bilinear Diffie-Hellman problem with the advantage ε2.
Proof. In the CPA game, the challenger C selects two multiplicative cyclic groups G and Gt of the order p, g is the generator of G, mapping e, hash function H, and a,b,c∈RZ∗p. C throws one coin σ, if σ=0, then set z=abc, if σ=1, then set z∈RZ∗p. C has a five-tuple (g,A,B,C,Z)=(g,ga,gb,gc,e(g,g)z), then simulates the IND-CPA security game as follows.
● Initialization. The adversary A generates a challenge access policy W∗=∧i∈IW∗Wi, IW∗={i1,i2,...,im}(m<n) represents the subscript set of attributes which are not wildcards in the access policy W∗. Then A generates a version number ver∗(ver∗⩾1), and sends W∗ and ver∗ to C.
● Setup. C runs the Setup algorithm of the scheme to calculate PK and MSK. For each i∈U,j∈Ui(U={U1,U2,⋯,Un} is a set of all attributes in system), select a random number ∂i,j∈RZ∗p, calculate Xi,j=g−∂i,j,Yi,j=e(B,X−1i,j)=e(g,g)b∂i,j(1⩽i⩽n,1⩽j⩽ni), and return PK to A. Then, C runs the ReParam algorithm to simulate the upgrade of ver∗−1 versions. For the k-th version, set rk(k)i,j∈RZ∗p if the attribute is revoked, if not rk(k)i,j=1.
● Phase 1. A selects a set of attributes L={L1,L2,..Ln},L⊆U,Li=vi,j, but L does not satisfy W∗. A sends L to C for private key query. C selects δ∈RZ∗p, performs calculation Ki=g(b+δ)∂i,j,K=gδ,ver=1, the revocation key ¯RK(1)i=1,1⩽i⩽n. C returns SK to A, A can choose to update the key, that is, run the ReKey algorithm, send parameters (ver=1,L,{¯RK(1)i}1⩽i⩽n) to C. C calculates ¯RK(ver∗)i=¯RK(1)i×∏ver∗h=2rk(h)i,j according to L,ver∗ and user ID. After completion, A has the latest version of the key.
● Challenge. A submits two equal-length messages M0 and M1 to C, the challenger chooses b∈R{0,1} and calculates C0=MbYcW∗,C1=gc,C2=XcW∗. Let ∑i∈IW∗∂i=a+η, there is
Then C runs the ReEnc algorithm on CT, updates it to the latest version ver∗, and returns ¯CT to A.
● Phase 2. A repeats the same query as Phase 1.
● Guess. A outputs a guess b′∈{0,1}, if b′=b, C will output σ′=0, this means (g,A,B,C,Z) is a valid DBDH group. Otherwise, C corresponds to output σ′=1, where z is a random number, indicating a random five-tuple.
If Z=e(g,g)abc, A gains a valid ciphertext, its advantage is:
If Z=R, the ciphertext is completely random to A, its advantage is:
Finally, the simulator's advantage in this game is described as follows:
5.
Performance analysis
This chapter mainly analyzes the performance of the RVOC-CP-ABE scheme through theoretical analysis and experimental simulation.
5.1. Theoretical analysis
Scholars have done a lot of research on the fixed ciphertext length CP-ABE and the CP-ABE that supports revocable storage. We compare the new scheme with other related schemes. As shown in Table 5 and Table 6, the main comparison indicators are ciphertext length |CT|, users' attribute private key size |SK|, decryption cost and implementation function. |G| and |Gt| in the table represent the bit length of one element in the groups G and Gt, n represents the number of attributes contained in the attribute field. For the convenience of comparison, only the bilinear operation and the exponential operation in the decryption algorithm are included in the comparison range, TGt represents the exponential operation time in the group Gt, and Te represents the bilinear operation time.
It can be seen from Table 5 that because our scheme achieves the constant ciphertext length, the ciphertext length is only 5|G|+2|Gt|. Compared with the scheme [5] that implements the version numbering revocation algorithm and the scheme for implementing verifiable outsourcing decryption [39], the ciphertext length does not increase as the number of attributes in the access policy increases. Scheme [20] has a private key length of only 2|G| because of its special access policy. To implement a flexible access policy, the private key will grow linearly with the number of user attributes n increasing. From the perspective of the decryption cost, our scheme will hand over the complex bilinear part which will dynamic change with the attribute set to the outsourcing decryption server, local only requires simple operations 4TGt, so the data decryptor's operation and the decryption complexity will be dramatically decreased compared to the schemes [32] [5] and [6] which is affected by the number of revocation.
The AND-gates on positive and negative attributes with wildcards access policy of the scheme [5] and the AND-gates on multi-valued attributes access policy of the scheme [20] are not flexible enough. This scheme realizes the more flexible AND-gates on multi-valued attributes with wildcards access policy. Compared with the scheme [6], this scheme not only realizes the outsourcing decryption but also uses relatively simple revocation algorithm. The revocation algorithm of scheme [6] divides the ciphertext into four types of storage, its decryption algorithm also has four corresponding types, and also stores more revocation parameters, which increases the complexity of the scheme. [32] is the first scheme to propose the concept of revocable storage. It combines the nature of the "ciphertext proxy" to directly update the ciphertext when the revocation occurs. Although the revocation algorithm of this scheme refers to scheme [5], [5] does not implement revocable storage, and there are certain security problems. Our scheme also updates the core parameters of ciphertext in the revocation process while realizing the constant ciphertext length to ensure the accuracy of the revocation. Scheme [4] also implements revocable storage. Its ciphertext and key are fixed length, but its revocation granularity only reaches user revocation, our scheme reaches attribute revocation which is the finest granularity. Although our scheme implements indirect revocation, multiple revocations can be completed with only one update, which greatly reduces the overhead of updating ciphertext and private key. So our solution is more suitable for the actual scene.
In general, other schemes have more or fewer problems in implementing the related functions of attribute-based encryption. Our scheme reduces storage cost and operation complexity while solving their shortcomings.
5.2. Experimental simulation
In order to verify the theoretical analysis of the previous section, we use the PBC library developed in C language to simulate the scheme and other schemes. The experimental computer configuration is as follows: Intel i7-7700 processor, 8GB memory and 3.60GHz.
To show the comparison results more clearly, in the figure, we call [5] as Yu's Scheme, [4] as Zhao's Scheme, [6] as Zhang's Scheme, [39] as Lai's Scheme.
First, we simulated the ciphertext size, as shown in Figure 2. From the storage situation of the scheme [39] [5], the ciphertext size increases linearly with the number of attributes. When the number of attributes is 20, the ciphertext size will reach 8KB. However, the encryption method of our scheme will fix the ciphertext length, which will only occupy 0.4KB. Whether encrypting 1 attribute or multiple attributes, although the encryption complexity will be different (since encryption will only be done once, we don't consider the encryption cost), the ciphertext obtained last is constant length.
Then we simulated the decryption, monitoring the decryption time of [5] [6] and our scheme, as shown in Figure 3. The scheme [6] is divided into four types of decryption, and user's decryption process is related to the revocation user set. We only include the simplest decryption method in the comparison and the actual decryption time of [6] should be more. Under the above conditions, the decryption time of [6] is similar to that of [5]. When the decryption involves 20 attributes, the decryption time is about 230ms. Since this solution implements complex computing outsourcing, the resource-consuming calculation steps are all calculated by the outsourcing server. We only need to perform a simple calculation on the intermediate ciphertext. In theory, only 4TGt is needed (if not verify part for 2TGt), and the index operation on the group Gt has less running time than the bilinear pairing operation, so the decryption calculation time of this scheme is only about 20ms which is similar to the scheme [20].
Next, we compared the ciphertext update time of [4], [6] and ours, as shown in Figure 3. We first fixed the total number of users in the system at 30, revoked 5 attributes each time, and observed the impact of the number of revoked users each time on the ciphertext update time. Obviously, the update time of all schemes is inversely proportional to the number of revoked users, because the more users involved in revoking attributes, the fewer relevant parameters of legitimate users that need to be updated. Since different revocation schemes adopt different methods, the space and time for the corresponding revocation are also different. As can be seen from the figure, the time consumption of our scheme is at a medium level. When there are 20 revoked users, the calculation time for updating the ciphertext is about 400ms. However, our solution does not need to update every time, it only updates the ciphertext when a user accesses a ciphertext with a new version, which also makes up for the drawback of time-consuming revocation.
It can be seen from the specific experimental data that this scheme has certain advantages in decryption calculation and data storage, and the consumption of updated ciphertext is at a medium level.
6.
Conclusion
In this paper, we propose a CP-ABE scheme for efficient revocable storage and verifiable outsourcing decryption. With our proposed scheme, the fine-grained attribute revocation is implemented by the version numbering method and the proxy re-encryption technology, while revocable storage ensures forward security of the system. Due to the features of lower storage overhead and fixed ciphertext length, our scheme is more suitable for cloud storage scenarios with multi-attribute and multi-user. Moreover, to reduce the cost of users' local decryption calculations, our scheme securely outsources complex operations to a powerful third-party server, and users only need to perform a small amount of calculation and verification to obtain the correct information. Performance analysis demonstrates that this scheme has improved in all aspects compared to similar schemes.
In future research, we will consider altering the access structure of this scheme, because the single AND-gate structure is still not flexible enough to satisfy more demanding access control strategies. With the development of technology, malicious attacks are becoming more and more unpredictable, so improving the security of the scheme is also an important research direction.
Acknowledgments
This work was supported in part by Sichuan science and technology project under Grant 2018GZ0236 and Grant 2017FZ0004.
Conflict of interest
The authors declare no conflict of interest.