Next Article in Journal
A New Notion of Fuzzy Function Ideal Convergence
Previous Article in Journal
Modified Block Bootstrap Testing for Persistence Change in Infinite Variance Observations
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Soft Set Decision and Cluster Percolation Method-Based Policy Clustering and Encryption Optimization for CP-ABE

College of Mathematics and System Science, Xinjiang University, Urumqi 830046, China
*
Author to whom correspondence should be addressed.
Mathematics 2024, 12(2), 259; https://doi.org/10.3390/math12020259
Submission received: 15 December 2023 / Revised: 9 January 2024 / Accepted: 10 January 2024 / Published: 12 January 2024
(This article belongs to the Section Mathematics and Computer Science)

Abstract

:
In ciphertext-policy attribute-based encryption, there might be different levels of overlapping in the access policies of different data objects outsourced by the same data owner. This paper proposes a soft set decision-making method and cluster percolation method-based policy clustering by using policy similarity for CP-ABE, aiming to merge the duplicated access policy pieces to reduce repeated computations during the encryption process of corresponding data objects. Firstly, the access policies are clustered using either the soft set decision-making or the cluster percolation method. Secondly, the access policies within the same cluster are integrated for further encryption of corresponding data objects as a whole, thereby preventing redundant computations during the encryption process and thus reducing computational overhead. Theoretical analysis and experimental results demonstrate the feasibility and effectiveness of the proposed approach in this paper.

1. Introduction

Attribute-based encryption (ABE) [1] has effectively addressed the issue of flexible access control for data in cloud storage. In the ciphertext-policy attribute-based encryption (CP-ABE) [2] scheme proposed by Bethencourt et al., data owners can define access policies flexibly. As a result, CP-ABE is particularly suitable for access control scenarios in cloud storage. Since most CP-ABE schemes are constructed based on elliptic curve bilinear groups, a significant number of bilinear pairings and exponentiation operations are involved in the encryption and decryption processes. These operations yield high computational costs for data owners.
In many cloud storage services that deploy CP-ABE-based access control, as data owners and consumers, many lightweight devices, such as sensors, smartphones, and remote terminals, are involved in computation-intensive data encryption/decryption operations. Therefore, improving CP-ABE encryption/decryption efficiency is a non-trivial issue. As a result, researchers have made substantial efforts to enhance encryption and decryption efficiency [3,4,5,6,7,8,9,10,11,12,13,14,15,16]. Among them, [3,4,5,6,7] are about improving encryption efficiency. Zhou et al. [3] introduced an encryption outsourcing approach. They split the access policy into two pieces, and the encryption-related computations associated with the two pieces are carried out separately by the data owner and the encryption service provider; the data owner only needs to conduct computations related to a sub-tree with just one attribute, while the encryption service provider conducts most of the remaining computations. Li et al. [4] proposed an encryption outsourcing scheme based on MapReduce technology. This scheme divides the access tree into two subtrees from the root node. The encryption-related computations for the left subtree are performed using MapReduce; the data owner performs encryption-related computations for the right subtree. Luo et al. [5] proposed a fast encryption CP-ABE scheme for the Spark big data. They utilized parallel computing methods to improve the efficiency of encryption. Hohenberger et al. [6] introduced an online/offline CP-ABE and KP-ABE scheme. Their scheme divides the encryption process into online and offline stages. The computations of bilinear pairings for encryption are performed in the offline stage; the data owner only needs to modify the relevant attribute parameters during the online stage to obtain the corresponding ciphertext. This approach reduces the computational overhead of the online encryption. Leng et al. [7] presented an ABE scheme that supports encryption outsourcing. This scheme needs to construct the shared access policy as a matrix; it outsources its construction and most of the encryption work of corresponding data objects to a cloud encryption server. As a result, the data owner only needs to perform three exponentiation operations to complete the remaining encryption process.
Researchers have made efforts to address the efficiency concerns in decryption [8,9,10,11,12,13,14,15,16]. Green et al. [8] introduced a CP-ABE scheme that outsources decryption operations to a third party. Subsequently, decryption optimization of CP-ABE has been considered in applications such as intelligent connected vehicles [9], smart healthcare [10], and the Internet of Things (IoT) [11]. The CP-ABE scheme for user privacy protection ABE [12] delegates certain operations to distributed proxy servers during the decryption stage, effectively reducing the computational cost for users. Zou et al. [13] introduced a fast decryption approach for CP-ABE. This approach incorporates Spark cluster and parallel computing techniques into the construction of the CP-ABE scheme, achieving rapid decryption. Li et al. [14] proposed a constant ciphertext length CP-ABE scheme that supports outsourcing encryption and decryption operation, significantly reducing communication costs. Zhang et al. [15] and Sheng [16], respectively, proposed fully outsourced CP-ABE schemes, enabling the outsourcing of key generation, encryption, and decryption. However, all of the mentioned approaches [3,4,5,6,7,8,9,10,11,12,13,14,15,16] address the issue of excessive computational overhead primarily by improving the algorithms’ efficiency.
To tackle the problem of increasing computational costs in encryption due to the complexity of access policies or the number of attributes, some researchers have aimed to enhance encryption efficiency by optimizing access policy and integrating similar access policies, further reducing redundant computations, leading to improve efficiency on the whole, instead of improving efficiency by optimizing encryption and decryption algorithms for single data objects. Wang et al. [17] proposed the layered access structure to solve the secure sharing of hierarchical files. The files are encrypted as a whole with one integrated access structure. This scheme integrates different access trees into a single access tree, thus saving storage costs and reducing encryption overhead. Wang [18] proposed a policy compression approach based on a greedy algorithm. This approach introduces public attribute ciphertext and “sub-policy” and achieves a compact access policy for a given access tree. It reduces the ciphertext length and improves the computational efficiency of both encryption and decryption. In [19], the authors proposed integrating access trees of different data objects of the data owner, thus avoiding repeated computations in the encryption process and reducing the computational overhead. However, this scheme deals with the case of only one shared sub-policy among different access policies. In our previous study [20], we proposed merging multiple shared sub-policies among different access policies and encrypting corresponding data objects as a whole to further reduce the overall computational cost of encryption of these data objects.
Decision-making is selecting the optimal solution from several alternatives to achieve a specific goal. Decision-making based on soft sets and their extensions with uncertainty has been adopted in various fields, including health care, management, finance, and artificial intelligence. The choice value algorithm [21] and the comparison score algorithm [22] are the two primary soft-set theory methods utilized for decision-making problems. Liu et al. [23] proposed a decision model based on a fuzzy soft set and ideal solution approach, which provides an algorithm of “divide-and-conquer” for attributes of the soft set. In contrast to existing works based on the choice value-based approach and the comparison score-based approach, it generates the optimal ideal solution according to the distinct properties of each attribute. After that, it uses the weighted Hamming distance to calculate the similarity between each possible alternative object and the ideal object. The closest one to the ideal object will be the optimal choice.
There might be varying degrees of overlap or similarity in the access policies of different data objects that the same data owner is about to outsource. The above works did not consider globally grouping data objects of a data owner according to the similarity of access policies of these data objects. If we group all data objects of a data owner according to their policy similarity and then merge the identical parts of the policies of data objects in the same group, we can avoid repeated independent computation to some extent during the encryption process, thus improving overall encryption efficiency. That is our intention.
In this paper, we address the tree access structure CP-ABE. We need to clarify some concepts beforehand to describe our study’s object better. We call a subtree with only one branch node a primary sub-policy. When a primary sub-policy appears in multiple access trees, we call it a primary shared sub-policy of these access trees.
We support “AND” gate and “OR” gate tree access structures. However, we have limitations: the parent node of each primary shared sub-policy is the root node of the whole access tree. In addition, if a data owner only releases a few data objects, or among these, access control policies have less overlapping, we might not need to cluster them. If a data owner releases many data objects and there are significant overlaps among their access policies, our scheme will be useful.
Based on previous work [20], this paper employs soft set decision-making and the cluster percolation method (CPM) [24] to cluster the access trees. Similar primary shared sub-policies among access trees from the same cluster are merged to the utmost extent; then corresponding data objects are encrypted together, thereby eliminating repeated independent computation of encryption and enhancing the overall efficiency of encryption.
The main contributions of this paper are as follows:
  • For the case that the parent node of each primary shared sub-policy is the root node of the whole access tree, we use a soft set decision-making method to cluster and then integrate all the access trees from the same cluster optimally, thus minimizing the overall computational overhead of encryption for data owners.
  • For the case that the parent node of each primary shared sub-policy is the root node of the whole access tree, we use the CPM assisted by the soft set decision-making method to cluster and then integrate all the access trees from the same cluster optimally, thus minimizing the overall computational overhead of encryption for data owners.
Our approach is suitable for data outsourcing scenarios that utilize CP-ABE-based access control where the data objects released by the same data owner have tree access policies with very good overlappings from the perspective of their sub-policies. Similar to most CP-ABE schemes, our scheme is IND-CPA secure.

2. Basic Knowledge

2.1. Bilinear Mapping

Let G 1 and G 2 be two cyclic groups of prime order p, where the generator of G 1 is g. A mapping e : G 1 × G 1 G 2 is considered bilinear if it fulfills the following three conditions.
  • Non-degeneracy: e ( g , g ) 1 ;
  • Bilinear: u , v G 1 and a , b Z p , the equation e ( u a , v b ) = e ( u , v ) a b holds;
  • Computable: x , y G 1 , the value of e ( x , y ) can be computed in polynomial time.

2.2. Monotonic Access Structure

Let { P 1 , P 2 , . . . , P n } be the set of participants. If for all subsets B and C, B A and B C , then C A , we say the set A 2 { P 1 , P 2 , . . . , P n } is monotone. A (monotonic) access structure A is a (monotonic) set formed by the non-empty subsets of { P 1 , P 2 , . . . , P n } , i.e., A 2 { 1 , 2 , . . . , n } { } . The subsets in A are called authorized sets, while the subsets not in A are referred to as unauthorized sets.

2.3. Access Tree

Let T denote an access tree composed of leaf nodes and non-leaf nodes. Each non-leaf node x in T is characterized by its child nodes and a threshold gate. Let n u m x represent the number of child nodes of node x, and k x be its threshold, where it is specified that 0 < k x n u m x . When k x = t , it represents a logic of “t out of n u m x ”. When k x = 1 , it represents a logical “OR”, and when k x = n u m x , it represents a logical “AND”.
For each node y in the access tree T , let p a r e n t ( y ) denote the parent node of y. Each parent node assigns an index value to each of its child nodes. Define the function i n d e x ( y ) to represent the index value of node y, where 1 i n d e x ( y ) n u m x . The function a t t ( y ) is defined to represent the attributes associated with the leaf node y in T .

2.4. Primary Shared Sub-Policy

Definition 1.
The same subtree that appears in multiple access trees is called a shared sub-policy of these access trees [19].
Definition 2.
If multiple access trees share the same subtree and this subtree contains only one branch node, it is called a primary shared sub-policy of these access trees.

2.5. Ideal Access Tree

Definition 3.
For a given multiple access trees, the ideal access tree is the access tree that includes all the primary shared sub-policies that appeared in these given access trees.
We only require that the ideal access tree includes all of the primary shared sub-policies that appeared in certain access trees. There are no additional requirements regarding its structure or the remaining part of it. We use it to select the most similar access tree to it, which contains the highest number of leaf nodes in its primary shared sub-policies overall. This access tree is used as a basis for later clustering and integration.

2.6. Basic Sub-Policy

Definition 4.
For given access trees, if all of them contain a primary shared sub-policy, we call this primary shared sub-policy the basic sub-policy of these access trees.

2.7. Soft Set

Definition 5.
Let ( U , E ) be a soft space, where U is the initial universal set, E is the parameter set, P ( U ) is the power set of U, and A E . Let F : A P ( U ) be a mapping. The pair ( F , A ) is a soft set over the universe U.
Example 1.
U is the initial universal set, consisting of six houses: U = { h 1 , h 2 , h 3 , h 4 , h 5 , h 6 } . The parameter set E is given as E = { e 1 , e 2 , e 3 , e 4 , e 5 , e 6 , e 7 } , where e 1 , e 2 , e 3 , e 4 , e 5 , e 6 , and e 7 , respectively, represent attributes “expensive”, “good environment”, “wooden”, “beautiful”, “cheap”, “well-maintained”, and “in disrepair”. In this soft space ( U , E ) , defining a soft set indicates attributes such as “expensive” and “beautiful”. Suppose someone is interested in purchasing a house and is concerned with attributes e 1 , e 2 , e 3 , e 4 , e 5 . Their evaluation of houses can be represented as a soft set ( F , A ) , where A = { e 1 , e 2 , e 3 , e 4 , e 5 } . Let us assume that F ( e 1 ) = { h 2 , h 4 } , F ( e 2 ) = { h 1 , h 3 } , F ( e 3 ) = { h 3 , h 4 , h 5 } , F ( e 4 ) = { h 1 , h 3 , h 5 } , and F ( e 5 ) = { h 1 } . Then, F ( e 1 ) = { h 2 , h 4 } indicates that houses h 2 and h 4 are “expensive”, F ( e 2 ) = { h 1 , h 3 } indicates that houses h 1 and h 3 have a “good environment”, and similar interpretations can be made for the other attributes.

2.8. Decision Function Based on Hamming Distance

Hamming distance describes the degree of difference between two elements of equal length.
Definition 6.
The normalized Hamming distance of dimension n is a mapping d H : R n × R n R that satisfies:
d H ( A , B ) = 1 n ( i = 1 n | a i b i | )
where A = ( a 1 , a 2 , , a n ) , B = ( b 1 , b 2 , , b n ) .
Here, we treat each primary shared sub-policy as an attribute for decision-making. Let U be composed of attributes (primary shared sub-policies), and ( F , A ) be a soft set on the domain U. All attributes have equal importance. Let u g o a l represent the optimal solution. Thus, the decision problem becomes an optimization problem:
m i n { d H ( u g o a l , u i ) u i U , i = 1 , 2 , , n }
where n is the number of elements in the initial universal set.
Definition 7.
Let W = ( w 1 , w 2 , , w n ) be the weights, i = 1 n w i = 1 . The weighted Hamming distance d W H is a mapping d W H : R n × R n R given by:
d W H ( A , B ) = i = 1 n w i a i b i , i = 1 , 2 , , n
where A = ( a 1 , a 2 , , a n ) , B = ( b 1 , b 2 , , b n ) .

2.9. Primary Shared Sub-Policy Weight

Our proposal calculates the distance between each access tree and the ideal access tree using the weighted Hamming distance. The weights for each attribute (primary shared sub-policy) are calculated according to the following definitions:
Definition 8.
The impact factor of a primary shared sub-policy is defined as multiplying the number of access trees containing it by the number of leaf nodes within it.
Definition 9.
The maximum combinable number of a primary shared sub-policy is defined as subtracting its number of leaf nodes from its impact factor.
Definition 10.
The weight of a primary shared sub-policy is defined as dividing its maximum combinable number by the sum of the maximum combinable numbers of all the primary shared sub-policies.

2.10. Cluster Percolation Method

A faction refers to an undirected graph where any two nodes are connected by an edge, forming a complete subgraph or cluster. The maximal complete subgraph has the highest number of nodes among all complete subgraphs. A complete subgraph with k nodes in the graph is called a k clique. We say two k-cliques are connected if one overlaps with another by k 1 nodes, as shown in Figure 1.
The set of all connected cliques with a size of k or greater than k forms a k-community, as shown in Figure 2.
The main idea of the CPM is first to find complete subgraphs and then utilize these complete subgraphs to find k-communities; the k value of a community represents that the community is composed of cliques of size k or greater than k. After finding all k cliques, an overlap matrix of these cliques can be constructed. In this symmetric matrix, each row (column) represents a clique, and the non-diagonal elements of the matrix represent the number of common nodes in two connected cliques. The diagonal elements represent the size of the clique. By setting non-diagonal elements less than k 1 to 0 and diagonal elements less than k to 0, with other elements set to 1, we obtain a k-clique adjacency matrix, where each connected part forms a k-community, as shown in Figure 3.
In our second approach, we measure the similarity between two access trees based on the number of leaf nodes in their primary shared sub-policies. Using this similarity metric, we find k-cliques and combine multiple connected k-cliques to form the k-community. We select the k-community with the largest number of nodes and the maximum value of k as the pre-selected result for clustering. Finally, we refine the pre-selected result using the soft-set decision-making method.

3. Access Policy Clustering Method Based on Soft Set Decision-Making

3.1. Overview

In this paper, we first use a soft set decision-making method to select an optimal access tree closest to the ideal access tree, i.e., the one with the highest number of leaf nodes in all its primary shared sub-policies, from a given number of access trees. After that, we select the primary shared sub-policy with the maximum combinable number and use this primary shared sub-policy as the clustering criterion to put all access trees containing this primary shared sub-policy into one cluster; the rest of the access trees are repeatedly clustered using the same method.
The following example illustrates the clustering method of the access policy based on soft-set decision-making.
Example 2.
Consider an example of 20 access trees T 1 , T 2 , , T 20 containing 10 primary shared sub-policies T A , T B , , T J . Each tree’s primary shared sub-policies are randomly given, as shown in Table 1. The numbers in the table indicate the number of leaf nodes of a primary shared sub-policy included in the access tree.
First, we count all primary sub-policies of each access tree and further determine all primary shared sub-policies according to whether they appear repeatedly in different access trees. Next, use all primary shared sub-policies to construct a vector. Each component represents if the corresponding primary shared sub-policy is included; if included, the component is set to 1; otherwise, it is set to 0.
According to Table 1, the minimum shared sub-policies of the access tree T 1 can be represented by the vector (1,0,1,0,1,1,0,0,1,0). The representation of other access trees is in the same way. For the ideal access tree containing all the minimum shared sub-policies, the corresponding vector is represented as (1,1,1,1,1,1,1,1,1,1).
( F , A ) = e 1 e 2 e 3 e 4 e 5 e 6 e 7 e 8 e 9 e 10 T g o a l 1 1 1 1 1 1 1 1 1 1 T 1 1 0 1 0 1 1 0 0 1 0 T 2 1 0 1 0 1 0 0 0 0 1 T 3 0 1 0 1 0 1 0 1 1 0 T 4 1 0 0 0 1 0 0 0 0 0 T 5 0 1 1 0 0 1 0 0 1 0 T 6 0 0 0 1 0 0 0 0 0 0 T 7 0 0 0 0 0 1 0 0 0 1 T 8 0 0 0 1 0 0 1 0 0 0 T 9 0 0 0 0 0 1 0 0 0 1 T 10 0 1 0 0 0 0 0 1 0 0 T 11 0 0 1 0 0 0 0 0 0 0 T 12 0 1 0 0 1 0 1 0 1 0 T 13 0 0 1 0 0 1 0 0 0 0 T 14 1 0 0 0 0 0 0 0 0 1 T 15 0 0 0 1 0 0 0 0 0 0 T 16 0 1 1 0 0 0 0 0 0 0 T 17 0 0 0 0 0 1 0 1 0 0 T 18 0 1 0 0 0 0 1 0 0 1 T 19 0 0 0 0 1 0 0 0 1 0 T 20 1 0 1 0 0 1 0 1 0 0
As shown in Table 1, the number of leaf nodes for the primary shared sub-policies T A , T B , , T J are 3; 2; 1; 3; 2; 1; 2; 2; 1; 2, respectively. Five access trees include the primary shared sub-policy T A , so the impact factor of T A is 3 × 5 = 15 . Similarly, for the primary shared sub-policies T B , , T J , the impact factors are as follows: 12: 7; 12; 10; 8; 6; 8; 5; 10.
Next, calculate the maximum combinable number for each primary shared sub-policy. The maximum combinable number for the primary sharing sub-policy T A is 15-3=12. Similarly, for the primary shared sub-policies T B , , T J , the maximum combinable numbers are as follows: 10; 6; 9; 8; 7; 4; 6; 4; 8.
After that, calculate the weights for the primary shared sub-policies as follows: For T A , the weight is 12/(12+10+6+9+8+7+4+6+4+8)=12/74. For T B , , T J , the weights are: 10/74; 6/74; 9/74; 8/74; 7/74; 4/74; 6/74; 4/74; 8/74.
Using the soft set decision-making matrix (1), calculate the weighted Hamming distance between each access tree and the ideal access tree as follows:
d H ( T g o a l , T 1 ) = 37 / 74 , d H ( T g o a l , T 2 ) = 40 / 74 , d H ( T g o a l , T 3 ) = 38 / 74
d H ( T g o a l , T 4 ) = 54 / 74 , d H ( T g o a l , T 5 ) = 47 / 74 , d H ( T g o a l , T 6 ) = 65 / 74
d H ( T g o a l , T 7 ) = 59 / 74 , d H ( T g o a l , T 8 ) = 61 / 74 , d H ( T g o a l , T 9 ) = 59 / 74
d H ( T g o a l , T 10 ) = 58 / 74 , d H ( T g o a l , T 11 ) = 71 / 74 , d H ( T g o a l , T 12 ) = 56 / 74
d H ( T g o a l , T 13 ) = 61 / 74 , d H ( T g o a l , T 14 ) = 54 / 74 , d H ( T g o a l , T 15 ) = 65 / 74
d H ( T g o a l , T 16 ) = 58 / 74 , d H ( T g o a l , T 17 ) = 61 / 74 , d H ( T g o a l , T 18 ) = 52 / 74
d H ( T g o a l , T 19 ) = 62 / 74 , d H ( T g o a l , T 20 ) = 43 / 74
Since d H ( T g o a l , T 1 ) = 37 / 74 is the smallest, tree T 1 is selected as the optimal tree.
The optimal tree T 1 contains the primary shared sub-policies: T A , T C , T E , T F , T I . The largest maximum combinable number among them is 12, and the corresponding primary shared sub-policy is T A . We chose it as the criterion for the first clustering. Access trees T 1 , T 2 , T 4 , T 14 , T 20 , containing the primary shared sub-policy T A , are grouped into the first cluster.
We repeat the same method for the remaining access trees from scratch. T 3 has the smallest weighted Hamming distance with the ideal access tree. Therefore, T 3 is chosen as the optimal tree for the second clustering. In T 3 , the primary shared sub-policies are T B , T D , T F , T H , T I .
Among them, the largest maximum combinable number is 10, and the corresponding primary shared sub-policy is T B . We chose it as the criterion for the second clustering. Access trees T 3 , T 5 , T 10 , T 12 , T 16 and T 18 , containing the primary shared sub-policy T B , are grouped into the second cluster. The remaining trees are further clustered using the same method.

3.2. A General Approach to Access Tree Clustering Based on Soft Set Decision-Making

Based on Example 2, we provide a general soft set decision-making-based clustering method for access trees.
  • Find primary shared sub-policies in a given multiple access trees. Determine the current ideal access tree. For each access tree, count the number of primary shared sub-policies and the number of leaf nodes each primary shared sub-policy contained.
  • Calculate the impact factor, maximum combinable number, and weight for each primary shared sub-policy.
  • Calculate the weighted Hamming distance between each access tree and the ideal access tree.
  • Select the access tree with the smallest distance from the ideal access tree as the optimal tree. Select the primary shared sub-policy with the largest maximum combinable number in the optimal tree as the criterion for clustering. Put access trees containing this primary shared sub-policy into a cluster.
  • Repeat steps 1–4 for the remaining access trees until all access trees are clustered.

4. Access Policy Clustering Method Based on Cluster Percolation Method

4.1. Overview

Below, we introduce our second approach of access control policy clustering. We use the total number of leaf nodes in the primary shared sub-policies contained in two access trees to measure the similarity between them; based on this metric, regarding access trees as nodes, we find all maximal complete subgraphs among the access trees and regard each maximal complete subgraph as a clique to construct the overlapping matrix. The overlapping matrix is then transformed into a community adjacency matrix, as described in Section 2.10, We select the k-community with the largest number of nodes (access trees) and the maximum value of k as the pre-selected result for clustering. If all these access trees contain at least one primary shared sub-policy, this pre-selected result becomes the final result. If there is no primary shared sub-policy contained in all access trees in the pre-selected result, then we chose the primary shared sub-policy with the largest maximum combinable number among primary shared sub-policies that these access trees in the pre-selected result contain. Other access trees that do not contain the selected primary shared sub-policy are eliminated from the pre-selected result, and the remaining access trees become the final result.
CFinder-2.0.6–1448 (https://www.cfinder.org/, accessed on 1 March 2023) is a software developed by Adamcsek et al. [25] for searching, visualizing, and analyzing the implicit group module of graphs based on the CPM. It can find cliques of a specified size in the graph and construct larger communities from the nodes and edges shared in the cliques.
The following is an example to introduce our access policy clustering approach based on the CPM.
Example 3.
Suppose 20 primary shared sub-policies T A , T B , , T T randomly distributed in 50 access trees T 1 ( A N D ) , T 2 ( A N D ) , , T 50 ( O R ) , where ( A N D ) or ( O R ) denotes the threshold value of the root node of this access tree, as shown in Table 2.
We take the sum of the number of leaf nodes contained in all the identical primary shared sub-policies in two trees as the similarity of the two trees. The access tree T 1 ( A N D ) and T 2 ( A N D ) share a primary shared sub-policy T D that has three leaf nodes; therefore, the similarity between T 1 ( A N D ) and T 2 ( A N D ) is 3. There is no identical primary shared sub-policy in access tree T 1 ( A N D ) and access tree T 12 ( A N D ) ; thus, the similarity between access tree T 1 ( A N D ) and access tree T 12 ( A N D ) is 0. Therefore, we obtain the similarity between every two access trees. The similarity between partial access trees is shown in Table 3.
Subsequently, all the similarity data are imported into CFinder; we first set the similarity threshold to 3. The community with the largest k value and maximum nodes (access trees) is selected as a pre-selected result of the first clustering among the communities generated from the similarity data. Now, 17 access trees T 2 ( A N D ) , T 4 ( O R ) , T 7 ( A N D ) , T 18 ( A N D ) , T 20 ( O R ) , T 25 ( A N D ) , T 28 ( O R ) , T 29 ( A N D ) , T 30 ( A N D ) , T 32 ( A N D ) , T 33 ( A N D ) , T 34 ( O R ) , T 35 ( A N D ) , T 36 ( O R ) , T 44 ( A N D ) , T 45 ( O R ) , T 50 ( O R ) are pre-selected results. All of them contain the primary shared sub-policy T N , there is no need to exclude any access tree from the first cluster. Therefore, these access trees are the result of the first clustering, as shown in Table 4.
Similarly, the similarity data for the remaining 33 access trees were imported into CFinder. We set the similarity threshold to 3, The communities with the largest k value and maximum nodes (access trees) are T 1 ( A N D ) , T 13 ( A N D ) , T 15 ( A N D ) , T 16 ( O R ) , T 17 ( O R ) , T 22 ( O R ) , T 23 ( O R ) , T 39 , T 40 ( O R ) , T 42 ( A N D ) , T 47 ( A N D ) . Since these access trees do not have a primary shared sub-policy in common, we need to handle them further. We compute the maximum combinable number of primary shared sub-policies contained in these trees.
The primary shared sub-policy T O has the largest maximum combinable number and is chosen as the criterion for further clustering. The access trees T 1 ( A N D ) , T 22 ( O R ) that do not contain T O are excluded from the current pre-selected cluster; the remaining trees T 13 ( A N D ) , T 15 ( A N D ) , T 16 ( O R ) , T 17 ( O R ) , T 23 ( O R ) , T 39 ( A N D ) , T 40 ( O R ) , T 42 ( A N D ) , T 47 ( A N D ) are the final result of the second clustering. These access trees contain primary shared sub-policies, as shown in Table 5.
Similarly, the similarity data for the remaining 24 access trees were imported into CFinder. We set the similarity threshold to 2, The communities with the largest k value and maximum nodes (access trees) are T 6 ( O R ) , T 8 ( A N D ) , T 9 ( O R ) , T 10 ( O R ) , T 21 ( O R ) , T 22 ( O R ) , T 26 ( A N D ) , T 31 ( O R ) , T 41 ( A N D ) , T 46 ( O R ) . All of these access trees contain the primary shared sub-policy T J , so it does not require excluding any access tree from the cluster. Therefore, the pre-selected access trees above are the result of the third clustering. These access trees contain primary shared sub-policies, as shown in Table 6.
The remaining 22 access trees can then be clustered in the same way, but we omit it here for brevity.

4.2. A General Approach to Access Tree Clustering with Cluster Percolation Method

Based on example 3, a general method for clustering access trees based on CPM is given.
  • For all primary shared sub-policies between every two access trees, calculate the sum of the number of leaf nodes contained in these primary shared sub-policies and take it as the similarity of the two trees.
  • Set the similarity threshold and use the CPM to find all cliques and communities composed of access trees.
  • Access trees from the community with the largest value of k and maximum nodes (access trees) are set to be the pre-selected result for clustering. If all these access trees contain at least one primary shared sub-policy, this pre-selected result becomes the final result. If there is no primary shared sub-policy contained in all access trees in the pre-selected result of the cluster, then we choose the primary shared sub-policy with the largest maximum combinable number among primary shared sub-policies that these access trees in the pre-selected result contain; other access trees that do not contain the primary shared sub-policy are eliminated from the pre-selected result, and the remaining access trees become the final result.
  • Repeat step 2 and step 3 for the remaining access trees until all access trees are clustered.

5. Amendment and Integration of Access Trees in the Same Cluster

5.1. Overview

After first-level clustering according to clustering methods provided in Section 3.2 or Section 4.2, access trees within the same cluster are further categorized into A N D -type and O R -type classes based on the threshold value of their root node. Then, based on the similarity of the access trees, we perform divisive clustering for all access trees in the two classes until all access trees in the same cluster have at least two primary shared sub-policies in common. Then, starting from the final round of clustering results, we do the following: integrate the access trees of the same class and within the same cluster to achieve a bigger access tree corresponding to that cluster, and then integrate the bigger access trees within these same classes to achieve much bigger access trees. Repeat this integration operation until two large access trees with A N D root and O R root are generated, respectively. Then, the two access trees are connected with basic sub-policies as crossing nodes.

5.2. Amendment of Access Trees within the Same Class

Before integrating access trees in the same class, we need to make some amendments to them. Here, for clarity, we first illustrate how to amend access trees using an example of four trees T 1 , T 2 , T 3 and T 4 . Suppose they are from the same class ( A N D -type) and the same cluster of the first-level clustering. The symbols T 1 ( o t h e r ) , T 2 ( o t h e r ) , T 3 ( o t h e r ) , T 4 ( o t h e r ) are used to denote the non-shared sub-policy part of access trees; the symbols T A , T B , T C denote the primary shared sub-policy part.
The four access trees have basic sub-policy T A and the primary shared sub-policy T B in common. We add a child node—“ A N D ”, the same child node as the root node, under the root node, making it the parent node of the two primary shared sub-policies. The two primary shared sub-policies with their newly added parent node construct a new shared sub-policy for all access trees; we denote it T A B ( A N D ) . We can observe that T 3 and T 4 have T A B ( A N D ) and T C in common. Therefore, we repeat the above operation; that is, we add the “ A N D ” node under the root node of T 3 and T 4 , making it the parent node of the two shared sub-polices T A B ( A N D ) and T C . Before and after the amendment are shown in Figure 4. Access trees in the O R -type class can be amended in the same way. Here, we omit it.

5.3. Case Study of Policy Integration

The following illustrates the amendment and integration of access trees within the first cluster in Example 3.
Example 4.
As part of the first-level clustering result, there are 17 trees in the first clusters in Example 3, and the primary shared sub-policies they contain are shown in Table 4.
These trees all contain the primary shared sub-policy T N , where T N is the basic sub-policy in this cluster. The access trees with the “ A N D ” root node are categorized into the A N D -type class; they are T 2 ( A N D ) , T 7 ( A N D ) , T 18 ( A N D ) , T 25 ( A N D ) , T 29 ( A N D ) , T 30 ( A N D ) , T 32 ( A N D ) , T 33 ( A N D ) , T 35 ( A N D ) , T 44 ( A N D ) . The access trees with the “ O R ” root node are categorized into the O R -type class; they are T 4 ( O R ) , T 20 ( O R ) , T 28 ( O R ) , T 34 ( O R ) , T 36 ( O R ) , T 45 ( O R ) , T 50 ( O R ) . After first-level clustering and classifying, we now start second-level clustering. In the domain of A N D -type class, the maximum combinable numbers of these 20 primary shared sub-policies are recalculated. They are 3 , 6 , 4 , 6 , 2 , 10 , 3 , 9 , 0 , 3 , 4 , 9 , 6 , 36 , 4 , 12 , 1 , 4 , 4 , 6 . Besides the basic sub-policy T N , T P has the largest maximum combinable number. The access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) containing both T P and T N are put into a new cluster as a part of second-level clustering result, and their structure is illustrated in Figure 5.
Since these access trees also contain the primary shared sub-policy T F , T F and T P can be integrated with the basic sub-policy T N first. For the cluster of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) that generated in the second-level clustering, we add a child node—“ A N D ”, the same child node as the root node, under the root node, making it the parent node of the three primary shared sub-policies. The three primary shared sub-policies with their newly added parent node construct a new shared sub-policy for these access trees; we denote it T N P F ( A N D ) . We recompute the maximum combinable number of each primary shared sub-policy within the domain composed of these four access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) , and they are 0 ; 0 ; 2 ; 6 ; 0 ; 6 ; 3 ; 3 ; 4 ; 0 ; 0 ; 3 ; 0 ; 12 ; 4 ; 12 ; 1 ; 4 ; 0 ; 0 . Besides the primary shared sub-policies T P , T F , and basic sub-policy T N , we find the primary shared sub-policy T D that has the largest maximum combinable number out of the remaining 17 minimal sub-polices. We can observe that T 2 ( A N D ) , T 25 ( A N D ) and T 32 ( A N D ) have T N P F ( A N D ) and T D in common. Therefore, we repeat the above operation, that is, we add the “ A N D ” node under the root node of T 2 ( A N D ) , T 25 ( A N D ) and T 32 ( A N D ) , making it the parent node of the two shared sub-polices T N P F ( A N D ) and T C . According to the access tree amendment method provided in Section 5.2, we have the amendment results of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) , as illustrated in Figure 6; we also have the amendment results of access trees T 2 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) , as illustrated in Figure 7.
Then the identical parts T ( N P F D ) ( A N D ) of the three access trees T 2 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) are merged first to obtain a bigger access tree; then, the identical parts T N P F ( A N D ) of the newly generated bigger access tree and T 32 ( A N D ) are merged. Finally, we obtained the final integrated access structure shown in Figure 8.
In the domain of the A N D -type class, for the remaining 6 access trees T 18 ( A N D ) , T 29 ( A N D ) , T 30 ( A N D ) , T 33 ( A N D ) , T 35 ( A N D ) , T 44 ( A N D ) , we repeat the same second-level clustering method. The maximum combinable numbers of these 20 primary shared sub-policies are recalculated. They are 0 ; 4 ; 4 ; 3 ; 0 ; 2 ; 3 ; 3 ; 0 ; 0 ; 0 ; 3 ; 3 ; 20 ; 4 ; 4 ; 1 ; 4 ; 0 ; 4 . Besides the basic sub-policy T N , T C has the largest maximum combinable number. The access trees T 18 ( A N D ) , T 29 ( A N D ) , T 33 ( A N D ) containing both T N and T C are categorized into second-level clustering results. Since these access trees contain the primary shared sub-policy T C , T C can be integrated with the basic sub-policy T N first. For the cluster of access trees T 18 ( A N D ) , T 29 ( A N D ) , T 33 ( A N D ) that were generated in the second-level clustering, we add a child node—“ A N D ”, the same child node as the root node, under the root node, making it the parent node of the two primary shared sub-policies. The two primary shared sub-policies with their newly added parent node construct a new shared sub-policy for these access trees; we denote it T N C ( A N D ) . We recompute the maximum combinable number of each primary shared sub-policy within the domain composed of these three access trees T 18 ( A N D ) , T 29 ( A N D ) , T 33 ( A N D ) , and they are 0 ; 2 ; 4 ; 3 ; 2 ; 0 ; 0 ; 3 ; 4 ; 0 ; 0 ; 0 ; 3 ; 8 ; 4 ; 4 ; 1 ; 4 ; 4 ; 0 . Besides the primary shared sub-policies T C and basic sub-policy T N , we find the primary shared sub-policy T B that has the largest maximum combinable number out of the remaining 18 minimal sub-polices. We can observe that T 18 ( A N D ) and T 29 ( A N D ) have T N C ( A N D ) and T B in common. Therefore, we repeat the above operation, that is, we add the “ A N D ” node under the root node of T 18 ( A N D ) and T 29 ( A N D ) , making it the parent node of the two shared sub-polices T N C ( A N D ) and T B . We repeat previous amendment and integration methods. The access trees T 18 ( A N D ) , T 29 ( A N D ) and T 33 ( A N D ) are connected into one access tree using the basic sub-policy as a cross-node. For the remaining 3 access trees, T 30 ( A N D ) , T 35 ( A N D ) , T 44 ( A N D ) , we repeat the same method. After that, the basic sub-policy is used as a cross-node to integrate these ten access trees into one access tree. The access trees in the O R -type class are amended and integrated similarly. Finally, the O R -type access tree and A N D -type access tree are integrated into one access tree using the basic sub-policy as a cross-node.

5.4. A General Approach for Integration of Access Trees in the Same Cluster

Based on Example 4, a general approach for integrating access trees in the same cluster is given.
  • For first-level clustering results, access trees within the same cluster are classified into A N D -type access trees and O R -type access trees according to the threshold of the parent node of the primary shared sub-policy (the root node of the access tree).
  • Select the primary shared sub-policy, excluding the basic sub-policy, with the largest maximum combinable number in the same class as the criterion for the second-level clustering. Conduct the second-level clustering for the remaining access trees until all access trees in the same cluster have at least two primary shared sub-policies in common.
  • Make amendments and integration of the access trees in clusters that generated the second-level clustering; connect access trees in the same type access tree into one large access tree using the basic sub-policy as a cross node.
  • Connect the A N D -type access tree and O R -type access tree with the basic sub-policy to obtain an access tree.

5.5. Secret Sharing for Integrated Access Trees

As a preparation for our CP-ABE scheme with policy integration, we use six access trees with different sub-policies, as shown in Figure 9, to illustrate how to set the security parameter s (the constant term of the polynomial) for each node within the integrated access tree. According to the integration method described in Section 5.4, access trees within the same class are integrated first; then, we obtain two big access trees with the A N D root node and O R root node. The result of the integration is shown in Figure 10. These two access trees are finally integrated into one access tree using the basic sub-policy as a cross-node, as shown in Figure 11.
Starting from the root node, a polynomial f t ( x ) needs to be generated for each node N t in the integrated access tree; the degree of the polynomial equals the threshold value of the node minus one, i.e., d t = k t 1 . As shown in Figure 11, starting from the root node N 0 , for each node, the data owner generates a polynomial in the following way: first, choose a random number s Z p such that f 0 ( 0 ) = s . Then s d o , s d o 1 , , s 1 Z p is randomly chosen to determine f 0 ( x ) , that is f 0 ( x ) = s d o x d o + s d o 1 x d o 1 + + s 1 x + s . Since N ( 1 ) is an A N D node, the corresponding polynomial is made using the secret sharing scheme; details are as follows: f 1 ( x ) = a d 1 x d 1 + a d 1 1 x d 1 1 + + a 1 x + a 0 ; set the index value of N 0 to be 1, i.e., i n d e x ( N 0 ) = 1 , then s = f 1 ( 1 ) = a d 1 + a d 1 1 + + a 1 + a 0 ; choosing the remaining d 1 points again, we can determine a 0 = s ( a d 1 + a d 1 1 + + a 1 ) . Since N ( n ) is an A N D node, assignments are made according to the secret sharing scheme such that f n ( x ) = n d n x d n + n d n 1 x n n 1 + + n 1 x + n 0 . set the index value of N 0 to be 1, i.e., i n d e x ( N 0 ) = 1 , then s = f 1 ( 1 ) = a d 1 + a d 1 1 + + a 1 + a 0 ; choosing the remaining d n points again, we can determine n 0 = s ( n d n + a n 1 n + + n 1 ) . Since N ( 2 ) is an O R node, assignments are made according to the secret sharing scheme such that f 2 ( 0 ) = f 0 ( 0 ) = s . For N ( 1 ) with parents N p and N m , and N ( 2 ) with parents N q and N s , there are
f m ( i n d e x ( N ( 1 ) ) ) = f p ( i n d e x ( N ( 1 ) ) ) = f 1 ( 0 ) = a 0
f q ( i n d e x ( N ( 2 ) ) ) = f s ( i n d e x ( N ( 2 ) ) ) = f 2 ( 0 ) = f 0 ( 0 ) = s
Let f m ( x ) = m d m x d m + m d m 1 x d m 1 + + m 1 x + m 0 . f p ( x ) = p d p x d p + p d p 1 x d p 1 + + p 1 x + p 0 , f q ( x ) = q d q x d q + q d q 1 x d q 1 + + q 1 x + q 0 , f s ( x ) = s d s x d s + s d s 1 x d s 1 + + s 1 x + s 0 . s = q d q + q d q 1 + + q 1 + q 0 = s d s + s d s 1 + + s 1 + s 0 . set N ( 1 ) in f m ( x ) and f p ( x ) , and N ( 2 ) in f q ( x ) and f s ( x ) both have index values 1, i.e., i n d e x ( N ( 1 ) ) = i n d e x ( N ( 2 ) ) = 1 , then a o = f m ( 1 ) = f p ( 1 ) , s = f q ( 1 ) = f s ( 1 ) , i.e., a 0 = p d p + p d p 1 + + p 1 + p 0 = m d m + m d m 1 + + m 1 + m 0 . s = q d q + q d q 1 + + q 1 + q 0 = s d s + s d s 1 + + s 1 + s 0 . Selecting the remaining d m + d p + d q + d s points can then be computed:
p 0 = a 0 ( p d p + p d p 1 + + p 1 )
m 0 = a 0 ( m d m + m d m 1 + + m 1 )
q 0 = s ( q d q + q d q 1 + + q 1 )
s 0 = s ( s d s + s d s 1 + + s 1 )
Thus, f p ( x ) , f m ( x ) , f q ( x ) and f s ( x ) are determined. For the parent nodes N r and N t of N ( m ) , there are
f r ( i n d e x ( N ( m ) ) ) = f t ( i n d e x ( N ( m ) ) ) = f m ( 0 ) = m 0
Let f r ( x ) = r d r x d r + r d r 1 x d r 1 + + r 1 x + r 0 , f t ( x ) = t d t x d t + t d t 1 x d t 1 + + t 1 x + t 0 . set the index value of N ( m ) in f r ( x ) and f t ( x ) to be 1, i.e., i n d e x ( N ( m ) ) = 1 , then m o = f r ( 1 ) = f t ( 1 ) , i.e., m 0 = r d r + r d r 1 + + r 1 + r 0 = t d t + t d t 1 + + t 1 + t 0 . Selecting the remaining d r + d t points can then be computed:
r 0 = m 0 ( r d r + r d r 1 + + r 1 )
t 0 = m 0 ( t d t + t d t 1 + + t 1 )
Thus, f r ( x ) , f t ( x ) are determined. For the other nodes N t , let f t ( 0 ) = f p a r e n t ( N t ) ( i n d e x ( N t ) ) , and choose the remaining d t values to determine f t ( x ) . Thus, the polynomial for each node in the integrated access tree can be determined.

6. Construction of CP-ABE Scheme with Integrated Access Trees

6.1. System Architecture

The system framework for this proposal is illustrated in Figure 12. The proposal involves four entities, as follows:
-
Cloud storage platform (CSP): responsible for storing the ciphertext uploaded by data owners; it is semi-trusted.
-
Attribute authority (AA): responsible for generating the system’s public key and master private key and generating private keys for data users based on their attributes; it is fully trusted.
-
Data owner (DA): responsible for specifying access policies and uploading ciphertexts embedded with access policies to the CSP.
-
Users: can download ciphertext from the CSP and successfully decrypt it when their attributes satisfy the access policies.

6.2. Algorithm Description

This CP-ABE scheme primarily consists of four algorithms: system establishment ( S e t u p ), key generation ( K e y G e n ), data encryption ( E n c r y p t ), and data decryption ( D e c r y p t ). The algorithm definitions are as follows:
(1) S e t u p ( 1 λ ) ( P K , M S K ) : The AA executes this algorithm. It takes the system’s security parameter λ as input and produces its public key P K and master key M S K as output.
(2) K e y G e n ( P K , M S K , S ) S K : The AA executes this algorithm, generating the corresponding private key for data users based on their attribute set. It takes the system’s public key P K , master key M S K , and the attribute set S of the user as input and produces the user’s private key S K as output.
(3) E n c r y p t ( P K , { M i } 1 i n , { T i } 1 i n ) { C T i } 1 i n : The DA executes this algorithm, encrypting data M i using the access tree T i , where there are shared sub-policies among n access trees. The algorithm takes the system’s public key P K , data { M i } 1 i n , and access trees { T i } 1 i n as input, and produces ciphertext { C T i } 1 i n as output.
(4) D e c r y p t ( P K , S K , C T i ) ( M i ) , 1 i n : The data users execute this algorithm, using their private key S K to decrypt ciphertext C T i . The algorithm takes the system’s public key P K , user’s private key S K , and ciphertext C T i as input and produces the corresponding plaintext data M i as output.

6.3. Details of Algorithms

The CP-ABE scheme for multiple shared sub-policies proposed in this paper includes four algorithms: system setup ( S e t u p ), key generation ( K e y G e n ), data encryption ( E n c r y p t ), and data decryption ( D e c r y p t ). The detailed descriptions of each algorithm are as follows:
(1) S e t u p
Two multiplicative cyclic groups are selected, denoted as G 1 and G 2 , both of prime order p. Let g be the generator of G 1 . A bilinear map e : G 1 × G 1 G 2 is defined, and a hash function H : { 0 , 1 } * G 1 is chosen. The AA randomly selects α and β from Z p * and generates the system’s public key P K and master key M S K as follows:
P K = ( G 1 , g , g β , e ( g , g ) α )
M S K = ( β , g α )
Finally, the AA publishes P K to all data owners and users.
(2) K e y G e n
Based on the user’s attribute set S, the AA generates the corresponding private key S K . The AA first randomly selects r Z p , and then for each attribute i in the attribute set S, it randomly selects r i Z p . Finally, it computes the user’s private key S K as follows:
S K = ( D = g α + r β , i A : D i = g r · H ( i ) r i , D i = g r i )
(3) E n c r y p t
Here, we describe the algorithm using the example of 6 distinct shared sub-policy access trees, as depicted in Figure 9. First, the encryption algorithm constructs polynomials for all nodes of the access tree, following the secret sharing scheme described in Section 5.5. Second, it computes the ciphertext using the traditional CP-ABE encryption scheme [2]. Let Y ( T A ) , Y ( T B ) , Y ( T C ) , Y ( T D ) and Y ( T E ) be the sets of leaf nodes of primary shared sub-policies A , B , C , D , and E. Y ( T o t h e r i ) , i = 1 , 2 , . . . , 6 be the sets of leaf nodes of the non-shared parts of access trees T o t h e r i , i = 1 , 2 , . . . , 6 , respectively. The encryption of data M 1 , M 2 , M 3 , M 4 , M 5 and M 6 is as follows:
C T 1 = ( T 1 , C ˜ = M 1 · e ( g , g ) α f n ( 0 ) , C = g β f n ( 0 ) , N a Y ( T A ) : C N a = g f a ( 0 ) , C N a = H ( a t t ( N a ) ) f a ( 0 ) , N o t h e r 1 Y ( T o t h e r 1 ) : C N o t h e r 1 = g f o t h e r 1 ( 0 ) , C N o t h e r 1 = H ( a t t ( N o t h e r 1 ) ) f o t h e r 1 ( 0 ) )
C T 2 = ( T 2 , C ˜ = M 2 · e ( g , g ) α f p ( 0 ) , C = g β f p ( 0 ) , N a Y ( T A ) : C N a = g f a ( 0 ) , C N a = H ( a t t ( N a ) ) f a ( 0 ) , N b Y ( T B ) : C N b = g f b ( 0 ) , C N b = H ( a t t ( N b ) ) f b ( 0 ) , N o t h e r 2 Y ( T o t h e r 2 ) : C N o t h e r 2 = g f o t h e r 2 ( 0 ) , C N o t h e r 2 = H ( a t t ( N o t h e r 2 ) ) f o t h e r 2 ( 0 ) )
C T 3 = ( T 3 , C ˜ = M 3 · e ( g , g ) α f t ( 0 ) , C = g β f t ( 0 ) , N a Y ( T A ) : C N a = g f a ( 0 ) , C N a = H ( a t t ( N a ) ) f a ( 0 ) , N b Y ( T B ) : C N b = g f b ( 0 ) , C N b = H ( a t t ( N b ) ) f b ( 0 ) , N c Y ( T C ) : C N c = g f c ( 0 ) , C N c = H ( a t t ( N c ) ) f c ( 0 ) , N o t h e r 3 Y ( T o t h e r 3 ) : C N o t h e r 3 = g f o t h e r 3 ( 0 ) , C N o t h e r 3 = H ( a t t ( N o t h e r 3 ) ) f o t h e r 3 ( 0 ) )
C T 4 = ( T 4 , C ˜ = M 4 · e ( g , g ) α f r ( 0 ) , C = g β f r ( 0 ) , N a Y ( T A ) : C N a = g f a ( 0 ) , C N a = H ( a t t ( N a ) ) f a ( 0 ) , N b Y ( T B ) : C N b = g f b ( 0 ) , C N b = H ( a t t ( N b ) ) f b ( 0 ) , N c Y ( T C ) : C N c = g f c ( 0 ) , C N c = H ( a t t ( N c ) ) f c ( 0 ) , N o t h e r 4 Y ( T o t h e r 4 ) : C N o t h e r 4 = g f o t h e r 4 ( 0 ) , C N o t h e r 4 = H ( a t t ( N o t h e r 4 ) ) f o t h e r 4 ( 0 ) )
C T 5 = ( T 5 , C ˜ = M 5 · e ( g , g ) α f q ( 0 ) , C = g β f q ( 0 ) , N a Y ( T A ) : C N a = g f a ( 0 ) , C N a = H ( a t t ( N a ) ) f a ( 0 ) , N d Y ( T D ) : C N d = g f d ( 0 ) , C N d = H ( a t t ( N d ) ) f d ( 0 ) , N e Y ( T E ) : C N e = g f e ( 0 ) , C N e = H ( a t t ( N e ) ) f e ( 0 ) , N o t h e r 5 Y ( T o t h e r 5 ) : C N o t h e r 5 = g f o t h e r 5 ( 0 ) , C N o t h e r 5 = H ( a t t ( N o t h e r 5 ) ) f o t h e r 5 ( 0 ) )
C T 6 = ( T 6 , C ˜ = M 6 · e ( g , g ) α f s ( 0 ) , C = g β f s ( 0 ) , N a Y ( T A ) : C N a = g f a ( 0 ) , C N a = H ( a t t ( N a ) ) f a ( 0 ) , N d Y ( T D ) : C N d = g f d ( 0 ) , C N d = H ( a t t ( N d ) ) f d ( 0 ) , N e Y ( T E ) : C N e = g f e ( 0 ) , C N e = H ( a t t ( N e ) ) f e ( 0 ) , N o t h e r 6 Y ( T o t h e r 6 ) : C N o t h e r 6 = g f o t h e r 6 ( 0 ) , C N o t h e r 6 = H ( a t t ( N o t h e r 6 ) ) f o t h e r 6 ( 0 ) )
Finally, the DA uploads C T 1 , C T 2 , C T 3 , C T 4 , C T 5 and C T 6 to the CSP.
(4) D e c r y p t
Assuming a user with an attribute set S and private key S K intends to access data M 1 , the user first downloads ciphertext C T 1 from the CSP. Then, they initiate the decryption process using S K . The decryption process is described as a recursive algorithm as follows: Let N j represent a node in T 1 . If N j is a leaf node and a t t ( N j ) = i where i S , then the computation is as follows:
F j = D e c r y p t N o d e ( C T , S K , N j ) = e ( D i , C N j ) e ( D i , C N j ) = e ( g , g ) r f j ( 0 )
If N j is a leaf node and a t t ( N j ) = i where i S , then let F j = .
If N j is a non-leaf node, for all child nodes N z of N j , let Q j represent a set of any k j nodes N z , and for each N z in the set, ensure that F z . If such a Q j does not exist, then let F z = . If Q j exists, then the computation is as follows:
F j = z Q j F z Δ z , Q j ( 0 ) = z Q j e ( g , g ) r f z ( 0 ) Δ z , Q j ( 0 ) = z Q j e ( g , g ) r f p a r e n t ( N z ) ( i n d e x ( N z ) ) Δ z , Q j ( 0 ) = z Q j e ( g , g ) r f j ( z ) Δ z , Q j ( 0 ) = e ( g , g ) r z Q j f j ( z ) Δ z , Q j ( 0 ) = e ( g , g ) r f j ( 0 )
Here, Δ z , Q j ( x ) = u Q j , u z x u z u is the Lagrange coefficient polynomial.
When the user’s attribute set S satisfies the access control policy T 1 , the D e c r y p t N o d e function is called at the root node N n of T 1 as follows:
F p = D e c r y p t N o d e ( C T , S K , N ( 1 ) ) = e ( g , g ) r f n ( 0 )
The final step of decryption to obtain the data M 1 is accomplished through the following calculations:
C ˜ · F n e ( C , D ) = M 1 · e ( g , g ) α f n ( 0 ) · e ( g , g ) r f n ( 0 ) e ( g β f n ( 0 ) , g α + r β ) = M 1

7. Security Analysis

7.1. Security Model

This paper uses a security game between the attacker A and the challenger C to describe the security model of the scheme. The specific process is as follows:
(1) Initialization Phase
Attacker A selects a challenge access structure ( T , T * ) and sends it to challenger C , where T and T * share sub-policies.
(2) Setup Phase
Challenger C obtains the public key P K and sends it to attacker A .
(3) Key Query Phase 1
Attacker A initiates a private key query request to challenger C , and challenger C generates the corresponding attribute private key S K i based on the attribute set S i . However, the key queries do not satisfy the access policies T and T * .
(4) Challenge Phase
Attacker A sends two pairs of plaintexts of the same length, ( M 0 , M 0 * ) and ( M 1 , M 1 * ) , to challenger C . Challenger C randomly selects b from the set { 0 , 1 } and encrypts ( M b , M b * ) using T and T * to obtain ciphertexts ( C T , C T * ) , which are then sent to attacker A .
(5) Query Phase 2
Repeat the operations of the key query phase 1.
(6) Guess Phase
Attacker A outputs a guess b for b. If b = b , then it is considered that attacker A has won this security game. The advantage of A winning this game can be denoted as:
A d v A = P r [ b = b ] 1 / 2

7.2. Proof of Security

Definition 11.
If the CP-ABE scheme is secure, then it can be proven that there does not exist an attacker A who can break the scheme proposed in this chapter with a certain advantage in polynomial time. This implies the security of the scheme presented in this chapter.
Proof. 
The scheme is based on the CP-ABE scheme [2], which has been proven to be secure in the generic group and random oracle model. If attacker A can break the scheme proposed in this chapter with a certain advantage in polynomial time, then there exists a challenger C who can break the CP-ABE scheme with the same advantage.
Initialization phase: attacker A selects a challenge access structure ( T , T * ) and sends it to challenger C , where T and T * share sub-policies.
Setup phase: challenger C obtains the public key P K = ( G 0 , g , g β , e ( g , g α ) ) from the CP-ABE scheme and sends P K to attacker A .
Key query phase 1: attacker A queries challenger C for the private key corresponding to the attribute set S i . Challenger C selects two random variables r , r i Z p and generates the corresponding private key S K i = ( D = g α + r β , { D i = g r · H ( i ) r i , D i = g r i } i A q 1 ) using the key generation algorithm and sends it to A . Attacker A can query C multiple times. Challenger C will continue to respond to attacker A ’s queries. However, all key queries fail to satisfy the access policies T and T * .
Challenge phase: attacker A sends two plaintext message pairs { M 0 , M 0 * } and { M 1 , M 1 * } to challenger C . Challenger C obtains { M 0 , M 0 * } and { M 1 , M 1 * } . It sends ( T , T * ) to the CP-ABE scheme, randomly chooses b 0 , 1 , and encrypts using access policies T and T * to generate the corresponding ciphertexts C T and C T * . Then, challenger C sends the generated challenge ciphertexts C T , C T * to attacker A . C T , C T * are as follows:
C T 1 = ( T , C ˜ = M b · e ( g , g ) α f p ( 0 ) , C = g β f p ( 0 ) , N ξ Y ( T A ) : C N ξ = g f ξ ( 0 ) , C N ξ = H ( a t t ( N ξ ) ) f ξ ( 0 ) , N ρ Y ( T o t h e r 1 ) : C N ρ = g f ρ ( 0 ) , C N ρ = H ( a t t ( N ρ ) ) f ρ ( 0 ) )
C T 1 = ( T * , C ˜ = M b * · e ( g , g ) α f q ( 0 ) , C = g β f q ( 0 ) , N ξ Y ( T A ) : C N ξ = g f ξ ( 0 ) , C N ξ = H ( a t t ( N ξ ) ) f ξ ( 0 ) , N ρ Y ( T o t h e r 1 ) : C N ρ = g f ρ ( 0 ) , C N ρ = H ( a t t ( N ρ ) ) f ρ ( 0 ) )
Key query phase 2: attacker A continues to initiate private key queries for different attribute sets. If the queried attribute set does not satisfy T and T * , challenger C responds to the query in the same manner as in Phase 1. Otherwise, the attacker’s A ’s query requests are terminated.
Guessing phase: attacker A outputs a guess about b 0 , 1 . If b = b , then the advantage of attacker A winning the game can be denoted as:
A d v A = P r [ b = b ] 1 / 2
In summary, if attacker A can win the query and request game in this scheme with a certain advantage, it can be concluded that there exists a challenger C who can break the CP-ABE scheme with the same advantage. However, research has shown that CP-ABE schemes are provably secure, so the proposed scheme is secure. □

8. Performance Analysis

8.1. Encryption Computation Overhead Analysis

All experiments in this paper use the CP-ABE toolkit based on the JPBC (Java pairing-based cryptography) library. The running environment of the simulation experiments: the operating system is Windows 10 Home edition, CPU is Intel(R) Core(TM) i7-7700HQ CPU @ 2.80 GHz 2.80 GHz, and memory is 16 GB of RAM. All the experimental results are the average of 10 runs. Let T ( m i ) represent the computational cost of exponentiation in group G i ( i = 1 , 2 ) , and T ( p m 2 ) represent the computational cost of multiplication in group G 2 .
In the CP-ABE scheme [2], the DA encrypts each data object separately, and the computational cost of C ˜ in the ciphertext involves exponentiation and multiplication operations in group G 2 , which is T ( m 2 ) + T ( p m 2 ) . The computational cost of C is in terms of exponentiation in group G 1 , which is T ( m 1 ) . For each leaf node of C N y and C N y , the computational cost is also exponentiation in group G 1 , which is T ( m 1 ) . Let Y ( T 1 ) represent the number of attributes. Therefore, the total computational cost for a leaf node is 2 Y ( T 1 ) T ( m 1 ) . Thus, the total computational cost for encrypting a single data object is ( 2 Y ( T 1 ) + 1 ) T ( m 1 ) + T ( m 2 ) + T ( p m 2 ) . The computational costs for the three types of operations involved in the encryption algorithm are shown in Table 7.
It can be seen that the encryption computational overhead mainly comes from the exponential operation on the group G 1 on the leaf nodes. If we reduce the number of leaf nodes involved in encryption operations, we will reduce the overall encryption overhead.

8.2. Comparison of Different Schemes

As shown in Table 8, the traditional CP-ABE scheme [2] does not take into account the occurrence of shared sub-policies. Li’s scheme [19] can only handle a single shared sub-policy. Our previous work [20] handles the case where there exists the same number of shared sub-policies among multiple access trees. Our scheme provides a global clustering method of access trees according to their policy similarity and then integrates access trees in the same cluster. In contrast to our previous work, in our approach, within the same cluster of access trees, we allow the number of primary shared sub-policies among access trees to differ.
For brevity, we use the six access trees illustrated in Figure 9 to compare the computational overheads of different schemes. The example is representative; it includes six access trees with three layers; six access trees include both “AND” root gate and “OR” root gate; they have both different and the same number of primary shares sub-policies. In reality, if a data owner only releases a few data objects, or access control policies have less overlapping, we might not need to cluster them. If a data owner releases many data objects, and there are significant overlaps among their access policies, our scheme will be useful. The computational overheads of the traditional CP-ABE scheme for encrypting the six access trees in Figure 9 are:
T 1 : [ 2 Y ( T o t h e r 1 ) + 2 Y ( T A ) + 1 ] T ( m 1 ) + T ( m 2 ) + T ( p m 2 )
T 2 : [ 2 Y ( T o t h e r 2 ) + 2 Y ( T A ) + 2 Y ( T B ) + 1 ] T ( m 1 ) + T ( m 2 ) + T ( p m 2 )
T 3 : [ 2 Y ( T o t h e r 3 ) + 2 Y ( T A ) + 2 Y ( T B ) + 2 Y ( T C ) + 1 ] T ( m 1 ) + T ( m 2 ) + T ( p m 2 )
T 4 : [ 2 Y ( T o t h e r 4 ) + 2 Y ( T A ) + 2 Y ( T B ) + 2 Y ( T C ) + 1 ] T ( m 1 ) + T ( m 2 ) + T ( p m 2 )
T 5 : [ 2 Y ( T o t h e r 5 ) + 2 Y ( T A ) + 2 Y ( T D ) + 2 Y ( T E ) + 1 ] T ( m 1 ) + T ( m 2 ) + T ( p m 2 )
T 6 : [ 2 Y ( T o t h e r 6 ) + 2 Y ( T A ) + 2 Y ( T D ) + 2 Y ( T E ) + 1 ] T ( m 1 ) + T ( m 2 ) + T ( p m 2 )
The total computational overhead is
[ 12 Y ( T A ) + 6 Y ( T B ) + 4 Y ( T C ) + 4 Y ( T D ) + 4 Y ( T E ) + 2 Y ( T o t h e r 1 ) + 2 Y ( T o t h e r 2 ) + 2 Y ( T o t h e r 3 ) + 2 Y ( T o t h e r 4 ) + 2 Y ( T o t h e r 5 ) + 2 Y ( T o t h e r 6 ) + 6 ] T ( m 1 ) + 6 T ( m 2 ) + 6 T ( p m 2 )
All of the single shared sub-policies, T A , of six access trees are merged into one, and the data objects corresponding to the six access trees are encrypted together in reference [19], which reduces the computational overhead by 10 Y ( T A ) T ( m 1 ) compared to the traditional CP-ABE scheme. The scheme supporting the integration of multiple shared sub-policies with the same numbers in reference [20] reduces the computational overhead of [ 10 Y ( T A ) + 4 Y ( T B ) + 2 Y ( T D ) + 2 Y ( T E ) ] T ( m 1 ) compared to the traditional CP-ABE scheme. We support the integration of multiple shared sub-policies with different numbers, which reduces the computational overhead of [ 10 Y ( T A ) + 4 Y ( T B ) + 2 Y ( T C ) + 2 Y ( T D ) + 2 Y ( T E ) ] T ( m 1 ) compared to the traditional CP-ABE scheme.

8.3. Simulation Experiment

8.3.1. Simulation Experiments with Different Scenarios

For clarity, we set that the primary shared sub-policies have the same structure, i.e., they have the same number of leaf nodes i = Y ( T A ) = Y ( T B ) = Y ( T C ) = Y ( T D ) = Y ( T E ) = Y ( T F ) ; we also set the access structure of the non-shared part to be the same; therefore, j = Y ( T o t h e r 1 ) = Y ( T o t h e r 2 ) = Y ( T o t h e r 3 ) = Y ( T o t h e r 4 ) = Y ( T o t h e r 5 ) = Y ( T o t h e r 6 ) .
When the number of attributes j of the non-shared sub-policy corresponding to each of the six access trees shown in Figure 9 is constant, the encryption computational overheads of the four schemes increase as the number of attributes i in the primary shared sub-policies increases, as shown in Table 9. In this experiment, we take j = 5 ; i = { 2 , 3 , 4 , 5 , 6 } .
From Figure 13, it can be seen that the encryption computation overhead of all four schemes gradually increases with the increase in the number of attributes of the primary shared sub-policy i. The encryption overhead of this scheme is smaller than the above three schemes.

8.3.2. Simulation Experiment with Clustering

Using the clustering method in Section 5.4, we achieve the clustering results shown in Figure 14.
In first-level clustering, we obtain the first cluster composed of 17 access trees; these access trees are T 2 ( A N D ) , T 4 ( O R ) , T 7 ( A N D ) , T 18 ( A N D ) , T 20 ( O R ) , T 25 ( A N D ) , T 28 ( O R ) , T 29 ( A N D ) , T 30 ( A N D ) , T 32 ( A N D ) , T 33 ( A N D ) , T 34 ( O R ) , T 35 ( A N D ) , T 36 ( O R ) , T 44 ( A N D ) , T 45 ( O R ) , T 50 ( O R ) . After classifying, second-level clustering, access tree amendment, and integration, these 17 access trees are integrated into one big access tree. We can avoid repeated computation for primary shared sub-policies during the encryption process. Hence, in contrast to traditional CP-ABE that encrypts these 17 objects separately, we respectively reduced the computational costs of encryption related to minimal sub-policies T N , T P , T F , T D , T L , T C , T B , T H , T M , T T , T O , and T I by 16 times, four times, three times, two times, two times, three times, one time, one time, one time, one time, two times, and one time.
In first-level clustering, we obtain the second cluster composed of nine access trees; these access trees are:= T 13 ( A N D ) , T 15 ( A N D ) , T 16 ( O R ) , T 17 ( O R ) , T 23 ( O R ) , T 39 ( A N D ) , T 40 ( O R ) , T 42 ( A N D ) , T 47 ( A N D ) . After classifying, second-level clustering, access tree amendment, and integration, these 9 access trees are integrated into one big access tree. We can avoid repeated computation for primary shared sub-policies during the encryption process. Hence, in contrast to traditional CP-ABE that encrypts these 9 objects separately, we respectively reduced the computational costs of encryption related to minimal sub-policies T O , T R , T F , T G , T L , and T M by eight times, two times, one time, three times, one time, and one time.
In first-level clustering, we obtain the third cluster composed of 10 access trees; these access trees are T 6 ( O R ) , T 8 ( A N D ) , T 9 ( O R ) , T 10 ( O R ) , T 21 ( O R ) , T 22 ( O R ) , T 26 ( A N D ) , T 31 ( O R ) , T 41 ( A N D ) , T 46 ( O R ) . After classifying, second-level clustering, access tree amendment, and integration, these 10 access trees are integrated into one big access tree. We can avoid repeated computation for primary shared sub-policies during the encryption process. Hence, in contrast to traditional CP-ABE that encrypts these 10 objects separately, we respectively reduced the computational costs of encryption related to minimal sub-policies T J , T Q , T H , T D , T T , T I , and T B by nine times, one time, two times, one time, one time, two times, and one time.
A comparison of the computational cost of encryption before and after clustering is shown in Table 10.
From Figure 15, we can see that after integrating access trees in the same cluster, we can encrypt the corresponding data objects as a whole, which reduces the computational overhead significantly compared to encrypting them separately.

9. Conclusions

Most research works about CP-ABE efficiency try to improve their scheme’s efficiency by improving encryption, key generation, or decryption algorithms. They ignore the fact that there might exist similarities among different data objects’ access policies released by the same data owner. Considering the practical existence of varying degrees of overlap or similarity among the access policies of various data objects outsourced by the same data owner, we propose a policy clustering approach based on soft-set decision-making and cluster percolation methods. In addition, we provide how to merge these similar policy pieces and integrate access policies in the same cluster, enabling the encryption of corresponding data objects as a whole. Thus, our approach helps to prevent redundant computations associated with these similar policy pieces during the encryption process, ultimately enhancing the overall encryption efficiency from the data owners’ standpoint. Our method is suitable for the CP-ABE application scenarios where the data objects released by a data owner have access policies composed of a small set of the attribute universe; the policies have very good overlappings. Like most CP-ABE schemes, our scheme is IND-CPA secure.
Our proposal includes certain restrictions on the structure of access policies, and we have not yet provided an integration method for arbitrary access trees that have shared sub-policies. We will focus on developing a less restrictive integration method for similar access trees in the future. Additionally, we will explore more precise measuring methods of policy similarity.

Author Contributions

Conceptualization and validation, W.L. and N.H.; writing—original draft, W.L. and N.H.; writing—review and editing, W.L. and N.H. All authors have read and agreed to the published version of the manuscript.

Funding

This research work was sponsored by the Natural Science Foundation of Xinjiang Uygur Autonomous Region (grant number: 2023D01C02) and the National Natural Science Foundation of China (grant number: 61862059).

Data Availability Statement

Data are artificial and were randomly generated.

Conflicts of Interest

The authors declare that they have no conflicts of interest.

References

  1. Sahai, A.; Waters, B. Fuzzy identity-based encryption. In Proceedings of the Advances in Cryptology—EUROCRYPT 2005: 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques, Aarhus, Denmark, 22–26 May 2005; pp. 457–473. [Google Scholar]
  2. 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]
  3. Zhou, Z.; Huang, D. Efficient and secure data storage operations for mobile cloud computing. In Proceedings of the 2012 8th International Conference on Network and Service Management (cnsm) and 2012 Workshop on Systems Virtualiztion Management (svm), Las Vegas, NV, USA, 22–26 October 2012; pp. 37–45. [Google Scholar]
  4. Li, J.; Jia, C.; Li, J.; Chen, X. Outsourcing encryption of attribute-based encryption with mapreduce. In Proceedings of the Information and Communications Security: 14th International Conference, ICICS 2012, Hong Kong, China, 29–31 October 2012; pp. 191–201. [Google Scholar]
  5. Luo, W.; Feng, C.; Zou, l.; Yuan, D.; Wu, T.; Li, M.; Wang, G. Attribute-based encryption scheme with fast encryption. J. Softw. 2020, 31, 3923–3936. (In Chinese) [Google Scholar]
  6. Hohenberger, S.; Waters, B. Online/offline attribute-based encryption. In Proceedings of the Public-Key Cryptography–PKC 2014: 17th International Conference on Practice and Theory in Public-Key Cryptography, Buenos Aires, Argentina, 26–28 March 2014; pp. 293–310. [Google Scholar]
  7. Leng, Q.; Luo, W. Attribute-based encryption with outsourced encryption. Commun. Technol. 2021, 54, 2242–2246. [Google Scholar]
  8. Green, M.; Hohenberger, S.; Waters, B. Outsourcing the decryption of {ABE} ciphertexts. In Proceedings of the 20th USENIX Security Symposium (USENIX Security 11), San Francisco, CA, USA, 10–12 August 2011. [Google Scholar]
  9. Feng, C.; Yu, K.; Aloqaily, M.; Alazab, M.; Lv, Z.; Mumtaz, S. Attribute-based encryption with parallel outsourced decryption for edge intelligent IoV. IEEE Trans. Veh. Technol. 2020, 69, 13784–13795. [Google Scholar] [CrossRef]
  10. Zhong, H.; Zhou, Y.; Zhang, Q.; Xu, Y.; Cui, J. An efficient and outsourcing-supported attribute-based access control scheme for edge-enabled smart healthcare. Future Gener. Comput. Syst. 2021, 115, 486–496. [Google Scholar] [CrossRef]
  11. Zhang, J.; Cheng, Z.; Cheng, X.; Chen, B. OAC-HAS: Outsourced access control with hidden access structures in fog-enhanced IoT systems. Connect. Sci. 2021, 33, 1060–1076. [Google Scholar] [CrossRef]
  12. Laicheng, C.; Yufei, L.; Xiaoye, D.; Xian, G. User privacy-preserving cloud storage scheme on CP-ABE. J. Tsinghua Univ. (Sci. Technol.) 2018, 58, 150–156. [Google Scholar]
  13. Zou, L.; Feng, C.; Qin, Z.; Yuan, D.; Luo, W.; Li, M. CP-ABE scheme with fast decryption for public cloud. J. Softw. 2020, 31, 1817–1828. (In Chinese) [Google Scholar]
  14. Li, J.; Sha, F.; Zhang, Y.; Huang, X.; Shen, J. Verifiable outsourced decryption of attribute-based encryption with constant ciphertext length. Secur. Commun. Netw. 2017, 2017, 3596205. [Google Scholar] [CrossRef]
  15. Zhang, R.; Ma, H.; Lu, Y. Fine-grained access control system based on fully outsourced attribute-based encryption. J. Syst. Softw. 2017, 125, 344–353. [Google Scholar] [CrossRef]
  16. Sheng, L. User privacy protection scheme based on verifiable outsourcing attribute-based encryption. Secur. Commun. Netw. 2021, 2021, 6617669. [Google Scholar] [CrossRef]
  17. Wang, S.; Zhou, J.; Liu, J.K.; Yu, J.; Chen, J.; Xie, W. An Efficient File Hierarchy Attribute-Based Encryption Scheme in Cloud Computing. IEEE Trans. Inf. Forensics Secur. 2016, 11, 1265–1277. [Google Scholar] [CrossRef]
  18. Wang, J. AccessPolicy for Attribute-Based Encryption. Ph.D. Thesis, Wuhan University, Wuhan, China, 2015. (In Chinese). [Google Scholar]
  19. 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, 23, 1278–1289. [Google Scholar] [CrossRef] [PubMed]
  20. Wang, Y.; Guo, T.; Helil, N. CP-ABE Optimization via the Flexible Integration of Access Policies Containing Multiple Shared Subpolicies. Secur. Commun. Netw. 2022, 2022, 2822846. [Google Scholar] [CrossRef]
  21. Maji, P.; Roy, A.R.; Biswas, R. An application of soft sets in a decision making problem. Comput. Math. Appl. 2002, 44, 1077–1083. [Google Scholar] [CrossRef]
  22. Roy, A.R.; Maji, P. A fuzzy soft set theoretic approach to decision making problems. J. Comput. Appl. Math. 2007, 203, 412–418. [Google Scholar] [CrossRef]
  23. Liu, Z.; Qin, K.; Pei, Z. A method for fuzzy soft sets in decision-making based on an ideal solution. Symmetry 2017, 9, 246. [Google Scholar] [CrossRef]
  24. Palla, G.; Derényi, I.; Farkas, I.; Vicsek, T. Uncovering the overlapping community structure of complex networks in nature and society. Nature 2005, 435, 814–818. [Google Scholar] [CrossRef] [PubMed]
  25. Adamcsek, B.; Palla, G.; Farkas, I.J.; Derényi, I.; Vicsek, T. CFinder: Locating cliques and overlapping modules in biological networks. Bioinformatics 2006, 22, 1021–1023. [Google Scholar] [CrossRef] [PubMed]
Figure 1. Example of cliques.
Figure 1. Example of cliques.
Mathematics 12 00259 g001
Figure 2. Example of communities.
Figure 2. Example of communities.
Mathematics 12 00259 g002
Figure 3. Example of the cluster percolation method (http://web.stanford.edu/class/cs224w/, accessed on 1 March 2023).
Figure 3. Example of the cluster percolation method (http://web.stanford.edu/class/cs224w/, accessed on 1 March 2023).
Mathematics 12 00259 g003
Figure 4. Illustration of access tree amendment.
Figure 4. Illustration of access tree amendment.
Mathematics 12 00259 g004
Figure 5. Structure of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Figure 5. Structure of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Mathematics 12 00259 g005
Figure 6. Amendment results of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Figure 6. Amendment results of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Mathematics 12 00259 g006
Figure 7. Amendment results of access trees T 2 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Figure 7. Amendment results of access trees T 2 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Mathematics 12 00259 g007
Figure 8. Integration result of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Figure 8. Integration result of access trees T 2 ( A N D ) , T 7 ( A N D ) , T 25 ( A N D ) , T 32 ( A N D ) .
Mathematics 12 00259 g008
Figure 9. Example of six access trees with different primary shared sub-policies.
Figure 9. Example of six access trees with different primary shared sub-policies.
Mathematics 12 00259 g009
Figure 10. Integration results of two types of access trees.
Figure 10. Integration results of two types of access trees.
Mathematics 12 00259 g010
Figure 11. Final integration results of two types of access trees.
Figure 11. Final integration results of two types of access trees.
Mathematics 12 00259 g011
Figure 12. System architecture.
Figure 12. System architecture.
Mathematics 12 00259 g012
Figure 13. The trends of the computational cost of encryption of the four schemes with the number of attributes in the primary shared sub-policies.
Figure 13. The trends of the computational cost of encryption of the four schemes with the number of attributes in the primary shared sub-policies.
Mathematics 12 00259 g013
Figure 14. Final clustering results.
Figure 14. Final clustering results.
Mathematics 12 00259 g014
Figure 15. Comparison of encryption time costs with and without clustering and integration (unit: s).
Figure 15. Comparison of encryption time costs with and without clustering and integration (unit: s).
Mathematics 12 00259 g015
Table 1. Example of 10 primary shared sub-policies contained in 20 access trees.
Table 1. Example of 10 primary shared sub-policies contained in 20 access trees.
T A T B T C T D T E T F T G T H T I T J
T 1 3 1 21 1
T 2 3 1 2 2
T 3 2 3 1 21
T 4 3 2
T 5 21 1 1
T 6 3
T 7 1 2
T 8 3 2
T 9 1 2
T 10 2 2
T 11 1
T 12 2 2 2 1
T 13 1 1
T 14 3 2
T 15 3
T 16 21
T 17 1 2
T 18 2 2 2
T 19 2 1
T 20 3 1 1 2
impact factor151271210868510
maximum combinable number121069874648
Table 2. Example of access trees with primary shared sub-policies.
Table 2. Example of access trees with primary shared sub-policies.
T A T B T C T D T E T F T G T H T I T J T K T L T M T N T O T P T Q T R T X T T
T 1 ( A N D ) 00030030000300001402
T 2 ( A N D ) 02030200000004040000
T 3 ( O R ) 00000000000300000000
T 4 ( O R ) 00200030400304000000
T 5 ( A N D ) 02000000000330000042
T 6 ( O R ) 00000000430000040002
T 7 ( A N D ) 30002203034004440402
T 8 ( A N D ) 00002030030030001000
T 9 ( O R ) 30002003030030001040
T 10 ( O R ) 02000000430030000400
T 11 ( A N D ) 00002003000330041000
T 12 ( A N D ) 00002203000000440040
T 13 ( A N D ) 02030230000000400400
T 14 ( A N D ) 02030003000000000000
T 15 ( A N D ) 00000000430000400402
T 16 ( O R ) 00200030000330440002
T 17 ( O R ) 00030030034000400042
T 18 ( A N D ) 00200000030004000002
T 19 ( O R ) 00030000004000001040
T 20 ( O R ) 30002003000034440000
T 21 ( O R ) 00202000030000000000
T 22 ( O R ) 00030033030000000402
T 23 ( O R ) 30000000400000400400
T 24 ( O R ) 30000000400000040000
T 25 ( A N D ) 00030203000304040400
T 26 ( A N D ) 00200000030000000000
T 27 ( A N D ) 00000000400300000002
T 28 ( O R ) 00000000430004440000
T 29 ( A N D ) 32200230004304000000
T 30 ( A N D ) 00002003400034000002
T 31 ( O R ) 02230003030300041002
T 32 ( A N D ) 00030200000334440040
T 33 ( A N D ) 02200000000004000000
T 34 ( O R ) 00200003400334001400
T 35 ( A N D ) 00000033000034000002
T 36 ( O R ) 00030000030004400000
T 37 ( A N D ) 30000000000000040000
T 38 ( A N D ) 30000000004030000040
T 39 ( A N D ) 30000003000000400400
T 40 ( O R ) 30000030430330401000
T 41 ( A N D ) 02000000030000001040
T 42 ( A N D ) 00030230404000400000
T 43 ( A N D ) 00200200000000000400
T 44 ( A N D ) 02000200000304000040
T 45 ( O R ) 00002000000034000002
T 46 ( O R ) 32002000430000000000
T 47 ( A N D ) 02000233000000400042
T 48 ( O R ) 02002203000000000000
T 49 ( O R ) 02000000000000000400
T 50 ( A N D ) 00000000030004000000
Table 3. Similarity between partially access trees.
Table 3. Similarity between partially access trees.
T 1 T 2 T 3 T 4 T 5 T 6 T 7 T 8 T 9 T 10 T 11 T 12 T 13 T 14 T 15 T 16 T 17 T 18 T 19 T 20 T 21 T 22 T 23 T 24
T 1
T 2 3
T 3 30
T 4 643
T 5 5233
T 6 24042
T 7 6100429
T 8 4003335
T 9 100073119
T 10 420457766
T 11 4433649693
T 12 060044152909
T 13 10703201030606
T 14 3500203032335
T 15 6004291333110480
T 16 84388610633108706
T 17 830365136730810399
T 18 24062593330000545
T 19 4300404150143300110
T 20 080434205113121343411440
T 21 00020355532200323502
T 22 1230325126673310695115333
T 23 400404110380480124400704
T 24 04040870344400440007007
T 25 101337341703410996473431101044
Table 4. Results of the first clustering of 50 access trees.
Table 4. Results of the first clustering of 50 access trees.
T A T B T C T D T E T F T G T H T I T J T K T L T M T N T O T P T Q T R T X T T
T 2 ( A N D ) 02030200000004040000
T 4 ( O R ) 00200030400304000000
T 7 ( A N D ) 30002203034004440402
T 18 ( A N D ) 00200000030004000002
T 20 ( O R ) 30002003000034440000
T 25 ( A N D ) 00030203000304040400
T 28 ( O R ) 00000000430004440000
T 29 ( A N D ) 32200230004304000000
T 30 ( A N D ) 00002003400034000002
T 32 ( A N D ) 00030200000334440040
T 33 ( A N D ) 02200000000004000000
T 34 ( O R ) 00200003400334001400
T 35 ( A N D ) 00000033000034000002
T 36 ( O R ) 00030000030004400000
T 44 ( A N D ) 02000200000304000040
T 45 ( O R ) 00002000000034000002
T 50 ( O R ) 00000000030004000000
Table 5. Results of the second clustering of 50 access trees.
Table 5. Results of the second clustering of 50 access trees.
T A T B T C T D T E T F T G T H T I T J T K T L T M T N T O T P T Q T R T X T T
T 13 ( A N D ) 02030230000000400400
T 15 ( A N D ) 00000000430000400402
T 16 ( O R ) 00200030000330440002
T 17 ( O R ) 00030030034000400042
T 23 ( O R ) 30000000400000400400
T 39 ( A N D ) 30000003000000400400
T 40 ( O R ) 30000030430330401000
T 42 ( A N D ) 00030230404000400000
T 47 ( A N D ) 02000233000000400042
Table 6. Results of the third clustering of 50 access trees.
Table 6. Results of the third clustering of 50 access trees.
T A T B T C T D T E T F T G T H T I T J T K T L T M T N T O T P T Q T R T X T T
T 6 ( O R ) 00000000430000040002
T 8 ( A N D ) 00002030030030001000
T 9 ( O R ) 30002003030030001040
T 10 ( O R ) 02000000430030000400
T 21 ( O R ) 00202000030000000000
T 22 ( O R ) 00030033030000000402
T 26 ( A N D ) 00200000030000000000
T 31 ( O R ) 02230003030300041002
T 41 ( A N D ) 02000000030000001040
T 46 ( O R ) 32002000430000000000
Table 7. Operations and runtime involved in encryption algorithms.
Table 7. Operations and runtime involved in encryption algorithms.
NotationDescriptionRunning Time (ms)
T ( m 1 ) Exponential operations on group G 1 15.30
T ( m 2 ) Exponential operations on group G 2 1.08
T ( p m 2 ) Multiplication on group G 2 0.02
Table 8. Comparison of different schemes in supporting shared sub-policies.
Table 8. Comparison of different schemes in supporting shared sub-policies.
SchemeSingle
Shared Sub-Policy
Multiple
Shared Sub-Policies
with Same Numbers
Multiple
Shared Sub-Polices
with Different Numbers
Policy
Clustering
 [2]nononono
 [19]yesnonono
 [20]yesyesnono
Oursyesyesyesyes
Table 9. The encryption computational overhead of the four schemes (unit: s).
Table 9. The encryption computational overhead of the four schemes (unit: s).
 i 23456
[22.9663.6654.3085.0855.801
[192.5012.9383.3663.9084.404
[202.1412.3662.6192.9523.324
Ours2.0612.2382.4292.7012.912
Table 10. Comparison of the computational cost of encryption before and after clustering.
Table 10. Comparison of the computational cost of encryption before and after clustering.
First Cluster of
Access Trees
Second Cluster of
Access Trees
Third Cluster of
Access Trees
Number of access trees17910
Total number of original leaf nodes304172137
Total number of leaf nodes after integration17411588
Sum of encryption time costs without clustering and integration
(separate encryption)
14.248 s8.053 s6.435 s
Sum of encryption time costs with clustering and integration8.311 s5.443 s4.186 s
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Liu, W.; Helil, N. Soft Set Decision and Cluster Percolation Method-Based Policy Clustering and Encryption Optimization for CP-ABE. Mathematics 2024, 12, 259. https://doi.org/10.3390/math12020259

AMA Style

Liu W, Helil N. Soft Set Decision and Cluster Percolation Method-Based Policy Clustering and Encryption Optimization for CP-ABE. Mathematics. 2024; 12(2):259. https://doi.org/10.3390/math12020259

Chicago/Turabian Style

Liu, Wei, and Nurmamat Helil. 2024. "Soft Set Decision and Cluster Percolation Method-Based Policy Clustering and Encryption Optimization for CP-ABE" Mathematics 12, no. 2: 259. https://doi.org/10.3390/math12020259

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