Next Article in Journal
Lithium Titanate Battery Management System Based on MPPT and Four-Stage Charging Control for Photovoltaic Energy Storage
Previous Article in Journal
Formation of Micro- and Nano-Trenches on Epitaxial Graphene
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Unified Ciphertext-Policy Weighted Attribute-Based Encryption for Sharing Data in Cloud Computing

1
National Engineering Laboratory for Disaster Backup and Recovery, Information Security Center, School of Cyberspace Security, Beijing University of Posts and Telecommunications, Beijing 100876, China
2
Data61, CSIRO, Sydney, NSW 2122, Australia
3
Global Big Data Technologies Centre, University of Technology Sydney, Sydney, NSW 2007, Australia
*
Author to whom correspondence should be addressed.
Appl. Sci. 2018, 8(12), 2519; https://doi.org/10.3390/app8122519
Submission received: 6 November 2018 / Revised: 30 November 2018 / Accepted: 4 December 2018 / Published: 6 December 2018

Abstract

:
With the rapid development of cloud computing, it is playing an increasingly important role in data sharing. Meanwhile, attribute-based encryption (ABE) has been an effective way to share data securely in cloud computing. In real circumstances, there is often a mutual access sub-policy in different providers’ access policies, and the significance of each attribute is usual diverse. In this paper, a secure and efficient data-sharing scheme in cloud computing, which is called unified ciphertext-policy weighted attribute-based encryption (UCP-WABE), is proposed. The weighted attribute authority assigns weights to attributes depending on their importance. The mutual information extractor extracts the mutual access sub-policy and generates the mutual information. Thus, UCP-WABE lowers the total encryption time cost of multiple providers. We prove that UCP-WABE is selectively secure on the basis of the security of ciphertext-policy weighted attribute-based encryption (CP-WABE). Additionally, the results of the implementation shows that UCP-WABE is efficient in terms of time.

1. Introduction

As one of the most promising applications, cloud computing [1,2,3] provides a more efficient way for data sharing. It enables data providers to store their data remotely in a cloud, and once data consumers can access the cloud, they can access the data any time and anywhere. Despite cloud computing supplying great convenience for data sharing, it also brings the serious challenge of information security [4]. Massive data are stored in the cloud storage platforms, and the data often contain sensitive information, such as personal health records in the medical cloud [5,6,7] and banking transactions in the financial cloud [8,9,10]. An untrustworthy entity named the cloud service provider (CSP) runs the cloud storage platforms, and it may steal the sensitive information to make a profit. Therefore, how to enforce a secure and efficient data sharing in the cloud has attracted many scholars’ attention [11,12,13,14].
Attribute-based encryption (ABE) [15] is a widespread cryptographic technology to protect the security of data in cloud computing. Different from traditional public key encryption, ABE does not encrypt plaintexts for an explicit consumer. Consumers’ secret keys and ciphertexts are associated with a set of attributes or an access policy, respectively. A consumer can decrypt a ciphertext if and only if his/her secret key has a match with the ciphertext. Weighted attribute-based encryption [16,17,18,19,20,21] is a variant of ABE. It assigns different weights to attributes according to their importance. For example, we can give full professor and distinguished professor with weights one and two, denoted as “professor(1)” and “professor(2)”, respectively. This can avoid a very complicated access structure and improve the efficiency of the encryption in certain scenarios.

1.1. Problem Statement

In practical applications [7,22], different data providers share their own data with weighted access policies, and these policies may have a mutual sub-policy. A simple instance is given to elucidate this issue.
As illustrated in Figure 1, the data providers have data M 1 and M 2 to share separately. The weighted access policy of M 1 is Γ 1 {Attr3(3) AND (Attr1(2) AND Attr2(3))}. The weighted access policy of M 2 is Γ 2 {Attr4(2) AND (Attr1(2) AND Attr2(3))}. We notice that there is a mutual sub-policy {Attr1(2) AND Attr2(3)} between Γ 1 and Γ 2 , and this means that the encryptions of M 1 and M 2 have some processes of repetition. This provides the possibility of improving the efficiency of the data sharing.

1.2. Our Contributions

In this paper, we propose a new data-sharing scheme, which is called unified ciphertext-policy weighted attribute-based encryption (UCP-WABE), in cloud computing. UCP-WABE achieves both security and high performance. In this scheme, every attribute has its own weight depending on its importance defined in the system. The data providers share their data under their weighted access policies. When there is a mutual sub-policy among the weighted access policies, UCP-WABE optimizes the encryption of the data. UCP-WABE is proven to be selectively secure [23] on the basis of CP-WABE [16]. We carry out experiments for UCP-WABE, and the implementation results exhibit that UCP-WABE has better efficiency.

1.3. Organization

The rest of this paper is arranged as follows. Section 2 describes related work. Section 3 introduces preliminaries. In Section 4, we present the system model and security model of UCP-WABE. Section 5 proposes our data-sharing scheme. Section 6 represents the security analysis of UCP-WABE. The implementation results are presented in Section 7. Finally, the conclusions are stated in Section 8.

2. Related Work

As a popular cryptographic primitive used in cloud computing, ABE has two categories. One is ciphertext-policy ABE (CP-ABE) [24], and the other is key-policy ABE (KP-ABE) [25]. The major difference between CP-ABE and KP-ABE is the relationship of the ciphertext and secret key with the access policy and attributes. Specifically, for the former, a ciphertext is associated with an access policy that is expressed by threshold gates and attributes. A consumer’s secret key has attributes embedded. For the latter, a ciphertext is associated with attributes, and an access policy is embedded into a consumer’s secret key. CP-ABE enables data providers to construct its access policy freely; in other words, the providers describe who can get the shared data flexibly. Therefore, CP-ABE is more suitable for data sharing in the cloud.
In order to increase the efficiency and enlarge the use scope of ABE for data sharing, many researchers have made great efforts. Liu et al. [17] introduced the concept of weight into CP-ABE and proposed a ciphertext-policy weighted attribute-based encryption scheme. In this scheme, the authority transforms the attribute set into the weight attribute separation set, then the data provider encrypts the data with linear secret sharing methods [26]. Although the size of the ciphertext and private key increases, the scheme achieves fine-grained access control and reflects the significance of attributes. Therefore, the scheme is more suitable for the practical applications. However, the scheme only supports the linear secret sharing scheme (LSSS) [27] access structure. On the basis of [17], Liu et al. [18] proposed another ciphertext-policy weighted attribute-based encryption scheme that supports threshold access structure [28]. This structure can consist of a threshold and many attributes. Therefore, this scheme is more expressive and is more appropriate for the cloud computing environment. Meanwhile, the scheme is proven secure under the selective-weighted attribute model. Nevertheless, the scheme only supports the threshold access structure, which only contains one threshold gate in one structure, and this still limits the expression. Wang et al. [19] proposed a multi-authority-based weighted attribute encryption scheme, which introduced the concept of weight into multi-authority-based attribute encryption [29]. In this scheme, a central authority assigns a unique user identifier (UID) to each consumer. The UID is the global identity of a consumer in the system, and it is used to generate the attribute secret keys issued by multiple authorities. The attribute authorities assign different weights to attributes depending on their importance; whereas, the scheme only supports the threshold access structure. Liu et al. [16] proposed an improved ciphertext-policy weighted attribute-based encryption (CP-WABE) to improve the efficiency over the traditional CP-ABE scheme. In this scheme, every attribute has its own weight according to its importance. The data provider encrypts its data under a weighted access policy. The data consumer can decrypt the ciphertext only if his/her attributes satisfy the weighted access policy. The scheme supports the tree access structure, so it can encrypt data under a more complex access policy. The scheme is proven to be secure under the decision -Expanded bilinear Diffie–Hellmann exponent (-Expanded BDHE) assumption [30]. Ghosh et al. [21] proposed a secure and efficient data collaboration scheme, which is called blowfish hybridized weighted attribute-based encryption. In this scheme, The weight is assigned to each attribute based on its importance, and data are encrypted using access control policies. The consumers can access the data corresponding to their weight in order to reduce the computational overload. Nevertheless, when there is a mutual sub-policy among the access policies of providers, all above-mentioned schemes do not consider further optimization.

3. Preliminaries

In this section, we introduce the basic concepts of bilinear mapping [31] and the weighted access tree [16].

3.1. Bilinear Mapping

Let G 1 and G 2 be two cyclic groups of prime order p with the multiplication. Let g be a generator of G 1 and e ^ be a bilinear mapping. Let e ^ : G 1 × G 1 G 2 be a bilinear mapping having the following properties:
  • Bilinearity: For any u , v G 1 and a , b Z p , Z p is the set of integers [ 0 , p 1 ] . It has e ^ ( u a , v b ) = e ^ ( u , v ) a b .
  • Non-degeneracy: e ^ ( g , g ) 1 .
  • Computability: For all u , v G 1 , there is an efficient computation e ^ ( u , v ) .
Note that e ^ is symmetric since e ^ ( u a , v b ) = e ^ ( u , v ) a b = e ^ ( u b , v a ) .

3.2. Weighted Access Tree

A weighted access tree is an image representation of a weighted access policy. Let Γ be a weighted access tree. Let N j be the nodes of Γ and N 1 be the root of Γ . There are two kinds of nodes in Γ , non-leaf node and leaf node. The former represents a threshold gate, for example “AND”, “OR”, “a of b ( a < b ) ”. n u m j and V j describe the threshold gate, where n u m j denotes the number of children of N j and V j denotes the threshold value, 0 < V j n u m j . When V j = n u m j , the threshold gate is an AND gate, and when V j = 1 , it is an OR gate. A leaf node is described by a data consumer’s attribute with weight, and V j = 1 . We denote the parent of N i by p a r e n t ( N i ) and denote the index for N i in its parent’s children by i n d e x ( N i ) , where 1 i n d e x ( N i ) n u m i .
In Γ , every non-leaf node N j corresponds to a function V j / n u m j . V j / n u m j is a Boolean function, and it is TRUE if N j has at least V j child nodes whose Boolean functions are evaluated to be TRUE. We say that a data consumer’s attribute set S satisfies Γ if Γ ( S ) = TRUE, which is defined as described below.
For any leaf node N j that is associated with an attribute a i S , if its Boolean value is TRUE, the weight of a i from S must be greater than or equal to the weight of N j . For any non-leaf node, its Boolean value is the value of its Boolean function. If and only if the tree’s root node’s Boolean value is TRUE, then Γ ( S ) = TRUE.
For instance, as shown in Figure 1, two weighted access trees correspond to two weighted access policies. Γ 1 : {Attr3(3) AND (Attr1(2) AND Attr2(3))}, Γ 2 : {Attr4(2) AND (Attr1(2) AND Attr2(3))}. Considering a data consumer whose attribute set S is {Attr1(3), Attr2(3), Attr3(4), Attr4(1)}. We could calculate that Γ 1 ( S ) = TRUE, Γ 2 ( S ) = FALSE. Table 1 gives several outcomes of Γ ( S ) with different attribute sets S .

4. System Model and Security Model of UCP-WABE

In this section, we describe the system model and security model of UCP-WABE. The system model shows how UCP-WABE enforces data sharing in cloud computing. The security model makes a foundation for the security analysis in Section 6.

4.1. System Model of UCP-WABE

Figure 2 displays the data-sharing system using UCP-WABE in the cloud environment. This system model is improved from the system model of CP-WABE [16]. The system model consists of five types of entities: a weighted attribute authority (WAA), a mutual information extractor (MIE), a cloud storage platform, numerous data providers, and data consumers. The cloud storage platform is managed by CSP and offers data storage service due to its massive storage ability. The provider’s data are encrypted with its weighted access policy and uploaded to the cloud. The data consumer downloads the ciphertexts and decrypts them with his/her secret key to recover the data. All providers and consumers are supervised by WAA. WAA is responsible for authenticating the attributes of every data consumer. WAA also assigns different weights to attributes according to their importance. The MIE assists the providers in encrypting their data. For illustration, we consider two providers in the system.
In Figure 2, WAA is a trustworthy entity that is in charge of producing the data consumers’ secret keys. CSP is honest but curious. This means that the cloud implements the manipulations dutifully and gives true outcomes; whereas, it also tries its best to get sensitive information. A data consumer could be compromised by an adversary; thus, this consumer could make attempts at obtaining data beyond his/her access range. The communication channels among the providers, the consumers, as well as the cloud are unsafe. In other words, the data in these channels could be eavesdropped by the adversary.

4.2. Security Model of UCP-WABE

The security model of UCP-WABE is described by a selective security game between a challenger and an adversary. This game is borrowed from CP-WABE [16]. The phases of the game are the following:
Init: The adversary declares the challenge weighted access policy Γ * that he/she will try to attack and sends Γ * to the challenger.
Setup: Here, the challenger calls the Setup algorithm to generate and send the public parameters to the adversary.
Phase 1: In this phase, the adversary can adaptively query for secret keys for the weighted attribute sets S q 1 , S q 2 , to the challenger. The challenge weighted access policy Γ * must not be satisfied by any one of the queried attribute sets. The challenger responds by running the KeyGen algorithm to generate the corresponding secret keys S K q 1 , S K q 2 , .
Challenge: The adversary submits two messages of the same length m 0 , m 1 . Then, the adversary makes a weighted access policy Γ that there is a mutual access sub-policy between Γ * and Γ . Γ is sent to the challenger, as well. The challenger flips a random coin b R { 0 , 1 } and encrypts m b under Γ * . The ciphertext C T * is given to the adversary.
Phase 2: This phase is the same as Phase 1. The adversary asks for more secret keys, and the same restriction is that Γ * must not be satisfied by any one of the queried attribute sets.
Guess: The adversary outputs his/her guess b on b.
Definition 1.
A UCP-WABE scheme is selectively secure if all polynomial time adversaries have at most a negligible advantage in the above security game, where the advantage of an adversary is defined as A d v = P r [ b = b ] ( 1 / 2 ) [32].
According to this definition, if we prove that there is no such polynomial time adversary who has a non-negligible advantage in the above security game, we can prove that UCP-WABE is selectively secure. The details of the proof will be described in Section 6.1.

5. Proposed Unified Ciphertext-Policy Weighted Attribute-Based Encryption

This section first gives an overview of our scheme. Then, we articulate the proposed UCP-WABE data-sharing scheme, which consists of five algorithms.

5.1. Overview of UCP-WABE

In UCP-WABE, different providers’ weighted access trees can be merged into one if and only if the trees meet two conditions. One is that there is a mutual sub-policy between the weighted access trees. The other is that the sub-trees’ roots of every weighted access tree locate in a trunk. A merging process is displayed in Figure 3. The two weighted access policies belong to different providers and have a mutual sub-policy: {Attr3(3) AND (Attr1(2) OR Attr2(3))}. All roots of the left weighted access tree are in the trunk: “AND”–“AND”–“OR”. All roots of the right weighted access tree are in the trunk: “OR”–“AND”–“OR”. Therefore, the two conditions are met, and the weighted access trees can be merged. The structure of the new weighted access tree is a multi-root tree.

5.2. The Design of UCP-WABE

UCP-WABE can be described as a collection of the following five algorithms:
Setup( 1 λ , U ). This algorithm generates the public parameters ( P P ) and the master secret key ( M S K ). WAA runs Setup, which takes a security parameter λ and the set of all attributes U in the system as input. Each attribute has a weight depending on its importance in the system, and let l i be the maximum weight of attribute u i , where u i U .
WAA chooses a group G 1 of prime order p with generator g and random group elements { h i , e n d , h i , j } u i U , j = 0 , , l i . WAA also chooses a random exponent α Z p and computes P P as:
P P = G 1 , g , e ^ ( g , g ) α , { h i , e n d , h i , j } u i U , j = 0 , , l i .
The master key of the system MSK can be calculated as:
M S K = g α .
PP is released to all the data providers and data consumers.
MutualInfoGen( P P , Γ 1 , Γ 2 ). In [24], the cpabe toolkit [33] can transform an access policy into a stylized expression. Therefore, MIE is able to extract the mutual sub-policy when providers’ access policies meet the two conditions. Then, MIE creates an access tree Γ ϵ according to the mutual sub-policy. Let Y ϵ denote the set of the leaf nodes in Γ ϵ . Each element of Y ϵ represents an attribute (denoted by a i ) with a weight (denoted by ω i ). The number of leaf nodes is denoted by k ϵ . a i Y ϵ . Let ( i , j ) denote the jth part of a i , where j = 1 , , ω i . MIE chooses a polynomial f c ( x ) for every node of Γ ϵ . Let the polynomial degree d c = V c 1 , as follows:
f c ( x ) = i = 0 d c b i x i ,
where b i denotes the polynomial coefficient. Moreover, let N ϵ denote the root of Γ ϵ . MIE picks a random quantity s = f ϵ ( 0 ) Z p and randomly chooses other d ϵ points of f ϵ ( x ) to determine f ϵ ( x ) . MIE selects f q ( x ) for the non-root node N q of Γ ϵ , where:
f q ( 0 ) = f p a r e n t ( N q ) ( i n d e x ( N q ) ) .
MIE randomly picks the other d q points to determine f q ( x ) . Therefore, it can get the polynomials f c ( · ) for any N c Γ ϵ .
MIE chooses random values s 1 , 0 , , s 1 , ω 1 1 , , s k ϵ , 0 , , s k ϵ , ω k ϵ 1 Z p , and creates the mutual information M I as follows:
a i Y ϵ , i = 1 , , k ϵ , MIE first calculates:
C ( i , 0 ) , 1 = g s i , 0 , C ( i , 0 ) , 2 = ( h i , 0 ) s i , 0 .
Then, for j = 1 to ω i 1 , MIE calculates:
C ( i , j ) , 1 = g s i , j , C ( i , j ) , 2 = ( h i , j ) s i , j · H ( a i ) s i , j 1 .
When j = ω i , let s i , j = f a i ( 0 ) , where f a i ( · ) is the polynomial of the node whose attribute is a i . MIE calculates:
C ( i , j ) , 1 = g f a i ( 0 ) , C ( i , j ) , 2 = ( h i , j ) f a i ( 0 ) · H ( a i ) s i , j 1 .
Then, MIE calculates:
C ( i , e n d ) , 1 = g f a i ( 0 ) , C ( i , e n d ) , 2 = ( h i , e n d ) f a i ( 0 ) .
Finally, MIE creates the mutual information M I :
M I = Γ ϵ , { C ( i , j ) , 1 , C ( i , j ) , 2 } a i Y ϵ , j = 1 , , ω i , { C ( i , e n d ) , 1 , C ( i , e n d ) , 2 } a i Y ϵ .
Algorithm 1 shows the pseudocode of the MutualInfoGen algorithm.
Algorithm 1 The mutual information generation algorithm (MutualInfoGen).
Input: P P : The public parameter. Γ 1 : The weighted access tree of Provider A. Γ 2 : The weighted access tree of Provider B.
Output: M I : The mutual information.
 1: Create Γ ϵ according to the mutual sub-policy of Γ 1 and Γ 2
 2: Select a random s Z p ; set f ϵ ( 0 ) = s ; and randomly choose other d ϵ points to determine f ϵ ( x )
 3: for ∀ non-root node N q do
 4: Calculate f q ( 0 ) , and randomly choose other d q points to determine f q ( x )
 5: if a i Y ϵ then
 6:  Calculate C ( i , 0 ) , 1 , C ( i , 0 ) , 2
 7:  for j = 1 to ω i do
 8:   if j ω i then
 9:    Calculate C ( i , j ) , 1 , C ( i , j ) , 2
10:   else
11:    Set s i , j = f a i ( 0 ) , and calculate C ( i , j ) , 1 , C ( i , j ) , 2
12:   end if
13:  end for
14:  Calculate C ( i , e n d ) , 1 , C ( i , e n d ) , 2
15: end if
16: end for
17: M I = Γ ϵ , { C ( i , j ) , 1 , C ( i , j ) , 2 } a i Y ϵ , j = 1 , , ω i , { C ( i , e n d ) , 1 , C ( i , e n d ) , 2 } a i Y ϵ
Encrypt( P P , M 1 , Γ 1 , M I ). MIE sends M I to the providers. Then, they encrypt the messages M 1 , M 2 , respectively. Consider Provider A as an instance. It runs Encrypt as follows. Provider A creates the access tree Γ 1 based on Γ ϵ , which is a sub-tree of Γ 1 . For any trunk node N c above N ϵ in Γ 1 , the polynomial f c ( x ) is determined as follows.
f c ( i n d e x ( t r u n k c h i l d ( N c ) ) ) = f t r u n k c h i l d ( N c ) ( 0 ) ,
where t r u n k c h i l d ( N c ) denotes the child node of N c along the trunk and i n d e x ( N c ) is the index value of N c to its parent node. In order to calculate conveniently, when providers construct the access policies, it sets i n d e x ( t r u n k c h i l d ( N c ) ) = 1 for each trunk node. For d c non-constant coefficients of (3), Provider A selects them randomly. Then, the constant term f c ( 0 ) can be computed by (10). Taking a simple instance, let N δ be the parent of N ϵ . Provider A needs to determine:
f δ ( x ) = i = 0 d δ b i x i .
Provider A selects d δ coefficients { b 1 , b 2 , , b d δ } randomly, and i n d e x ( t r u n k c h i l d ( N δ ) ) = 1 . Due to (10), Provider A knows that:
f δ ( 1 ) = f ϵ ( 0 ) ,
then it calculates the constant term b 0 with (3), as:
b 0 = f ϵ ( 0 ) i = 1 d δ b i .
Similarly, MIE determines every trunk node’s polynomial. For any other node N q of Γ 1 , the method of determining f q ( x ) is identical to the method of MIE creating Γ ϵ .
Provider A obtains every polynomial of node in Γ 1 with (4) and (10), and Γ 1 is created completely. Provider B creates Γ 2 based on Γ ϵ likewise.
Let Y 1 denote the set of the leaf nodes in Γ 1 . The number of leaf nodes is denoted by k 1 . Provider A produces the ciphertext C T 1 of message M 1 as follows:
Provider A first calculates C M = M 1 · e ^ ( g , g ) α f N 1 ( 0 ) , where f N 1 ( · ) is the polynomial of access tree Γ 1 ’s root node N 1 . For a i Y 1 \ Y ϵ , i = k ϵ + 1 , , k 1 , Provider A chooses random values s k ϵ + 1 , 0 , , s k ϵ + 1 , ω k ϵ + 1 1 , , s k 1 , 0 , , s k 1 , ω k 1 1 Z p , and calculates:
C ( i , 0 ) , 1 = g s i , 0 , C ( i , 0 ) , 2 = ( h i , 0 ) s i , 0 .
Then, for j = 1 to ω i 1 , MIE calculates:
C ( i , j ) , 1 = g s i , j , C ( i , j ) , 2 = ( h i , j ) s i , j · H ( a i ) s i , j 1 .
When j = ω i , let s i , j = f a i ( 0 ) , where f a i ( · ) is the polynomial of the node whose attribute is a i . MIE calculates:
C ( i , j ) , 1 = g f a i ( 0 ) , C ( i , j ) , 2 = ( h i , j ) f a i ( 0 ) · H ( a i ) s i , j 1 .
Then, MIE calculates:
C ( i , e n d ) , 1 = g f a i ( 0 ) , C ( i , e n d ) , 2 = ( h i , e n d ) f a i ( 0 ) .
Finally, Provider A creates the ciphertext C T 1 :
C T 1 = Γ 1 , C M , { C ( i , j ) , 1 , C ( i , j ) , 2 } a i Y 1 , j = 1 , , ω i , { C ( i , e n d ) , 1 , C ( i , e n d ) , 2 } a i Y 1 .
Algorithm 2 represents the pseudocode of Encrypt algorithm.
KeyGen( P P , M S K , S ). WAA calls this algorithm to produce S K on the basis of M S K and the data consumer’s attributes. Particularly, a i S , let ω i denote the weight of a i , and let ( i , j ) denote the jth part of a i , where j = 1 , , ω i . For each ( i , j ) , WAA chooses D i , j G 1 and r i , j Z p randomly. WAA also chooses random values r i , e n d j Z p . WAA generates S K components as follows:
K ( i , 0 ) , 1 = D ( i , 0 ) ( h i , 0 ) r i , 0 , K ( i , 0 ) , 2 = g r i , 0 , K ( i , j ) , 1 = D ( i , j 1 ) 1 · H ( a i ) r i , j , K ( i , j ) , 2 = g r i , j ,
K ( i , j ) , 3 = D ( i , j ) ( h i , j ) r i , j , K ( i , e n d j ) , 1 = g α · D ( i , j ) ( h i , e n d ) r i , e n d j , K ( i , e n d j ) , 2 = g r i , e n d j .
Algorithm 2 The encryption algorithm (Encrypt).
Input: P P : The public parameter. M 1 : The data that Provider A wants to share. Γ 1 : The weighted access tree of Provider A. M I : The mutual information.
Output: C T 1 : The ciphertext of M 1 .
 1: Create Γ 1 based on Γ ϵ
 2: for ∀ trunk node N c above N ϵ Γ 1 do
 3: Calculate f c ( 1 ) ; select d c non-constant coefficients randomly; and calculate f c ( 0 )
 4: if N c = N 1 then
 5:  Calculate C M
 6: end if
 7: end for
 8: for ∀ non-trunk node N q Γ 1 do
 9: Determine f q ( x ) the same as MutualInfoGen
10: if a i Y 1 Y ϵ then
11:  Calculate C ( i , 0 ) , 1 , C ( i , 0 ) , 2
12:  for j = 1 to ω i do
13:   if j ω i then
14:    Calculate C ( i , j ) , 1 , C ( i , j ) , 2
15:   else
16:    Set s i , j = f a i ( 0 ) , and calculate C ( i , j ) , 1 , C ( i , j ) , 2
17:   end if
18:  end for
19:  Calculate C ( i , e n d ) , 1 , C ( i , e n d ) , 2
20: end if
21: end for
22: C T 1 = Γ 1 , C M , { C ( i , j ) , 1 , C ( i , j ) , 2 } a i Y 1 , j = 1 , , ω i , { C ( i , e n d ) , 1 , C ( i , e n d ) , 2 } a i Y 1
Then, WAA outputs:
S K = { K ( i , 0 ) , 1 , K ( i , 0 ) , 2 , K ( i , j ) , 1 , K ( i , j ) , 2 , K ( i , j ) , 3 , K ( i , e n d j ) , 1 , K ( i , e n d j ) , 2 } a i S , j = 1 , , ω i .
Decrypt( P P , S K , C T 1 ). Consider that the aforementioned consumer gets C T 1 , and he/she wants to recover M 1 . The decryption process is defined as follows.
If N x is a leaf node of Γ 1 and is associated with attribute a i S and ω i ω i , let N x ’s Boolean value be TRUE, and calculate:
F ( x , 0 ) = e ^ ( C ( i , 0 ) , 1 , K ( i , 0 ) , 1 ) e ^ ( C ( i , 0 ) , 2 , K ( i , 0 ) , 2 ) = e ^ ( g s i , 0 , D ( i , 0 ) ( h i , 0 ) r i , 0 ) e ^ ( ( h i , 0 ) s i , 0 , g r i , 0 ) = e ^ ( g , D ( i , 0 ) ) s i , 0 · e ^ ( g , h i , 0 ) s i , 0 · r i , 0 e ^ ( g , h i , 0 ) s i , 0 · r i , 0 = e ^ ( g , D ( i , 0 ) ) s i , 0
Then, for j = 1 to ω i :
F ( x , j ) = F ( x , j 1 ) e ^ ( C ( i , j 1 ) , 1 , K ( i , j ) , 1 ) · e ^ ( C ( i , j ) , 1 , K ( i , j ) , 3 ) e ^ ( C ( i , j ) , 2 , K ( i , j ) , 2 )
When j = 1 to ω i 1 ,
F ( x , j ) = e ^ ( g , D ( i , j ) ) s i , j .
When j = ω i ,
F ( x , j ) = e ^ ( g , D ( i , ω i ) ) f a i ( 0 ) .
Finally, the consumer computes:
F x = F ( x , ω i ) e ^ ( C ( i , e n d ) , 2 , K ( i , e n d ω i ) , 2 ) e ^ ( C ( i , e n d ) , 1 , K ( i , e n d ω i ) , 1 ) = e ^ ( g , D ( i , ω i ) ) f a i ( 0 ) · e ^ ( ( h i , e n d ) f a i ( 0 ) , g r i , e n d ω i ) e ^ ( g f a i ( 0 ) , g α · D ( i , ω i ) ( h i , e n d ) r i , e n d ω i = e ^ ( g , g ) α f a i ( 0 ) .
a i is the attribute of leaf node N x , so f a i ( · ) = f x ( · ) , and:
F x = e ^ ( g , g ) α f a i ( 0 ) = e ^ ( g , g ) α f x ( 0 ) .
Equations (22) and (24)–(26) are on the basis of bilinear mapping properties, which were introduced in Section 3.1. If a i S , ω i > ω i or a i S , then F x = , and ⊥ is a termination signal.
For a non-leaf node N x of Γ 1 , let N z be the children of N x and S x be an arbitrary V x -size set of N z , where F z . If S x does not exist, set F x = , or else, N x ’s Boolean value is TRUE, then compute:
F x = z S x F z Δ z , S x ( 0 ) = z S x e ^ ( g , g ) α f z ( 0 ) Δ z , S x ( 0 ) = z S x e ^ ( g , g ) α f x ( z ) Δ z , S x ( 0 ) = e ^ ( g , g ) α Σ z S x f x ( z ) Δ z , S x ( 0 ) = e ^ ( g , g ) α f x ( 0 ) .
where Δ z , S x ( y ) = Π i S x , i j y i j i is the Lagrange coefficient polynomial.
Therefore, if the access tree Γ 1 is satisfied by S , the decryption algorithm begins from the root node N 1 , and the consumer calculates:
C M F N 1 = M 1 · e ^ ( g , g ) α f N 1 ( 0 ) e ^ ( g , g ) α f N 1 ( 0 ) = M 1 .
Algorithm 3 displays the pseudocode of Decrypt algorithm.
Figure 4 shows the working process of UCP-WABE for unified encryption. Figure 5 displays the process flow of a consumer for decryption.
Algorithm 3 The decryption algorithm (Decrypt).
Input: P P : The public parameter. S K : The secret key of the consumer. C T 1 : The ciphertext of M 1 .
Output: M 1 : The plaintext of C T 1 .
 1: for ∀ leaf node N x Γ 1 do
 2: if attribute of N x S , and ω i ω i then
 3:  Set N x ’s Boolean value to be TRUE, and calculate F ( x , 0 )
 4:  for j = 1 to ω i do
 5:   if j ω i 1 then
 6:    Calculate F ( x , j ) = e ^ ( g , D ( i , j ) ) s i , j
 7:   else
 8:    Calculate F ( x , j ) = e ^ ( g , D ( i , ω i ) ) f a i ( 0 )
 9:   end if
10:  end for
11:  Calculate F x
12: else
13:  Set F x =
14: end if
15: end for
16: for ∀ non-leaf node N x Γ 1 do
17: Set N z as the children of N x and S x as an arbitrary V x -size set of N z , where F z .
18: if S x then
19:  Set F x =
20: else
21:  Set N x ’s Boolean value to be TRUE, and calculate F x
22: end if
23: end for
24: if F N 1 ’s Boolean value is TRUE then
25: Calculate C M F N 1
26: end if
27: M 1 = C M F N 1

6. Security Analysis

6.1. Security Proof

Extended from CP-WABE, UCP-WABE is expected to have the same security property as CP-WABE, which has been proven to be selectively secure under a variant of the decision -bilinear Diffie-Hellmann exponent (BDHE) assumption [16]. Based on the selective security of CP-WABE, we prove UCP-WABE is selectively secure.
Theorem 1.
If no polynomial time adversary can selectively break CP-WABE with a weighted challenge access policy Γ * , no polynomial time adversary can selectively break UCP-WABE with Γ * .
Proof. 
To prove the theorem, we assume that there exists a polynomial time adversary A , which has a non-negligible advantage A d v A in selectively breaking UCP-WABE. Using A , we will build a polynomial time adversary B , which selectively breaks CP-WABE with a non-negligible advantage A d v B .
Init: A declares a challenge weighted access policy Γ * and sends it to B . B sends Γ * to the CP-WABE challenger.
Setup: The public parameter of CP-WABE P P = { G 1 , g , e ^ ( g , g ) α , { h i , e n d , h i , j } u i U , j = 0 , , l i } is sent to B , then B sends P P = P P to A .
Phase 1: A makes secret key queries to B for attribute sets, and none of these sets satisfy the challenge access policy Γ * . Suppose A asks for attribute set S q 1 . B gives S q 1 to the CP-WABE challenger and gets S K q 1 = { { K ( i , 0 ) , 1 , K ( i , 0 ) , 2 , K ( i , j ) , 1 , K ( i , j ) , 2 , K ( i , j ) , 3 , K ( i , e n d j ) , 1 , K ( i , e n d j ) , 2 } a i S q 1 , j = 1 , , ω i } . B returns S K q 1 = S K q 1 to A to answer the query. This process would repeat until A no longer queries.
Challenge: A submits two messages of the same length m 0 , m 1 . Then, A constructs a weighted access policy Γ that there is a mutual access sub-policy between Γ * and Γ . Γ is also sent to B . B sends m 0 , m 1 to the CP-WABE challenger. The CP-WABE challenger flips a random coin b R { 0 , 1 } and encrypts m b with Γ * . The ciphertext is C T = { Γ * , C m b , { C ( i , j ) , 1 , C ( i , j ) , 2 } a i Y 1 , j = 1 , , ω i , { C ( i , e n d ) , 1 , C ( i , e n d ) , 2 } a i Y 1 } , and the CP-WABE challenger sends it to B . B constructs challenge ciphertext C T * as C T * = C T and returns it to A .
Phase 2: A asks for more secret keys, and the same restriction is that Γ * must not be satisfied by any one of the queried attribute sets. B answers as in Phase 1.
Guess: A outputs its guess b { 0 , 1 } , and B outputs b in its own game. B has an advantage in breaking CP-WABE as
A d v B = | P r [ b = b ] 1 / 2 | = A d v A
Thus, B has a non-negligible advantage in selectively breaking CP-WABE, so the proof of the theorem is completed. □

6.2. Discussion

In UCP-WABE, CSP cannot know the details of the data because the data are stored in an encrypted form. The data are encrypted under a weighted access policy, so only the consumers who possess a set of weighted attributes satisfying the policy can decrypt the ciphertext. Hence, UCP-WABE achieves a fine-grained access control, and the confidentiality of the data can be guaranteed against unauthorized consumers. A data provider constructs the weighted access policy according to the data consumers’ attributes instead of the data consumers’ detailed information. The threshold gates are also used to construct the weighted access policy. Therefore, the providers are able to construct sophisticated weighted access policies, and there is no limit to the number of threshold gates and attributes. Thus, UCP-WABE can support an extremely large number of weighted access policies, and UCP-WABE can implement flexible access control.

7. Evaluation of the Encryption Efficiency

The theoretical efficiency analysis of UCP-WABE is first given, then we carry out the experiments, and the results show that UCP-WABE has better efficiency than other schemes.

7.1. Efficiency Analysis Based on Encryption Methodologies

C ( G i ) denotes the operation in group G i ( i = 0 , 1 ) . C e ^ denotes the operation in e ^ ( · ) . In order to analyse the efficiency conveniently, suppose the number of levels of Γ 1 is equal to Γ 2 ’s and each level has the same number of attributes. Thus, Γ 1 , Γ 2 have the same number of attributes, i.e., k 1 = k 2 . Let B ( ) be the bit size of an element of ∗ and | | be the number of elements of ∗. Let S ( Γ 1 ) denote the least node set that satisfies Γ 1 . The comprehensive comparison among CP-ABE [24], CP-WABE [16], and our proposed UCP-WABE is summarized in Table 2. Moreover, the hash computation cost does not have to be included because it is very small.
As shown in Table 2, suppose the values of l i are given. When k 1 and ω i are fixed, the encryption time cost declines with k ϵ in UCP-WABE. In order to display the results more intuitively, we suppose all the attributes have the same weight in the access trees Γ 1 , Γ 2 and all the maximum weights are the same in U . Therefore, the time cost of encryption linearly declines with k ϵ , and the rate of descent is 4 ( ω i + 1 ) C ( G 1 ) in UCP-WABE. In CP-ABE and CP-WABE, the encryption time cost remains unchanged. When k ϵ and ω i are fixed, the encryption time cost linearly rises with k 1 , and the growth rate is 8 ( ω i + 1 ) C ( G 1 ) in UCP-WABE. Although the growth rate of encryption time cost is also equal to 8 ( ω i + 1 ) C ( G 1 ) in CP-WABE, it is always higher than that in UCP-WABE. The encryption time cost increases with k 1 exponentially in CP-ABE. When k 1 and k ϵ are fixed, the encryption time cost linearly rises with ω i , and the growth rate is ( 8 k 1 4 k ϵ ) C ( G 1 ) in UCP-WABE. The encryption time cost also linearly rises with ω i , and the growth rate is 8 k 1 C ( G 1 ) in CP-WABE. In spite of the encryption time cost declining with ω i in CP-ABE, it still remains far higher than UCP-WABE. In Table 2, one noteworthy fact is that the encryption time cost is a summation of the two data providers’ encryption time.

7.2. Efficiency Analysis Based on Implementation

The implementation of UCP-WABE is on the basis of the cpabe toolkit [33] and the Pairing-Based Cryptography library [34]. The implementation uses a 160-bit elliptic curve group based on the supersingular curve y 2 = x 3 + x over a 512-bit finite field. The experiments are conducted on a PC, in Intel Core2 Duo with 3.00-GHz CPU and 2GB RAM, running Ubuntu15.04. We compare UCP-WABE with CP-WABE and CP-ABE in the field of encryption time cost. For all experiments, we make all the weighted access policies’ threshold gates “AND” gates. This ensures that all of the ciphertext components could be calculated in Decrypt.
Figure 6 shows the encryption time cost with given experimental conditions k 1 = 27 , ω i = 3 , and l i = 4 ( i = 1 , , 7 ) , l i = 3 ( i = 8 , , 27 ) . We do not suppose all the attributes have the same maximum weight in this case for the reason that the result of CP-ABE is too high. The number of mutual attributes used in the experiments is k ϵ = { 2 , 5 , 8 , 11 , 14 , 17 , 20 , 23 , 26 } . As shown in Figure 6, the encryption time cost of UCP-WABE follows a linear decline with the number of the mutual access tree attributes. For CP-WABE and CP-ABE, the encryption time cost almost keeps unchanged.
Figure 7 displays the encryption time with k ϵ = 3 , ω i = 3 and l i = 4 . In the experiments, the number of Γ 1 ’s attributes is k 1 = { 4 , 5 , 6 , 7 , 8 , 9 , 10 } . As shown in Figure 7, the encryption time cost follows a linear growth with the number of the access tree attributes in UCP-WABE and CP-WABE. Meanwhile, the former is lower than the latter. The result of CP-ABE increases exponentially with the number of access tree attributes.
Figure 8 shows the encryption time cost with given experimental conditions k 1 = 3 , k ϵ = 2 , and l i = 9 . The weight of attributes in Γ 1 used in the experiments is ω i = { 1 , 2 , 3 , 4 , 5 , 6 , 7 } . Figure 8 shows that the encryption time cost of UCP-WABE and CP-WABE is following a linear growth in the weight of attributes, and the former is lower than the latter. The result of CP-ABE is decreasing with the weight of attributes; however, it is still higher than UCP-WABE. Therefore, UCP-WABE improves the efficiency of encryption.

8. Conclusions

In this paper, we have proposed a novel UCP-WABE scheme for sharing data in cloud computing environments. The scheme optimizes the encryption of data that are encrypted under the multi-providers’ access policies where these policies have a mutual sub-policy. UCP-WABE utilizes a mutual information extractor to extract the mutual sub-policy and produce mutual information, which assists in optimizing the encryption. UCP-WABE also takes advantage of weighted attribute-based encryption to avoid too complex of an access structure. We analyse the computational complexity of UCP-WABE theoretically and experimentally. The analyses indicate that UCP-WABE has a better efficiency of encryption. The security analysis shows that UCP-WABE is selectively secure. It should be noted that we only consider the case of two data providers. In practice, UCP-WABE will have a more efficient data sharing if the more providers’ access policies have a mutual sub-policy. In our future work, we will optimize the system implementation and conduct comprehensive experiments with real-life cases in cloud computing.

Author Contributions

W.L. proposed the main idea and conceptualization. He also performed experiments, results analysis, and scientific discussions and wrote the paper. W.N., D.L. and R.P.L. helped to revise the clarity of the work, as well as write and organize the paper. Finally, S.L. assisted in English corrections and submission of the article.

Funding

This work was supported in part by the National Key R&D Program of China under Grant 2017YFB0802300, in part by the National High-tech R&D Program of China (863 Program) under Grant 2015AA016005 and Grant 2015AA017201, in part by the Applied Sci-Tech R&D Special Fund Program of Guangdong Province under Grant 2015B010131007 and in part by the China Scholarship Council under Grant 201506470040.

Acknowledgments

The authors thank the reviewers for their valuable comments and suggestions, which improved the technical content and the presentation of the paper.

Conflicts of Interest

The authors declare that they have no conflict of interest.

Abbreviations and Notations

The following abbreviations and notations are used in this manuscript:
UCP-WABEunified ciphertext-policy weighted attribute-based encryption
M i the data that provider i wants to share
Γ i the weighted access tree relates to M i
e ^ ( · ) a bilinear mapping
G 1 e ^ ( · ) ’s input group
G 2 e ^ ( · ) ’s output group
p G 1 ’s order, namely there are p elements in G 1
Z p the set of integers [ 0 , p 1 ]
g G 1 ’s generator. i Z p , g i G 1
N j the jth node in Γ
n u m j N j ’s children number
V j N j ’s threshold value
S the attribute set of a data consumer
a i the ith attribute of a data consumer
WAAweighted attribute authority
MIEmutual information extractor
P P , M S K the public parameter and master secret key of UCP-WABE
S K secret key of a data consumer, issued by WAA
U the set of all attributes in the system
u i the ith attribute in U
l i the maximum weight of u i
ω i the weight of a i from Γ
ω i the weight of a i from S
k i the number of leaf nodes in Γ i
N ϵ the root node of the mutual access tree
M I the mutual information
H ( · ) the hash function to hash an attribute
C T i the ciphertext of M i
termination signal
C ( G i ) the operation in G i
C e ^ the operation in e ^ ( · )
B ( ) the bit size of an element of ∗
| | the number of elements of ∗

References

  1. Yu, S.; Wang, C.; Ren, K.; Lou, W. Achieving secure, scalable, and fine-grained data access control in cloud computing. In Proceedings of the 2010 Proceedings IEEE INFOCOM, San Diego, CA, USA, 14–19 March 2010; pp. 1–9. [Google Scholar] [CrossRef]
  2. Lee, Y.H.; Huang, K.C.; Wu, C.H.; Kuo, Y.H.; Lai, K.C. A Framework for Proactive Resource Provisioning in IaaS Clouds. Appl. Sci. 2017, 7, 777. [Google Scholar] [CrossRef]
  3. Chadwick, D.W.; Fatema, K. A privacy preserving authorisation system for the cloud. J. Comput. Syst. Sci. 2012, 78, 1359–1373. [Google Scholar] [CrossRef] [Green Version]
  4. Liu, X.; Zhang, Y.; Wang, B.; Yan, J. Mona: Secure multi-owner data sharing for dynamic groups in the cloud. IEEE Trans. Parallel Distrib. Syst. 2013, 24, 1182–1191. [Google Scholar] [CrossRef]
  5. Abbas, A.; Khan, S.U. A Review on the State-of-the-Art Privacy-Preserving Approaches in the e-Health Clouds. IEEE J. Biomed. Health Inform. 2014, 18, 1431–1441. [Google Scholar] [CrossRef] [PubMed]
  6. Liu, L.; Lai, J.; Deng, R.H.; Li, Y. Ciphertext-policy attribute-based encryption with partially hidden access structure and its application to privacy-preserving electronic medical record system in cloud environment. Secur. Commun. Netw. 2016, 9, 4897–4913. [Google Scholar] [CrossRef]
  7. Li, W.; Liu, B.M.; Liu, D.; Liu, R.P.; Wang, P.; Luo, S.; Ni, W. Unified Fine-grained Access Control for Personal Health Records in Cloud Computing. IEEE J. Biomed. Health Inform. 2018. [Google Scholar] [CrossRef] [PubMed]
  8. Qiu, M.; Gai, K.; Thuraisingham, B.; Tao, L.; Zhao, H. Proactive user-centric secure data scheme using attribute-based semantic access controls for mobile clouds in financial industry. Future Gener. Comput. Syst. 2018, 80, 421–429. [Google Scholar] [CrossRef]
  9. Chang, V.; Ramachandran, M. Financial Modeling and Prediction as a Service. J. Grid Comput. 2017, 15, 177–195. [Google Scholar] [CrossRef] [Green Version]
  10. Gai, K.; Du, Z.; Qiu, M.; Zhao, H. Efficiency-Aware Workload Optimizations of Heterogeneous Cloud Computing for Capacity Planning in Financial Industry. In Proceedings of the IEEE International Conference on Cyber Security and Cloud Computing, New York, NY, USA, 3–5 November 2015; pp. 1–6. [Google Scholar]
  11. Wang, G.; Liu, Q.; Wu, J.; Guo, M. Hierarchical attribute-based encryption and scalable user revocation for sharing data in cloud servers. Comput. Secur. 2011, 30, 320–331. [Google Scholar] [CrossRef]
  12. Li, M.; Yu, S.; Zheng, Y.; Ren, K.; Lou, W. Scalable and secure sharing of personal health records in cloud computing using attribute-based encryption. IEEE Trans. Parallel Distrib. Syst. 2013, 24, 131–143. [Google Scholar] [CrossRef]
  13. Hur, J. Improving security and efficiency in attribute-based data sharing. IEEE Trans. Knowl. Data Eng. 2013, 25, 2271–2282. [Google Scholar] [CrossRef]
  14. Li, J.; Zhang, Y.; Chen, X.; Xiang, Y. Secure attribute-based data sharing for resource-limited users in cloud computing. Comput. Secur. 2018, 72, 1–12. [Google Scholar] [CrossRef]
  15. Sahai, A.; Waters, B. Fuzzy identity-based encryption. In Proceedings of the Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, 22–26 May 2005; Springer: Berlin, Germany, 2005; pp. 457–473. [Google Scholar] [CrossRef]
  16. Liu, X.; Ma, J.; Xiong, J.; Li, Q.; Ma, J. Ciphertext-Policy Weighted Attribute Based Encryption for Fine-Grained Access Control. In Proceedings of the International Conference on Intelligent NETWORKING and Collaborative Systems, Xi’an, China, 9–11 September 2013; pp. 51–57. [Google Scholar]
  17. Liu, X.; Ma, J.; Xiong, J.; Li, Q.; Zhang, T. Ciphertext-policy weighted attribute based encryption scheme. J. Xi’an Jiaotong Univ. 2013, 47, 44–48. [Google Scholar]
  18. Liu, X.; Ma, J.; Xiong, J.; Li, Q.; Zhang, T.; Zhu, H. ciphertext-policy weighted attribute-based encryption scheme in cloud computing. J. Sichuan Univ. (Eng. Sci. Ed.) 2013, 45, 21–26. [Google Scholar]
  19. Wang, Y.; Zhang, D.; Zhong, H. Multi-authority based weighted attribute encryption scheme in cloud computing. In Proceedings of the International Conference on Natural Computation, Xiamen, China, 19–21 August 2014; pp. 1033–1038. [Google Scholar]
  20. Liu, X.; Zhu, H.; Ma, J.; Ma, J.; Ma, S. Key-Policy Weighted Attribute based Encryption for fine-grained access control. In Proceedings of the 2014 IEEE International Conference on Communications Workshops (ICC), Sydney, NSW, Australia, 10–14 June 2014; pp. 694–699. [Google Scholar] [CrossRef]
  21. Ghosh, S.; Karar, V. Blowfish Hybridized Weighted Attribute-Based Encryption for Secure and Efficient Data Collaboration in Cloud Computing. Appl. Sci. 2018, 8, 1119. [Google Scholar] [CrossRef]
  22. Li, W.; Ni, W.; Liu, D.; Liu, R.P.; Wang, P.; Luo, S. Fine-Grained Access Control for Personal Health Records in Cloud Computing. In Proceedings of the 2017 IEEE 85th Vehicular Technology Conference (VTC Spring), Sydney, NSW, Australia, 4–7 June 2017; pp. 1–5. [Google Scholar] [CrossRef]
  23. Boneh, D.; Boyen, X. Efficient selective-ID secure identity-based encryption without random oracles. In Proceedings of the International Conference on the Theory and Applications of Cryptographic Techniques, Interlaken, Switzerland, 2–6 May 2004; Springer: Berlin, Germany, 2004; pp. 223–238. [Google Scholar]
  24. Bethencourt, J.; Sahai, A.; Waters, B. Ciphertext-policy attribute-based encryption. In Proceedings of the 2007 IEEE Symposium on Security and Privacy (SP’07), Berkeley, CA, USA, 20–23 May 2007; pp. 321–334. [Google Scholar] [CrossRef]
  25. Goyal, V.; Pandey, O.; Sahai, A.; Waters, B. Attribute-based encryption for fine-grained access control of encrypted data. In Proceedings of the 13th ACM conference on Computer and Communications Security, Alexandria, VA, USA, 30 October–3 November 2006; ACM: New York, NY, USA, 2006; pp. 89–98. [Google Scholar] [CrossRef]
  26. Waters, B. Ciphertext-Policy Attribute-Based Encryption: An Expressive, Efficient, and Provably Secure Realization; Springer: Berlin/Heidelberg, Germany, 2011; pp. 53–70. [Google Scholar]
  27. Beimel, A. Secure Schemes for Secret Sharing and Key Distribution. Ph.D. Thesis, Israel Institute of Technology Technion, Haifa, Israel, 1996. [Google Scholar]
  28. Beimel, A.; Tassa, T.; Weinreb, E. Characterizing ideal weighted threshold secret sharing. In Proceedings of the Theory of Cryptography Conference, Cambridge, MA, USA, 10–12 February 2005; Springer: New York, NY, USA, 2005; pp. 600–619. [Google Scholar]
  29. Chase, M. Multi-authority attribute based encryption. In Proceedings of the Conference on Theory of Cryptography, Amsterdam, The Netherlands, 21–24 February 2007; pp. 515–534. [Google Scholar]
  30. Liang, K.; Huang, X.; Guo, F.; Liu, J.K. Privacy-Preserving and Regular Language Search Over Encrypted Cloud Data. IEEE Trans. Inf. Forensics Secur. 2016, 11, 2365–2376. [Google Scholar] [CrossRef]
  31. Cohen, H.; Frey, G.; Avanzi, R.; Doche, C.; Lange, T.; Nguyen, K.; Vercauteren, F. Handbook of Elliptic and Hyperelliptic Curve Cryptography; CRC Press: Boca Raton, FL, USA, 2005. [Google Scholar]
  32. Stinson, D.R. Cryptography: Theory and Practice; CRC Press: Boca Raton, FL, USA, 2005. [Google Scholar]
  33. The CPABE Toolkit. Available online: http://acsc.cs.utexas.edu/cpabe/ (accessed on 4 March 2018).
  34. Pairing-Based Cryptography Library. Available online: http://crypto.stanford.edu/pbc/ (accessed on 4 March 2018).
Figure 1. Two data providers have data M 1 and M 2 to share separately. Γ 1 and Γ 2 are the weighted access policies of M 1 and M 2 .
Figure 1. Two data providers have data M 1 and M 2 to share separately. Γ 1 and Γ 2 are the weighted access policies of M 1 and M 2 .
Applsci 08 02519 g001
Figure 2. System model of UCP-WABE.
Figure 2. System model of UCP-WABE.
Applsci 08 02519 g002
Figure 3. The merging process of two weighted access trees.
Figure 3. The merging process of two weighted access trees.
Applsci 08 02519 g003
Figure 4. The process flow of unified encryption.
Figure 4. The process flow of unified encryption.
Applsci 08 02519 g004
Figure 5. The process flow of decryption.
Figure 5. The process flow of decryption.
Applsci 08 02519 g005
Figure 6. Encryption time cost for the changed number of mutual access tree attributes.
Figure 6. Encryption time cost for the changed number of mutual access tree attributes.
Applsci 08 02519 g006
Figure 7. Encryption time cost for the changed number of access tree attributes.
Figure 7. Encryption time cost for the changed number of access tree attributes.
Applsci 08 02519 g007
Figure 8. Encryption time cost for the changed weight of attributes in the access tree.
Figure 8. Encryption time cost for the changed weight of attributes in the access tree.
Applsci 08 02519 g008
Table 1. Valuation of the weighted access trees in Figure 1.
Table 1. Valuation of the weighted access trees in Figure 1.
S Γ 1 ( S ) Γ 2 ( S )
Attr1(3), Attr2(2), Attr3(4), Attr4(2)FALSEFALSE
Attr1(3), Attr2(3), Attr3(2), Attr4(2)FALSETRUE
Attr1(3), Attr2(3), Attr3(4), Attr4(1)TRUEFALSE
Attr1(3), Attr2(3), Attr3(4), Attr4(2)TRUETRUE
Table 2. Comprehensive analysis.
Table 2. Comprehensive analysis.
ComponentCP-ABECP-WABEUCP-WABE
Public key size 3 B ( G 1 ) + B ( G 2 ) ( i = 1 | U | l i + 2 | U | + 1 ) B ( G 1 ) + B ( G 2 ) ( i = 1 | U | l i + 2 | U | + 1 ) B ( G 1 ) + B ( G 2 )
Master key size B ( Z p ) + B ( G 1 ) B ( G 1 ) B ( G 1 )
Secret key size ( 2 | S | + 1 ) B ( G 1 ) ( 5 i = 1 k 1 ω i + 2 i = 1 k 1 ) B ( G 1 ) ( 5 i = 1 k 1 ω i + 2 i = 1 k 1 ) B ( G 1 )
Ciphertext size i = 1 k 1 ( l i ω i + 1 ) ·
[ ( 4 k 1 + 2 ) B ( G 1 ) + 2 B ( G 2 ) ]
4 i = 1 k 1 ( ω i + 1 ) B ( G 1 ) + 2 B ( G 2 ) 4 i = 1 k 1 ( ω i + 1 ) B ( G 1 ) + 2 B ( G 2 )
Encryption Time i = 1 k 1 ( l i ω i + 1 ) ·
[ ( 4 k 1 + 2 ) C ( G 1 ) + 4 C ( G 2 ) ]
( 8 i = 1 k 1 ω i + 8 k 1 ) C ( G 1 ) + 4 C ( G 2 ) [ 8 i = 1 k 1 ω i + 8 k 1 ( 4 i = 1 k ϵ ω i +
4 k ϵ ) ] C ( G 1 ) + 4 C ( G 2 )
Decryption Time 2 ( | S | + 1 ) C e ^ +
( 2 | S ( Γ 1 ) | + 2 ) C ( G 2 )
( 3 i = 1 | S | ω i + 2 | S | ) C e ^ +
( 3 i = 1 | S | ω i + 3 | S ( Γ 1 ) | + 1 ) C ( G 2 )
( 3 i = 1 | S | ω i + 2 | S | ) C e ^ +
( 3 i = 1 | S | ω i + 3 | S ( Γ 1 ) | + 1 ) C ( G 2 )
Weighted AttributesNOYESYES
Unified EncryptionNONOYES

Share and Cite

MDPI and ACS Style

Li, W.; Ni, W.; Liu, D.; Liu, R.P.; Luo, S. Unified Ciphertext-Policy Weighted Attribute-Based Encryption for Sharing Data in Cloud Computing. Appl. Sci. 2018, 8, 2519. https://doi.org/10.3390/app8122519

AMA Style

Li W, Ni W, Liu D, Liu RP, Luo S. Unified Ciphertext-Policy Weighted Attribute-Based Encryption for Sharing Data in Cloud Computing. Applied Sciences. 2018; 8(12):2519. https://doi.org/10.3390/app8122519

Chicago/Turabian Style

Li, Wei, Wei Ni, Dongxi Liu, Ren Ping Liu, and Shoushan Luo. 2018. "Unified Ciphertext-Policy Weighted Attribute-Based Encryption for Sharing Data in Cloud Computing" Applied Sciences 8, no. 12: 2519. https://doi.org/10.3390/app8122519

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop