Next Article in Journal
A Framework of Covariance Projection on Constraint Manifold for Data Fusion
Next Article in Special Issue
Influence of Different Coupling Modes on the Robustness of Smart Grid under Targeted Attack
Previous Article in Journal
Determination of the Maximum Temperature in a Non-Uniform Hot Zone by Line-of-Site Absorption Spectroscopy with a Single Diode Laser
Previous Article in Special Issue
Trusted Operations on Sensor Data
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Secure Data Access Control for Fog Computing Based on Multi-Authority Attribute-Based Signcryption with Computation Outsourcing and Attribute Revocation

Department of Computer Science and Technology, Tongji University, Cao An Highway, Shanghai 201804, China
*
Author to whom correspondence should be addressed.
Sensors 2018, 18(5), 1609; https://doi.org/10.3390/s18051609
Submission received: 23 April 2018 / Revised: 15 May 2018 / Accepted: 16 May 2018 / Published: 17 May 2018
(This article belongs to the Special Issue Security in IoT Enabled Sensors)

Abstract

:
Nowadays, fog computing provides computation, storage, and application services to end users in the Internet of Things. One of the major concerns in fog computing systems is how fine-grained access control can be imposed. As a logical combination of attribute-based encryption and attribute-based signature, Attribute-based Signcryption (ABSC) can provide confidentiality and anonymous authentication for sensitive data and is more efficient than traditional “encrypt-then-sign” or “sign-then-encrypt” strategy. Thus, ABSC is suitable for fine-grained access control in a semi-trusted cloud environment and is gaining more and more attention recently. However, in many existing ABSC systems, the computation cost required for the end users in signcryption and designcryption is linear with the complexity of signing and encryption access policy. Moreover, only a single authority that is responsible for attribute management and key generation exists in the previous proposed ABSC schemes, whereas in reality, mostly, different authorities monitor different attributes of the user. In this paper, we propose OMDAC-ABSC, a novel data access control scheme based on Ciphertext-Policy ABSC, to provide data confidentiality, fine-grained control, and anonymous authentication in a multi-authority fog computing system. The signcryption and designcryption overhead for the user is significantly reduced by outsourcing the undesirable computation operations to fog nodes. The proposed scheme is proven to be secure in the standard model and can provide attribute revocation and public verifiability. The security analysis, asymptotic complexity comparison, and implementation results indicate that our construction can balance the security goals with practical efficiency in computation.

1. Introduction

With the rapid development of cloud computing, more people are coming to prefer moving both the large burden of data storage and computation overhead to cloud servers in a cost-effective manner [1]. However, the advance of the Internet of Things (IoTs) has posed a challenge to the centralized cloud computing system due to its geo-distribution, location awareness, and low latency requirements. To solve the problem, Cisco proposed the concept of fog computing in 2014, where a layer consisting of fog devices (such as routers, access points, and IP video cameras) bridges between the cloud server and end users [2]. In a fog computing system, the fog devices, termed as fog nodes, are distributed and implemented at the edge of networks [3]. Since fog nodes are much closer to end users than the cloud server and have plentiful computing resources and wireless communication facility, some of the computing tasks can be outsourced to fog nodes from the nearby end user, which alleviates the computation burden of the users and significantly improve the efficiency. Thus, the fog computing paradigm can be applied in many real-time and geographically distributed applications, such as wireless sensors, smart grids and health fog applications [4].
However, there are still various challenging obstacles in fog computing systems, such as the privacy and security of users’ data [5,6]. Traditionally, a cloud server is not fully trusted by the data owner in cloud computing system, and the data uploaded may contain sensitive information; hence, the data should be encrypted before outsourcing to the cloud. In accord with cloud computing, message confidentiality should also be considered in fog computing systems. Moreover, since the fog nodes are more easily compromised than cloud servers [6], it is required that fog nodes should alleviate the computation burden of end devices without degrading the privacy in fog computing systems. In addition to confidentiality, data owners may wish to impose fine-grained access control such that only users with certain attributes have access to the data [7]. For example, in a health fog system, which combines the advantage of both the fog computing and original cloud-based healthcare services [8], personal health records usually contain abundant sensitive information, such as weight, heart rate, and blood type. After gathering by sensors, the personal health record may be uploaded to the cloud for the user’s individual needs or to perform real-time analytics. To ensure the privacy of the health data, an access control system should guarantee that only the users authorized by the data owner can access the data. For instance, to analyze whether the blood pressure is normal, the owner “Alice” wants to share her health data to users with attributes “Institution = HospitalRole = DoctorGender = Female”. One of the effective techniques to address this fine-grained access requirement is attribute-based encryption (ABE) [9]. It realizes the confidentiality and access control on data based on encryption under an access policy defined over the set of attributes.
Besides the confidentiality and fine-grained access control, it is also necessary to provide anonymity authentication for data sharing between users in the access control mechanism. For instance, the owner “Alice”, aged 20, would like to encrypt and store some sensitive health information in the cloud but does not want to be recognized. When a data user, such as the doctor or researcher, accesses the data, he/she can verify that the data is actually uploaded by a patient with certain credentials such as “Gender = FemaleAge ∈ [18,30]” without knowing the patient’s real identity “Alice” or her real age.
A feasible and promising solution is the Attribute Based Signcryption (ABSC) scheme, which takes advantages of Attribute-Based Encryption (ABE) and Attribute-Based Signature (ABS), and is more efficient than do the traditional “encrypt-then-sign” or “sign-then-encrypt” strategies. ABSC employs ABE to provide confidentiality and fine-grained access control, and uses ABS to achieve authentication without revealing the data owner’s sensitive attributes. Traditionally, ABE can be classified into two categories: Key-Policy ABE (KP-ABE) and Ciphertext-Policy ABE (CP-ABE). In KP-ABE, the secret key is associated with an access structure (predicate), and the message is encrypted with a set of attributes. While in CP-ABE, predicate is assigned to the plaintext message. Similarly, ABS has two categories: Signature-Policy ABS (SP-ABS) wherein the predicate is embedded in the signature, and Key-Policy ABS (KP-ABS) wherein the predicate is associated with the secret key. The Ciphertext-Policy ABSC (CP-ABSC) [10] supports CP-ABE and SP-ABS, and the Key-Policy ABSC (KP-ABSC) [11] supports KP-ABE and KP-ABS. Recently, many data access control schemes based on ABSC have been proposed, as in [12,13,14,15]. Although some of them are efficient, three problems must be considered when implementing ABSC scheme in fog computing environment. The first one is performance. The traditional ABSC scheme is typically computationally intensive. In particular, the cost of signcryption and designcryption on the user side are proportional to the complexity of predicates. One possible strategy to alleviate the computation overhead required on end user is to outsource the most computation-consuming job of signcryption and designcryption to the fog node. Although many ABE schemes with outsourcing encryption and decryption, as in [16,17,18,19,20], have been proposed in recent years for secure data sharing in fog computing system, realizing ABSC scheme with anonymous authentication and efficient computation outsourcing is still a challenge since ABSC schemes contain both of the signing and encryption protocols. The second problem is multi-authority. In traditional ABSC schemes, as in [12,13,14,15], a central authority is responsible for attribute management and key generation. However, in many applications, the predicate embedded in the ciphertext or signature can be written over attributes issued by different trust domains and authorities. For example, the health data uploaded by “Alice” may contain the encryption predicate as “(DoctorResearcher) ∨ Female”. Since only a hospital can authorize a person the attribute “Doctor” and only a research organization can certify that a person is a “Researcher”, it is not practical to authorize access right to a person by a single authority. Therefore, it is necessary to distribute attribute management and secret key generation from a single central authority over many authorities. Some multi-authority ABE schemes for fog computing, as in [17], have been proposed, whereas constructing multi-authority ABSC scheme with outsourcing capability is still a blank. The third one is attribute revocation. For example, when the attributes of a doctor are updated from A = {Institution = HospitalRole = DoctorGender = Female} to B = {Institution = HospitalGender = Female}, her access rights should be modified accordingly. Attribute revocation is not trivial and straightforward in ABE schemes. However, it has not been taken into account in multi-authority ABSC schemes with outsourcing capability.
The problem of designing a multi-authority data access control scheme based on ABSC with signcryption and designcryption outsourcing capabilities and attribute revocation for fog computing system, has received very little attention so far, although some schemes based on Multi-Authority ABE (MA-ABE) and ABS (MA-ABS) for cloud storage setting have been proposed, as in [21,22,23,24,25,26]. Meng et al. [27] proposed a decentralized KP-ABSC scheme for secure data sharing in the cloud. However, the scheme is just a combination of identity signature and MA-ABE, and only supports the threshold predicate. It also does not provide any security definition or computation outsourcing. Hong et al. [28] proposed a KP-ABSC scheme with outsourced designcryption and key exposure protection. However, the computation overhead of signcryption increases with the complexity of the predicate, and since the verification and decryption both have to be performed on the user side, the number of pairing operations evaluated on the user side is proportional to the sum of the required attributes, which is not acceptable to IoT devices. Moreover, the scheme in [28] does not support multi authorities and attribute revocation. We focus on CP-ABSC in access control application, as CP primitives are more suitable for the data owner to choose the predicate to determine who can access the sensitive data [14].

1.1. Contributions

In this paper, we propose OMDAC-ABSC, a novel data access control scheme for fog computing system based on Multi-Authority CP-ABSC (MACP-ABSC) supporting the computation outsourcing for both signcryptor (data owner) and designcryptor (data user). To the best of our knowledge, OMDAC-ABSC is the first scheme that significantly reduces computation burden from both data owners and data users in the multi-authority ABSC setting. Public verifiability, expressiveness and attribute revocation are also considered in our scheme. The main contributions can be summarized as follows:
(1)
We propose a data access control scheme OMDAC-ABSC for fog computing system, in which fog nodes serve as a bridge between the cloud server and end users. In our scheme, heavy signcryption and designcryption operations can be outsourced from end users (e.g., tablet computers and smartphones) to fog nodes. In signcryption phase, the fog nodes are in charge of generating part of the ciphertext. In designcryption phase, the fog nodes can perform the partial decryption without degrading the data confidentiality, and the data user only requires a constant number of exponentiations to decrypt the ciphertext. Additionally, unlike other existing works such as [27,28], our scheme supports public verification, since the verification mechanism does not require the plaintext message or the data owner’s public key. Thus the verification algorithm can be performed by any trusted party, which alleviates the computation burden of the end user. Therefore, our construction is efficient from computation point of view.
(2)
Unlike some existing ABE schemes for fog computing such as [16,18,19] and ABSC schemes such as [15,27,28], the proposed OMDAC-ABSC scheme is more expressiveness and supports any monotone Boolean function predicates represented by monotone span programs (MSP) for both signing and encryption. Moreover, we remove the limitation that the labeling functions ρ in signing and encryption predicates should be injective functions.
(3)
Our OMDAC-ABSC scheme is proven to be secure in the standard model. We also formally prove that our construction satisfies the properties of signcryptor privacy and collusion resistance.
(4)
We also consider the attribute revocation in our OMDAC-ABSC scheme. In attribute revocation phase, the authority supervising the revoked attribute only distributes the update keys to the non-revoked users and the cloud server to update the corresponding components. It is also proved that our scheme guarantees both the forward and backward revocation security.

1.2. Paper Organization

The remainder of this paper is organized as follows: in Section 2, we discuss some related works. Then in Section 3, we review the necessary notations and cryptographic background that are used throughout the paper. In Section 4, we give the definition of our scheme and the security requirements. The details of the scheme and the security proof are elaborated in Section 5 and Section 6, respectively. Section 7 is dedicated to discussing the functionality and performance of the scheme. Finally, we conclude this paper in Section 8.

2. Related Works

2.1. Access Control Schemes Based on ABE

ABE was first introduced by Sahai and Waters [9]. In ABE, a data owner can share sensitive data with others according to predicates (or access policies). Several works on ABE have been presented to address data access control in untrusted cloud servers. Recently, the ABE scheme was adopted in fog-computing systems to guarantee confidentiality and fine-grained access control. Heavy computations of encryption or decryption are outsourced to fog nodes to improve the efficiency. In [16], an anonymous user authentication in ciphertext update phase was realized, whereas the scheme only supports AND-gate predicate. Zuo et al. [18] proposed a CCA-secure ABE scheme with decryption outsourcing. However, the encryption phase of the scheme in [18] incurs heavy computation cost. Additionally, the scheme in [18] is only provably secure in the random oracle model and only supports the AND-gate encryption predicate. Zhang et al. [19] presented an ABE- based access control scheme for fog computing with outsourced encryption and decryption. Although the computation operations (pairings and exponentiations) for users to encrypt and decrypt are irrelevant to the complexity of predicate, the scheme only supports threshold encryption predicate, and requires both the cloud server and fog nodes to be trusted. Lounis et al. [29] proposed a cloud-based architecture for medical wireless sensor networks, in which the resource-constrained end devices outsource the costly computations to the trusted gateway. However, the decryption phase incurs heavy computation cost. Xiao et al. [30] constructed a fine-grained hybrid scheme for fog computing with the advantages of efficient data search and access authorization through online/offline encryption, delegation of search task and decryption to fog nodes, and provable security. Mao et al. [20] proposed an ABE scheme with verifiable outsourced decryption, whereas it incurs a heavy computation overhead in encryption phase. Li et al. [31] also proposed a fully verifiable ABE scheme with outsourcing capability. However, Liao et al. [32] showed that the verification mechanism proposed in [31] is not always correct.
In many ABE schemes, the attribute universe is assumed to be managed by a single authority. In reality, however, users’ attributes may be monitored by different authorities. To track this problem, MA-ABE scheme was proposed by Chase et al. [33]. In MA-ABE, the attribute universe is divided into multiple disjoint sets, and each authority controls one of these attribute sets. The user can successfully decrypt the ciphertext if and only if the user possesses at least a pre-specified number of attributes from each authority. Furthermore, Chase et al. [34] proposed an improved MA-ABE scheme to remove the fully trusted central authority by adopting a Pseudo Random Function (PRF) and a secure 2-party anonymous secret-key-issuing protocol. However, the multiple authorities must cooperate with each other, and the number of authorities must be determined in the initialization phase. Recently, many distributed access control schemes based on MA-ABE have been proposed, such as [21,22,23,24,25,26,35,36]. Han et al. [21] proposed a privacy-preserving decentralized CP-ABE based access scheme (PPDCP-ABE) to protect the user’s privacy. However, PPDCP-ABE cannot resist collusion attack or support anonymous authentication. Rui et al. [22] constructed a MA-ABE scheme with secure attribute-level immediate attribute revocation. The scheme is only provably secure under the random oracle model. Lewko et al. [23] proposed a decentralized attribute-based encryption using the dual system encryption methodology. The secret keys of the user are tied to his global identity in order to resist collusion attack. However, the scheme realizes the security in random oracle model using the composite-order bilinear group, which incurs great computation overhead. Sourya et al. [25] proposed a decentralized data sharing scheme with outsourced decryption and user revocation. They also proposed a decentralized data sharing scheme where multiple attribute authorities distribute secret keys to the user [24]. In [26], the authors outsourced the main computation overhead in a decryption algorithm to the cloud. However, the security cannot be guaranteed if the revoked user eavesdrops to obtain the update keys and retrieves the ability to decrypt as a non-revoked user. To implement multi-authority ABE in fog computing system, Fan et al. [17] proposed a VO-MAACS scheme with verification mechanism. Although the encryption and decryption algorithms are outsourced, the scheme cannot support anonymous authentication and attribute revocation, and does not have security proof. Jung et al. [35] presented an anonymous privilege control scheme to address data and identity privacy in multi-authority cloud storage system. To guarantee the confidentiality of user’s identity information, the scheme in [35] decomposes the central authority to multiple ones while preserving tolerance to compromise attack on the authorities. However, the security is realized in random oracle model, and the encryption predicate is the AND gate. In [36], the authors constructed a multi-authority data access control scheme with decryption outsourcing and attribute-level user revocation. The scheme supports any monotone encryption predicate and is adaptively secure in the standard model. Nevertheless, the scheme in [36] needs to deal with large composite-order group elements and thus incurs heavy computation overhead.

2.2. Attribute-Based Signature and Multi-Authority Attribute-Based Signature

ABS was first introduced by Maji et al. [37]. Due to their anonymity and authentication properties, many ABS schemes have been proposed. Like ABE, to overcome the drawback that only a single authority exists in the system, the concept of MA-ABS was introduced in [38]. In MA-ABS, there are multiple authorities and each authority controls one of disjoint attribute sets. The user is able to successfully sign the plaintext if he/she possesses a pre-specified number of attributes from multiple authorities.

2.3. Access Control Schemes Based on ABSC

ABSC scheme, first introduced by Gagné et al. [10], is a logical combination of ABE and ABS and can support many practical properties, including confidentiality, fine-grained access control, and authentication. Recently, many data access control schemes based on ABSC have been proposed, as in [11,12,13,14,15,27,28]. Y. Sreenivasa [11] proposed a Key-Policy attribute-based signcryption scheme that supports any monotone Boolean function and constant size ciphertext. However, the message confidentiality and unforgeability of the scheme against selectively adversary are proven in the random oracle model. Chen et al. [12] focused on the joint security of signature and encryption schemes and presented a CP-ABSC scheme in the joint security setting. However, it cannot support public verifiability since plaintext is required in verification mechanism. Liu et al. [13] proposed a secure PHR data access control scheme based on CP-ABE [39] and ABS [37]. However, it is only provably secure in a random oracle model. In [14], the authors constructed a CP-ABSC based access control scheme with public verifiability, but the scheme does not support computation outsourcing. Yu et al. [15] proposed the hybrid access policy ABSC scheme that supports KP-ABS and CP-ABE. The size of the ciphertext is constant, and the scheme realizes security in the standard model. Nevertheless, it only supports the threshold predicate in the encryption phase. Moreover, the above ABSC schemes only have a single authority and cannot be applied in the multi-authority system.

3. Preliminaries

By a R A , we denote that a is selected randomly from A . | A | denotes the cardinality of a finite set A . p denotes a finite field with prime order p , and p * stands for p \ { 0 } . y A ( x ) denotes that y is computed by running algorithm A with input x . [ n ] represents the set { 1 , 2 , , n } . a ( i ) denotes the i th element of the vector a . A function ϵ :   R is negligible if, for any z , there exists a k such that ϵ ( x ) < 1 / x z when x > k . We use s and e as superscripts for signing and encryption, respectively. P r [ E ] denotes the probability of an event E occurring. For an unambiguous presentation of the paper, we define the important notations used in our scheme in the Appendix A.
Definition 1.
Bilinear maps [22]: Let G and G T be two cyclic groups with the prime order p , and g G be the generator of G . Then the bilinear map e : G × G G T can be defined as follows:
  • Bilinear. For all u , v G , a , b p , e ( u a , v b ) = e ( u , v ) a b .
  • Non-degenerate. e ( g , g ) 1 .
  • Computable. There is an efficient algorithm to compute the map e .
G G ( 1 k ) ( e , p , G , G T ) takes as input a security parameter 1 k and outputs a bilinear group ( e , p , G , G T ) with prime order p and a bilinear map e : G × G G T .
Definition 2.
Decisional Bilinear Diffie-Hellman (BDH) Assumption [22]: Let g be a generator of G with prime order p and a , b , c p * be randomly chosen. Given a vector Y = ( g , g a , g b , g c ) , the decisional BDH assumption holds if no PPT adversary A can distinguish ( Y , Ω = e ( g , g ) a b c ) from ( Y , Ω R G T ) with the advantage A d v A = | P r [ A ( Y , Ω = e ( g , g ) a b c ) = 1 ] P r [ A ( Y , Ω R G T ) = 1 ] | ϵ ( k ) .
Definition 3.
Decisional q-Parallel Bilinear Diffie-Hellman Exponent (q-PBDHE) Assumption [21]: Suppose that a , w , b 1 , b 2 , , b q R p , G G ( 1 k ) ( e , p , G , G T ) and g is a generator of G . Given Y = ( g , g w , g a , , g a q , g a q + 2 , , g a 2 q , 1 j q , g w b j , g a b j , , g a q b j , g a q + 2 b j , g a 2 q b j , 1 j , k q , k j , g a w b k b j , , g a q w b k b j ) , the decisional q-PBDHE assumption holds if no PPT adversary A can distinguish ( Y , Ω = e ( g , g ) a q + 1 w ) from ( Y , Ω R G T ) with the advantage A d v A = | P r [ A ( Y , Ω = e ( g , g ) a q + 1 w ) = 1 ] P r [ A ( Y , Ω R G T ) = 1 ] | ϵ ( k ) .
Definition 4.
Monotone Span Program (MSP) [11]: Assume { v 1 , v 2 , , v m } is a set of variables. An MSP is a labeled matrix Ω ( M × n , ρ ) , where M is an × n matrix over p and ρ is the labeling function ρ : [ ] { v 1 , v 2 , , v m } .
Let x = ( x 1 , x 2 , , x m ) { 0 , 1 } m and X μ = { i [ ] : [ ρ ( i ) = v j ] [ x j = μ ] } where μ { 0 , 1 } . X 1 X 0 = [ ] . Let M i be the i th row of M . We denote Ω ( x ) = 1 if Ω accepts the input x . Likewise, Ω ( x ) = 0 means Ω rejects x . Then Ω ( x ) = 1 [ ( a 1 , a 2 , , a ) p   s u c h   t h a t   i [ ] a i M i = 1 ] where a i = 0 for all i X 0 .
An MSP Ω computes a monotone Boolean function R :   { 0 , 1 } m { 0 , 1 } if Ω ( x ) = 1 for all x { x :   R ( x ) = 1 } .
Lemma 1
[14].If Ω ( x ) = 0 , then there exists a vector ω = ( ω 1 , ω 2 , , ω n ) p n with ω 1 = 1 such that ω M i = 0 for all i X 1 .
Definition 5.
Predicates [14]: Assume U is the universe of attributes. A predicate over U is a monotone Boolean function whose inputs are associated with the attributes of U . Let W U is a subset of attributes. A predicate R accepts W U if R ( W ) = 1 . If W does not satisfy R then R ( W ) = 0 . A predicate R is said to be monotone, if R ( W ) = 1 R ( C ) = 1 for every attribute set C W .
Suppose R is a predicate and L R is the set of attributes utilized in R . Then the corresponding MSP for R is a labeled matrix Ω ( M × n , ρ ) , where ρ : [ ] L R .
Define X 1 = { i [ ] : [ ρ ( i ) = a ] [ a W ] } and X 0 = { i [ ] : [ ρ ( i ) = a ] [ a W ] } . X 1 X 0 = [ ] . Then
R ( W ) = 1 Ω ( W ) = 1 [ ( a 1 , a 2 , , a ) p   s u c h   t h a t   i [ ] a i M i = 1   a n d   a i = 0   i , ρ ( i ) W   ] .
Lemma 2
[14].If R ( W ) = 0 , then there exists a vector ω = ( ω 1 , ω 2 , , ω n ) p n with ω 1 = 1 such that ω M i = 0 for all i where ρ ( i ) W .
Definition 6
[14].Let M × n be a matrix of size × n over a field F . r a n k ( M ) is rank of M × n . If r a n k ( M ) < , then V = { ( b 1 , b 2 , , b ) F : i [ ] b i M i = 0 } contains a polynomial number of vectors ( b 1 , b 2 , , b ) , and the predicate for which MSP is Ω ( M × n , ρ ) consists of both AND and OR gates. Otherwise, V = { 0 } and the predicate is an AND gate. In our construction, we consider the signing and encryption predicates consisting of both AND and OR gates.

4. Scheme and Security Definitions

Our OMDAC-ABSC scheme consists of a multi-authority attribute-based signcryption (MACP-ABSC) scheme.

4.1. Multi-Authority Attribute-Based Signcryption

The MACP-ABSC scheme consists of the following five algorithms:
G l o b a l S e t u p   ( 1 k ) . Taking as input a security parameter 1 k , the algorithm outputs the public parameters P P . It also generates the public key P K u i d for the user with identity u i d .
A u t h o r i t y S e t u p ( P P ) . It takes as input P P and outputs the public key and secret key pairs { P K , S K } for the authority.
S e c r e t K e y G e n ( P P , P K a i d , S K a i d , P K u i d , U ˜ ) . Taking as input P P , { P K a i d , S K a i d } of authority A A a i d , user’s public key P K u i d and attribute set U ˜ = U d ˜ U s ˜ , where U d ˜ denotes the set of decryption attributes, and U s ˜ is the set of signing attributes. U d ˜ U s ˜ = . The algorithm outputs the secret signing and decryption keys S K u i d , a i d = { S K u i d , a i d s , S K u i d , a i d d } for the user.
S i g n c r y p t i o n ( M , P P , R s , R e , { S K d o , k s } k I ) . Taking as input the plaintext M , public parameters P P , signing and encryption predicates R s , R e , and the set of signcryptor’s secret signing keys { S K d o , k s } k I , where I is the set of involved authorities in signcryption and d o is signcryptor’s identity. The algorithm outputs the ciphertext C T .
D e S i g n c r y p t i o n ( P P , C T , P K d u , { S K u i d , k d } k I ) . This algorithm intakes the public parameters P P , ciphertext C T , public key P K d u of the data user U d u (designcryptor), and the set of designcryptor’s secret decryption keys { S K u i d , k d } k I , outputs the plaintext M or .
Definition 7.
Assume the signcryptor is denoted by U d o and designcryptor is denoted by U d u . We say that the MACP-ABSC scheme is correct if R s ( U d u s ˜ ) = 1 , R e ( U d u d ˜ ) = 1 , then P r [ M D e S i g n c r y p t i o n ( P P , C T , P K d u , { S K d u , k d } k I ) ] = 1 , where { P P , P K d o P K d u } G l o b a l S e t u p ( 1 k ) , { P K k , S K k } A u t h o r i t y S e t u p ( P P ) , S K d o , k s S e c r e t K e y G e n ( P P , P K k , S K k , P K d o , U d o ˜ ) , S K d u , k d S e c r e t K e y G e n ( P P , P K k , S K k , P K d u , U d u ˜ ) , C T S i g n c r y p t i o n ( M , P P , R s , R e , { S K d o , k s } k I ) .

4.2. High-Level Overview of OMDAC-ABSC Scheme

Based on MACP-ABSC scheme, we propose OMDAC-ABSC scheme, a novel data access control scheme for fog computing system supporting the computation outsourcing for both signcryptor and designcryptor.

4.2.1. Scheme Description

As shown in Figure 1, our OMDAC-ABSC scheme has five types of entities: the global certificate authority (CA), cloud server, users (including signcryptors and designcryptors), independent attribute authorities (AAs) and fog nodes.
Global Certificate Authority: The global certificate authority (CA) is fully trusted in the system and generates the public parameters for the system. CA is also responsible for the users’ and authorities’ registrations. However, CA is not involved in any attribute management and the creations of the secret keys that are associated with attributes. With the help of CA, we can improve the privacy of our scheme by realizing the identity authentication and preventing authorities from forging a virtual user to decrypt the ciphertext. In secret key generation phase, the attribute authority verifies user’s certification using the verification key of CA and then generates the secret key for the user. In designcryption phase, the cloud server can verify user’s identifier and return the ciphertext to the fog node if the user is valid.
Cloud Server: The cloud server is a semi-trusted party and also provides data storage and data access service to users. Since our scheme supports public verification, the cloud server can verify that the ciphertext is valid and is signcrypted by the data owner whose attributes satisfy the signing predicates contained in the ciphertext. If the ciphertext is not valid, the cloud server can reject it.
User: Users who are attached to fog nodes and equipped with IoT devices in our system include the signcryptor and designcryptor. When the signcryptor signcrypts a message, he/she can select the signing and encryption predicates over the attributes from multiple authorities and outsource the resulting ciphertext to the cloud server. We assume that the ciphertext implicitly contains the signing and encryption predicates. Only legally registered users can endorse the data, and only users satisfying the encryption predicate can decrypt the data.
Attribute Authority: The authority can initialize itself to setup its public and secret keys. To compute the secret keys for users, the authority verifies the user’s identity and generates the secret keys according to the user’s attributes.
Fog Node: Fog nodes, deployed at the edge of the network, offer a variety of services, such as low latency, location awareness, and real-time applications. Each of them is linked to the cloud server. Fog nodes are also in charge of part of signcryption and designcryption computations. Note that in designcryption phase, only if the data user’s attributes satisfy the encryption predicate will the fog nodes partially designcrypt the ciphertext with the proxy secret keys.
The work flow of OMDAC-ABSC scheme is shown in Figure 2. The scheme consists of the following six phases.
(1) System Initialization
In this phase, CA generates the public parameters for the system, and also accepts the registrations of the attribute authorities and the users. The initialization phase contains the following six algorithms:
G l o b a l S e t u p 1 ( 1 k ) . This algorithm is run by CA. Taking as input the security parameter 1 k , the algorithm outputs the public parameters P P .
U s e r R e g ( P P ) . This algorithm is run by CA and data user. Taking as input the public parameters, CA assigns the global identity u i d and partial public key P P K u i d to the user.
A u t h o r i t y R e g ( P P ) . This algorithm is run by CA and the attribute authority. Taking as input the public parameters, CA assigns the global identity a i d and partial public key P P K a i d for the attribute authority.
U s e r S e t u p ( P P , P P K u i d ) . Given the global identity u i d , public parameters P P , and partial public key P P K u i d , the data user runs U s e r S e t u p ( P P , P P K u i d ) to initialize himself/herself. The algorithm outputs the public key P K u i d and secret key S K u i d for the user. Additionally, the public key certificate c e r t ( u i d ) generated by CA is sent to the user for identity authentication.
A u t h o r i t y S e t u p ( P P , P P K a i d ) . Given the global identity a i d , public parameters P P , and partial public key P P K a i d , the attribute authority runs A u t h o r i t y S e t u p ( P P , P P K a i d ) to initialize itself. The algorithm outputs the public key P K a i d   , P K u i d , a i d 1 and secret key S K a i d   for the attribute authority A A a i d .
G l o b a l S e t u p 2 ( 1 k , P P ,   { P K a i d , P K u i d , a i d 1 } U u i d S U , A A a i d S A ) . This algorithm is run by CA to end the system initialization phase. Taking as input the public parameters P P and authorities’ public keys { P K a i d , P K u i d , a i d 1 } U u i d S U , A A a i d S A , CA generates the public key P K u i d , a i d for each pair of user U u i d and authority A A a i d .
(2) Secret Key Generation
After system initialization, the attribute authority A A a i d can verify the user’s identity using the public key certificate c e r t ( u i d ) and then run S e c r e t K e y G e n ( P P , P K a i d , S K a i d , P K u i d , U ˜ ) algorithm to compute the secret signing and decryption keys for the valid user according to the user’s attribute set U ˜ .
S e c r e t K e y G e n ( P P , P K a i d , S K a i d , P K u i d , U ˜ ) . The algorithm intakes the public parameters P P , the public key and secret key pair { P K a i d , S K a i d } of the authority A A a i d , the public key P K u i d and user’s attribute set U ˜ , outputs the user’s secret signing and decryption keys S K u i d , a i d = { S K u i d , a i d s , S K u i d , a i d d } .
(3) Proxy Secret Key Generation
In this phase, the data user runs P x S e c r e t K e y G e n ( S K u i d , S K u i d , a i d ) algorithm to compute the proxy secret signing and decryption keys P S K u i d , a i d = { P S K u i d , a i d s , P S K u i d , a i d d } and then sends P S K u i d , a i d to the fog nodes to outsource the signcryption and designcryption computation overhead.
P x S e c r e t K e y G e n ( S K u i d , S K u i d , a i d ) . Taking as input the secret key S K u i d and secret signing and decryption keys S K u i d , a i d , this algorithm outputs the proxy secret signing and decryption keys P S K u i d , a i d = { P S K u i d , a i d s , P S K u i d , a i d d } . P S K u i d , a i d are sent to the fog nodes.
(4) Data Signcryption
To achieve high efficiency, the signcryptor first encrypts the plaintext with a random content key by applying a symmetric encryption algorithm. Then the signcryptor defines the signing and encryption predicates R s and R e , and signcrypts the content secret key with the following two algorithms:
F o g _ S i g n c r y p t i o n ( P P , { P S K u i d , k s } k I A s , P K u i d , R s , R e ) . This algorithm is performed in the fog nodes. Taking as input the public parameters P P , proxy secret signing key P S K u i d , k s of the attribute authority A A k whose attributes are selected for signing, the public key P K u i d of signcryptor, the signing and encryption predicates R s , R e , the algorithm outputs part of the ciphertext C T .
U s e r _ S i g n c r y p t i o n ( M , P P , { P K a i d } a i d I A e , S K u i d , C T ) . This algorithm intakes the message to be signcrypted, the public parameters P P , the public key P K a i d of attribute authorities whose attributes are selected for encryption, secret key S K u i d of signcryptor and partial ciphertext C T , outputs the ciphertext C T and sends C T to the cloud server.
(5) Data Designcryption
When the user queries the ciphertext, the cloud server verifies the user’s identifier and returns the ciphertext to the fog node if the user is valid. If the decryption attribute set U d ˜ satisfies the encryption predicate R e embedded in ciphertext, the data user can obtain the plaintext by running D e S i g n c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k d } k I A e , S K u i d ) algorithm which includes the following three sub-algorithms: V e r i f y ( P P , C T ) run by any trusted party (public verifiability), P a r t i a l D e c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k d } k I A e ) run by fog nodes and F u l l D e c r y p t i o n ( P P , C T p , S K u i d ) performed by the user. I A s (resp. I A e ) denotes the set of the indexes of the authorities involved in signing (resp. encryption). Note that I A s (resp. I A e ) can be obtained from R s (resp. R e ) which is implicitly contained in C T .
V e r i f y ( P P , C T ) . This algorithm takes as input the public parameters P P and ciphertext C T , outputs if C T contains an invalid signature corresponding to the signing predicate R s embedded in C T . Otherwise, proceed D e c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k } k I A e , S K u i d ) algorithm as follows:
D e c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k } k I A e , S K u i d ) . This algorithm contains two sub-algorithms:
P a r t i a l D e c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k d } k I A e ) . This algorithm intakes the public parameters P P , the ciphertext C T , the public key P K u i d of the user and the proxy secret decryption key P S K u i d , k d , outputs the partial decryption result C T p and returns C T p to the user.
F u l l D e c r y p t i o n ( P P , C T p , S K u i d ) . Taking as input the public parameters P P , the partial decryption result C T p and secret key S K u i d , the algorithm outputs the final plaintext M or .
(6) Attribute revocation
In this phase, suppose the attribute x of the user U is revoked from A A k . After randomly chooses a new attribute version key, the authority A A k distributes the update keys implicitly containing the latest attribute version key to the non-revoked users and cloud server respectively. Only the x -related components of secret keys and ciphertext will be updated.
U p S e c r e t K e y G e n ( P K u i d , S K k , S K u i d , k ) . This algorithm is run by attribute authority A A k . The algorithm intakes the public key P K u i d of non-revoked user U u i d , the secret key of A A k , outputs the signing and decryption update keys s U K u i d , x , d U K u i d , x , and ciphertext update keys c U K , s U K .
U p S e c r e t K e y ( S K u i d , k , s U K u i d , x , d U K u i d , x ) . This algorithm is run by the non-revoked user U u i d . Taking as input the secret signing and decryption key S K u i d , k , and the signing and decryption update keys s U K u i d , x , d U K u i d , x , the algorithm outputs the updated secret signing and decryption keys.
U p C i p h e r t e x t ( C T , c U K , s U K ) . This algorithm is run by the cloud server. Taking as input the ciphertext tagged with the revoked attribute, and the ciphertext update keys c U K , s U K , the algorithm outputs the updated ciphertext.

4.2.2. Threat Assumption

Assume CA is fully trusted. The authorities can honestly issue the secret keys for the user and will not collude with the user to access the sensitive data. However, the authorities can be corrupted and disclose the information sent from the data user to the adversary. The fog nodes can also be corrupted and leak the information such as proxy secret keys to the adversary. The cloud server is semi-trusted. It will execute the protocol in general but will leak the signcrypted data to some malicious users and get illegal access privileges. The data users (including the signcryptor and designcryptor) are malicious and can collude with other users and even the cloud server and fog nodes to sign or decrypt the unauthorized data.

4.2.3. Security Requirements

Following [12,14], the confidentiality, unforgeability and signcryptor privacy of OMDAC-ABSC scheme are presented in Definitions 8, 9 and 10 as follows by defining the security games between a challenger and an adversary A . Then in Definition 11 and Definition 12, we provide the definitions of collusion resistance and attribute revocation security.
Definition 8.
Indistinguishability of ciphertext under selective encryption predicate and adaptively chosen ciphertext attack (IND-sEP-CCA2).
The scheme is ( T , q s k , q p s k , q S C , q D S , ϵ ) -IND-sEP-CCA2 secure if for any PPT adversary A which runs in time at most T and makes at most q s k S e c r e t K e y queries, q p s k P r o x y   S e c r e t K e y queries, q S C S i g n c r y p t i o n queries, and q D S D e S i g n c r y p t i o n queries, the advantage A d v A I N D s E P C C A 2 of A in the following game with a challenger C is at most ϵ .
I n i t . A specifies the space of attributes and the set of corrupted authorities. A submits the challenge encryption predicate R e * = ( M e * , ρ e * ) over encryption attributes that will be used to encrypt the challenge ciphertext. Note that the adversary cannot decrypt the challenge ciphertext with any secret decryption keys queried from S e c r e t K e y queries and the keys directly generated from the corrupted authorities.
S e t u p . The challenger runs the algorithms in system initialization phase to generate the public parameters, and the pairs of public key and the secret key of the attribute authorities. Then the challenger sends the public keys to the adversary. For the corrupted authorities, the challenger sends the secret keys to the adversary.
Phase 1. In this phase, the challenger C answers the queries from A as follows:
S e c r e t K e y   q u e r y   O s k ( U ˜ , A A k , u i d ) . A can adaptively query the secret key for a user U with identity u i d and a set of attributes U ˜ = U d ˜ U s ˜ to the authority A A k . U d ˜ does not satisfy R e * together with any keys that can be obtained from corrupted authorities. The challenger runs S e c r e t K e y G e n and returns the secret key to the adversary.
P r o x y   S e c r e t K e y   q u e r y   O p s k ( U ˜ , A A k , u i d ) . A can adaptively query the proxy secret key for a user U with identity u i d . The challenger runs P x S e c r e t K e y G e n and returns the proxy secret key to the adversary.
S i g n c r y p t i o n   q u e r y   O S C ( M , R s , R e ) . Upon receiving a message M G T , signing and encryption predicts R s , R e , the challenger C selects a signing attribute set U s ˜ such that R s ( U s ˜ ) = 1 and returns the ciphertext to the adversary.
D e S i g n c r y p t i o n   q u e r y   O D S ( C T , U d ˜ ) . A submits a ciphertext C T , and a decryption attribute set U d ˜ . C returns the plaintext to A if R e ( U d ˜ ) = 1 and C T contains a valid signature corresponding to the signing predicate R s , where R e and R s are implicitly contained in C T .
C h a l l e n g e . A submits two messages M 0 , M 1 with the same length and signing predicate R s * = ( M s * , ρ s * ) to the challenger. C selects a signing attribute set U s ˜ satisfying R s * ( U s ˜ ) = 1 . The challenger randomly chooses a bit 𝒷 { 0 , 1 } and runs the S i g n c r y p t i o n algorithm to signcrypt the message M 𝒷 and returns the ciphertext C T * to A as the challenge ciphertext.
Phase 2. Phase 1 is repeated. In this phase, A cannot issue O D S with the challenge ciphertext C T * obtained in Challenge phase and attribute set U d ˜ such that R e * ( U d ˜ ) = 1 .
G u e s s . A outputs a guess bit 𝒷 on 𝒷 . A wins the game if 𝒷 = 𝒷 .
The advantage of A is defined by A d v A I N D s E P C C A 2 = | P r [ 𝒷 = 𝒷 ] 1 / 2 | .
Definition 9.
Existential unforgeability under selective signing predicate and adaptively chosen message attack (EUF-sSP-CMA).
The proposed scheme is ( T , q s k , q p s k , q S C , q D S , ϵ ) -EUF-sSP-CMA secure if for any PPT adversary A which runs in time at most T and makes at most q s k S e c r e t K e y queries, q p s k P r o x y   S e c r e t K e y queries, q S C S i g n c r y p t i o n queries, and q D S D e S i g n c r y p t i o n queries, the advantage A d v A E U F s S P C M A of A in the following game with a challenger C is at most ϵ .
I n i t . A specifies the space of attributes and a set of corrupted authorities, and then submits the challenge signing predicate R s * = ( M s * , ρ s * ) over signing attributes that will be used to forge the ciphertext. Note that the adversary cannot sign the plaintext under the signing predicate R s * with any secret signing keys queried from S e c r e t K e y queries and the keys directly generated from the corrupted authorities.
S e t u p , P r o x y   S e c r e t K e y   q u e r y , S i g n c r y p t i o n   q u e r y and D e S i g n c r y p t i o n   q u e r y are the same as Definition 8.
S e c r e t K e y   q u e r y   O s k ( U ˜ , A A k , u i d ) . A can adaptively query the secret key for a user U with a set of attributes U ˜ = U d ˜ U s ˜ to the authority A A k . U s ˜ does not satisfy R s * together with any keys that can be obtained from corrupted authorities. The challenger runs S e c r e t K e y G e n and returns the secret key to the adversary.
F o r g e r y . A outputs the forgery ciphertext C T * for the selective signing predicate R s * and an arbitrary encryption predicate R e * .
A wins the game if C T * is a valid ciphertext and A has never issued O S C ( M , R s * , R e * ) . The advantage of A is defined as A d v A E U F s S P C M A = P r [ A   wins ] .
Note that in our scheme, the fog nodes can be corrupted. In this case, the proxy secret keys sent from the users might be obtained by the adversary. This kind of attack is captured by the proxy secret key query O p s k ( U ˜ , A A k , u i d ) , which makes the access control scheme proven secure in our security model have a wider spectrum of applications.
Definition 10.
Signcryptor Privacy.
It is required that the signature of the proposed scheme reveals nothing about the attributes of the data owner except that the attributes satisfy the signing predicate. We define signcryptor privacy as a game between a challenger C and an adversary A .
Assume the public parameters P P and public and secret key pairs { P K k , S K k } I A of attribute authorities are given to A . A submits two signing attribute sets U 0 s ˜ , U 1 s ˜ satisfying R s ( U 0 s ˜ ) = R s ( U 1 s ˜ ) = 1 to the challenger. The challenger then chooses a bit 𝒷 R { 0 , 1 } and signcrypts the plaintext M with the signing and encryption predicates R s , R e , and secret signing key S K u i d , k s , 𝒷 for U 𝒷 s ˜ . C sends the ciphertext C T 𝒷 to A . A then outputs a guess bit 𝒷 on 𝒷 . A wins the game if 𝒷 = 𝒷 . We say OMDAC-ABSC scheme satisfies signcryptor privacy if for any adversary A ,
P r [ 𝒷 = 𝒷   :   P P G l o b a l S e t u p 1 ( 1 k ) { P K k , S K k } I A A u t h o r i t y S e t u p ( P P , P P K k ) ( U 0 s ˜ , U 1 s ˜ , M , R s , R e ) A ( P P , { P K k , S K k } I A ) R s ( U 0 s ˜ ) = 1 = R s ( U 1 s ˜ ) 𝒷 R { 0 , 1 } C T 𝒷 C ( M , P P , R s , R e , U 𝒷 s ˜ , { S K u i d , k s , 𝒷 } k I A s ) 𝒷 A ( P P , C T 𝒷 , { P K k , S K k } I A ) ] = 1 2
Definition 11.
Collusion Resistance.
OMDAC-ABSC scheme is secure against collusion attack of two or more communication entities (e.g., data users, fog nodes, and cloud server) if there does not exist a set of polynomial time adversaries that can sign the plaintext (collusion resistance of signing) or decrypt the ciphertext (collusion resistance of decryption) by cooperating with each other when none of adversaries is authorized to sign or decrypt the data.
Definition 12.
Suppose the attribute x is revoked.
Forward Security. If x is the signing attribute, then OMDAC-ABSC scheme supports forward revocation security if the newly joined user can successfully sign the plaintext with the x -corresponding signing attribute set. Otherwise, the forward revocation security guarantees if each newly joined user can decrypt x -corresponding ciphertext if the decryption attributes of the user satisfy the encryption predicate contained in the ciphertext.
Backward Security. If x is the signing attribute, then OMDAC-ABSC scheme supports backward revocation security if the updated ciphertext cannot be reversed back to the non-revoked state while maintaining the verification algorithm holds. Otherwise, the backward revocation security guarantees if the attribute revoked user cannot decrypt the x -corresponding ciphertext as a non-revoked user.

5. Construction of OMDAC-ABSC Scheme

In this section, we propose the construction of OMDAC-ABSC scheme in detail. The notations of the scheme are listed in Appendix A.

5.1. System Initialization

5.1.1. System Setup 1

G l o b a l S e t u p 1 ( 1 k ) . Taking as input a security parameter 1 k , the algorithm outputs the public parameters P P as follows.
(1)
Generate a bilinear group G G ( 1 k ) ( e , p , G , G T ) , where the prime p is the order of group G . Let g , θ be the random generators of G . Randomly select γ 1 , γ 2 ,   { k 0 , k 1 , , k l } , { V 1 , V 2 , V m } from G . Choose three cryptographic collision resistant hash functions H 1 :   G p * , H 2 :   { 0 , 1 } * { 0 , 1 } l and H 3 :   { 0 , 1 } * p * .
(2)
CA generates a pair of keys { s k C A , v k C A } for signing and verification in identity authentication.
(3)
Output P P = { g , θ , γ 1 , γ 2 ,   { k 0 , k 1 , , k l } , { V 1 , V 2 , V m } } as the system public parameter. CA accepts both user registration U s e r R e g ( P P ) and authority registration A u t h o r i t y R e g ( P P ) .
U s e r R e g ( P P ) . CA verifies user U ’s identity information then runs this algorithm to register U . CA selects a unique identity number u i d and sends P P K u i d = { g s u i d , g d u i d , { V i s u i d } i [ m ] } as the partial public key to user. s u i d and d u i d are kept secret in the system.
A u t h o r i t y R e g ( P P ) . CA verifies the identity information of the authority then runs this algorithm to register the authority. CA selects a unique identity number a i d [ 1 , N A ] , then selects α a i d and publishes the partial public key P P K a i d = Δ a i d = e ( g , g ) α a i d to A A a i d .
U s e r S e t u p ( P P , P P K u i d ) . Given the global identity u i d , the user runs U s e r S e t u p ( P P , P P K u i d ) to initialize itself and compute the public key P K u i d and secret key S K u i d as follows.
  • Set S K u i d = z u i d where z u i d R p .
  • Set P K u i d = { g s u i d , g d u i d , g 1 / z u i d , θ z u i d , g z u i d , { V i s u i d } i [ m ] } .
  • CA sets c e r t ( u i d ) = S i g n s k C A ( u i d , P K u i d ) as the public key certificate.
A u t h o r i t y S e t u p ( P P , P P K a i d ) . Each authority A A a i d runs this algorithm to initialize itself and compute the public key P K a i d , P K u i d , a i d 1 and secret key S K a i d as follows:
(1)
Set S K a i d = { β a i d , γ a i d , { φ x } x A A a i d ˜ } , where β a i d , γ a i d , φ x R p .
(2)
Set P K a i d = { Δ a i d , X a i d , Y a i d , Z a i d , { A x } x A A a i d ˜ } , where A x = g φ x , X a i d = g 1 / β a i d , Y a i d = θ 1 / β a i d , Z a i d = θ 1 / γ a i d .
(3)
Set P K u i d , a i d 1 = g 1 / ( γ a i d z u i d ) for each user U u i d S U .

5.1.2. System Setup 2

G l o b a l S e t u p 2 ( 1 k , P P ,   { P K a i d , P K u i d , a i d 1 } U u i d S U , A A a i d S A ) . Taking as input the public parameters P P and authorities’ public keys { P K a i d , P K u i d , a i d 1 } U u i d S U , A A a i d S A , CA generates the public key P K u i d , a i d for each pair of user U u i d and authority A A a i d as follows:
For U u i d S U , A A a i d S A , P K u i d , a i d = { P K u i d , a i d 1 , P K u i d , a i d 2 , P K u i d , a i d 3 } , where P K u i d , a i d 2 = ( P K u i d , a i d 1 ) α a i d Z a i d d u i d = g α a i d / ( γ a i d z u i d ) θ d u i d / γ a i d and P K u i d , a i d 3 = X a i d α a i d Y a i d s u i d = g α a i d / β a i d θ s u i d / β a i d .

5.2. Secret Key Generation

A A a i d runs the secret key generation algorithm S e c r e t K e y G e n to generate the secret signing and decryption keys for the user U u i d .
S e c r e t K e y G e n ( P P , P K a i d , S K a i d , P K u i d , U ˜ ) . A A a i d first verifies the user’s c e r t ( u i d ) with verification key v k C A . If the user is a legal user, A A a i d computes the user’s secret signing and decryption keys S K u i d , a i d = { S K u i d , a i d s , S K u i d , a i d d } as:
(1)
S K u i d , a i d s = { K u i d , a i d s = ( P K u i d , a i d 3 ) β a i d = g α a i d θ s u i d , { F u i d , x s = ( g s u i d ) φ x = A x s u i d } x U s ˜ A A a i d ˜ } .
(2)
S K u i d , a i d d = { K u i d , a i d d = ( P K u i d , a i d 2 ) γ a i d = g α a i d / z u i d θ d u i d , { F u i d , x d = ( g d u i d ) φ x = A x d u i d } x U d ˜ A A a i d ˜ } .

5.3. Proxy Secret Key Generation

Each user U u i d runs the P x S e c r e t K e y G e n ( S K u i d , S K u i d , a i d ) to generate the proxy secret key P S K u i d , a i d = { P S K u i d , a i d s , P S K u i d , a i d d } as:
(1)
P S K u i d , a i d s = { P S u i d , a i d = ( K u i d , a i d s ) z u i d , P V u i d = g z u i d s u i d , { P F u i d , x 1 = ( F u i d , x s ) z u i d , P F u i d , x 2 = ( A x ) z u i d } x U s ˜ A A a i d ˜ , { V i z u i d , V i s u i d z u i d } i [ m ] } .
(2)
P S K u i d , a i d d = S K u i d , a i d d .
The transformed secret keys { P S K u i d , a i d } are sent to the fog node.

5.4. Data Signcryption

The data owner first encrypts the data component with a content secret key k by using symmetric encryption algorithm E n k , then it runs S i g n c r y p t i o n to signcrypt the secret key. S i g n c r y p t i o n contains two phases: fog signcrypt F o g _ S i g n c r y p t i o n and user signcrypt U s e r _ S i g n c r y p t i o n .
S i g n c r y p t i o n ( , P P , { P S K u i d , k s } k I A s , P K u i d , { P K a i d } a i d I A e , S K u i d , s , e ) . Assume that s ( M s , ρ s ) (resp. e , j ( M e , ρ e ) ) is the signing predicate (resp. encryption predicate) over all the attributes selected from the set of attribute authorities I A s (resp. I A e ), where M s (resp. M e ) is a s × n s , s m (resp. e × n e ) matrix with row labeling function ρ s :   [ s ] p (resp. ρ e :   [ e ] p ). Note that we remove the limitation that ρ s (resp. ρ e ) should be an injective function (i.e., an attribute can associate with more than one rows of M s (resp. M e )). Let M s i (resp. M e i ) be the i th row of the matrix M s (resp. M e ). Assume the signing attribute set is U s ˜ and s ( U s ˜ ) = 1 . The algorithm contains two phases as follows:
(1)
F o g _ S i g n c r y p t i o n ( P P , { P S K u i d , k s } k I A s , P K u i d , s , e ) . This algorithm is performed in the fog node FD as follows:
  • It first computes a vector a = ( a 1 , a 2 , , a s ) p s such that a M s = 1 since s ( U s ˜ ) = 1 . Note that a i = 0 for all i where ρ s ( i ) U s ˜ . Then the algorithm chooses b = ( b 1 , b 2 , , b s ) p s such that i [ s ] b i M s i = 0 .
  • The algorithm randomly chooses s u i d R p * and re-randomize the proxy secret key P S K u i d , a i d s as
    P S u i d , k = P S u i d , k ( θ z u i d ) s u i d = g α k z u i d θ z u i d s u i d ,
    P V u i d = P V u i d ( g z u i d ) s u i d = g z u i d s u i d ,
    { P F u i d , x = P F u i d , x 1 ( P F u i d , x 2 ) s u i d = A x z u i d s u i d } x U s ˜ ,
    V i z u i d s u i d = V i s u i d z u i d ( V i z u i d ) s u i d , where s u i d = s u i d + s u i d .
  • The fog node randomly picks w R p * . Then it selects { r 1 , r 2 , , r e } R p , { λ 1 , λ 2 , , λ e } R p , and computes the following terms: { C 2 , i = θ λ i A ρ e ( i ) r i , D i = g r i } i [ e ] , { S 1 , i = P V u i d a i g z u i d b i = g z u i d ( a i s u i d + b i ) } i [ s ] . S 2 = ( I A s P S u i d , k ) ( i [ s ] ( P F u i d , ρ s ( i ) V i z u i d s u i d ) a i ( P F u i d , ρ s ( i ) 2 V i z u i d ) b i ) .
FD outputs the partially signcrypted ciphertext C T = { w , { C 2 , i , D i , λ i , r i } i [ e ] , { S 1 , i } i [ s ] , S 2 } to the user.
(2)
U s e r _ S i g n c r y p t i o n ( , P P , { P K a i d } a i d I A e , S K u i d , C T ) . The user randomly picks w R p * and { r 1 , r 2 , , r e } R p . Then the user computes λ i = M e i ε where ε = ( w , ε 2 , , ε n e ) p n e . The algorithm computes the following terms:
C 0 = k I A e Δ k w , C 1 = g w , { C 2 , i = λ i λ i , D i = r i r i } i [ e ] , π = H 1 ( C 1 ) , C 3 = ( γ 1 γ 2 π ) w , { S 1 , i = ( S 1 , i ) 1 / z u i d } i [ s ] , H 2 ( i [ s ] S 1 , i , t t , s , e ) = ( c 1 , c 2 , , c l ) { 0 , 1 } l , H 3 ( C 0 , C 1 , C 3 , s , e ) = β and S 2 = ( S 2 ) 1 / z u i d ( k 0 i = 1 l k i c i ) w C 3 β .
The ciphertext is C T = { C 0 , C 1 , { C 2 , i , C 2 , i , D i , D i } i [ e ] , { S 1 , i } i [ s ] , S 2 , t t } .

5.5. Data Designcryption

If the owner’s attributes satisfy the signing predicate implicitly contained in the ciphertext, then any party can successfully verify the ciphertext (public verifiability). If the receiver’s decryption attributes satisfy the encryption predicates embedded in the ciphertext, then the decryption phase can be launched to access the plaintext.
D e S i g n c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k d } k I A e , S K u i d ) . Assume that t h r e t t is a predefined time threshold for designcryption and t t ˜ is the current time. If | t t ˜ t t | > t h r e t t or e ( U d ˜ ) 1 , the algorithm returns . Otherwise, the algorithm performs as follows. Note that I A s (resp. I A e ) can be obtained from the implicitly contained predicate s (resp. e ).
V e r i f y ( P P , C T ) . This verification algorithm can be performed in FD or other trusted third party since it only takes the ciphertext and public parameter P P as the input.
The algorithm samples { τ 2 , τ 3 , , τ n s } R p * and computes ϖ i = ( 1 , τ 2 , τ 3 , , τ n s ) M s i , where i [ s ] . H 1 ( C 1 ) = π and H 2 ( i [ s ] S 1 , i , t t , s , e ) = ( c 1 , c 2 , , c l ) , and H 3 ( C 0 , C 1 , C 3 , s , e ) = β . Then the algorithm checks the validity of the ciphertext using the following equation:
I A s Δ k = e ( S 2 , g ) e ( k 0 i = 1 l k i c i , C 1 ) e ( ( γ 1 γ 2 π ) β , C 1 ) ( i = 1 s e ( A ρ s ( i ) V i θ ϖ i N A s , S 1 , i ) ) , where N A s = | I A s | .
If it is invalid, return , otherwise, proceed D e c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k } k I A e , S K u i d ) algorithm as follows:
  • P a r t i a l D e c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k d } k I A e ) . If the user’s attributes satisfy the encryption predicate, the cloud server sends the ciphertext to the FD. FD chooses a set of constants σ = ( σ 1 , σ 2 , , σ e ) p e such that i = 1 e σ i M e i = 1 , where σ i = 0 for all i where ρ e ( i ) U d ˜ . Then it computes: C T x = k I A e e ( K u i d , k d , C 1 ) k I A e i I A k [ e ( C 2 , i θ C 2 , i A ρ e ( i ) D i , g d u i d ) e ( D i g D i , F u i d , ρ e ( i ) d ) ] σ i N A e , where I A k is defined as I A k = { i : ρ e ( i ) A A k ˜ } . FD sends C T p = { C 0 , C T x } to the user.
  • F u l l D e c r y p t i o n ( P P , C T p , S K u i d ) . This algorithm is performed on the user side. After receiving C T p , the data user recovers the message as: = C 0 ( C T x ) z u i d .
Correctness
Assume the identity of signcryptor (data owner) is d o . If | t t ˜ t t | t h r e t t and e ( U d ˜ ) = 1 , then the ciphertext can be verified and decrypted as explained subsequently.
S 2 = ( S 2 ) 1 / z d o ( k 0 i = 1 l k i b i ) w C 3 β = ( I A s g α k θ s d o ) ( i [ s ] ( A ρ s ( i ) s d o V i s d o ) a i ( A ρ s ( i ) V i ) b i ) ( k 0 i = 1 l k i c i ) w ( γ 1 γ 2 π ) w β = ( I A s g α k ) θ s d o N A s ( i [ s ] ( A ρ s ( i ) V i ) a i s d o + b i ) ( k 0 i = 1 l k i c i ) w ( γ 1 γ 2 π ) w β
Since a M s = 1 and i [ s ] b i M s i = 0 , we have
i = 1 s ϖ i ( s d o a i + b i ) = i = 1 s ( 1 , τ 2 , τ 3 , , τ n s ) M s i ( s d o a i + b i ) = ( 1 , τ 2 , τ 3 , , τ n s ) s d o i = 1 s M s i a i + ( 1 , τ 2 , τ 3 , , τ n s ) i = 1 s M s i b i = s d o . Thus we have
e ( S 2 , g ) e ( k 0 i = 1 l k i c i , C 1 ) e ( ( γ 1 γ 2 π ) β , C 1 ) ( i = 1 s e ( A ρ s ( i ) V i θ ϖ i N A s , S 1 , i ) ) = e ( ( I A s g α k ) θ s d o N A s ( i [ s ] ( A ρ s ( i ) V i ) a i s d o + b i ) ( k 0 i = 1 l k i c i ) w ( γ 1 γ 2 π ) w β , g ) e ( k 0 i = 1 l k i c i , g w ) e ( ( γ 1 γ 2 π ) β , g w ) ( i = 1 s e ( A ρ s ( i ) V i , g a i s d o + b i ) ) ( i = 1 s e ( θ ϖ i , g a i s d o + b i ) ) N A s = e ( ( I A s g α k ) θ s d o N A s , g ) ( e ( θ , g ) s d o ) N A s = I A s Δ k
This demonstrates the correctness of V e r i f y algorithm. Assume the identity of designcryptor (data user) is u i d . If i = 1 e σ i λ i = w , then
k I A e i I A k [ e ( C 2 , i θ C 2 , i A ρ e ( i ) D i , g d u i d ) e ( D i g D i , F u i d , ρ e ( i ) d ) ] σ i N A e        = k I A e i I A k [ e ( θ λ i A ρ e ( i ) r i , g d u i d ) e ( g r i , F u i d , ρ e ( i ) d ) ] σ i N A e        = k I A e i I A k [ e ( θ λ i , g d u i d ) ] σ i N A e = e ( θ , g ) w N A e d u i d
Hence C T x = k I A e ( K u i d , k d , C 1 ) k I A e i I A k [ e ( C 2 , i θ C 2 , i A ρ e ( i ) D i , g d u i d ) e ( D i g D i , F u i d , ρ e ( i ) d ) ] σ i N A e = k I A e e ( g α k / z u i d θ d u i d , g w ) e ( θ , g ) w N A e d u i d = k I A e e ( g α k , g ) w / z u i d = k I A e Δ k w / z u i d and C 0 ( C T x ) z u i d = k I A e Δ k w k I A e Δ k w = . This exhibits the correctness of D e c r y p t i o n algorithm.

5.6. Attribute Revocation

Suppose the attribute x of user U is revoked from A A k .
U p S e c r e t K e y G e n ( P K u i d , S K k , S K u i d , k ) . A A k randomly chooses a new attribute version key φ x R p and computes the updated attribute public key A x = g φ x . A A j sets d U K u i d , x = g d u i d ( φ x φ x ) , s U K u i d , x = g s u i d ( φ x φ x ) for the non-revoked users to update their secret decryption and signing keys.
If there exists i such that ρ e ( i ) = x , namely the attribute x of A A k is selected as the encryption attribute, then A A k queries D i where ρ e ( i ) = x . Then it computes c U K = { c U K i = ( D i ) φ x φ x } ρ e ( i ) = x , and sets s g U K = .
Otherwise, if x is selected as the signing attribute, A A k sets c U K = and s g U K = i = 1 S 1 , i φ x φ x , where is the set consisting of all the rows that ρ s ( i ) = x .
A A k sends ciphertext update keys c U K , s U K to the cloud server to update the corresponding ciphertext.
U p S e c r e t K e y ( S K u i d , k , s U K u i d , x , d U K u i d , x ) . Upon receiving the update keys s U K u i d , x and d U K u i d , x , the non-revoked user U u i d U then update his/her secret signing key or decryption key as follows:
If x U s ˜ , F u i d , x s = F u i d , x s s U K u i d , x = ( A x ) s u i d .
If x U d ˜ , F u i d , x d = F u i d , x d d U K u i d , x = ( A x ) d u i d .
U p C i p h e r t e x t ( C T , c U K , s U K ) . Upon receiving c U K , s U K , the cloud server updates the ciphertext to contain the latest attribute version key as follows:
If c U K = { c U K i = ( D i ) φ x φ x } ρ e ( i ) = x and s g U K = , the server randomly chooses { r i p } ρ e ( i ) = x and computes C 2 , i = C 2 , i c U K i A ρ e ( i ) r i = θ λ i A ρ e ( i ) ( r i + r i ) .
D i = D i g r i = g r i + r i , where ρ e ( i ) = x .
Otherwise, the cloud server updates the signature component S 2 as: S 2 = S 2 s g U K = ( I A s g α k θ s d o ) ( i [ s ] ( A ρ s ( i ) V i ) a i s d o + b i ) ( k 0 i = 1 l k i c i ) w C 3 β s g U K = ( I A s g α k θ s d o ) ( i [ s ] \ ( A ρ s ( i ) ) a i s d o + b i ) ( i ( A ρ s ( i ) ) a i s d o + b i ) ( i [ s ] V i a i s d o + b i ) ( k 0 i = 1 l k i c i ) w C 3 β
Correctness of Attribute Revocation.
By running U p S e c r e t K e y ( S K u i d , k , s U K u i d , x , d U K u i d , x ) , the secret signing and decryption keys of non-revoked user U u i d are associated with the new attribute version key φ x , which is the same as the updated ciphertext components { C 2 , i = θ λ i A ρ e ( i ) ( r i + r i ) } ρ e ( i ) = x or S 2 = ( I A s g α k θ s d o ) ( i [ s ] ( A ρ s ( i ) ) a i s d o + b i ) ( i ( A ρ s ( i ) ) a i s d o + b i ) ( i [ s ] V i a i s d o + b i ) ( k 0 i = 1 l k i c i ) w C 3 β .
For verification, since the updated signature component S 2 is associated with A ρ s ( i ) for i such that ρ s ( i ) = x , we have e ( S 2 , g ) e ( k 0 i = 1 l k i c i , C 1 ) e ( ( γ 1 γ 2 π ) β , C 1 ) ( i [ s ] e ( A ρ s ( i ) , S 1 , i ) ) ( i e ( A ρ s ( i ) , S 1 , i ) ) ( i [ s ] e ( V i θ ϖ i N A s , S 1 , i ) ) = I A s Δ k , which exhibits the correctness of V e r i f y algorithm.
Additionally, the operations C 2 , i = C 2 , i c U K i A ρ e ( i ) r i and D i = D i g r i = g r i + r i are equivalent to assigning a new random number r i + r i to the corresponding components of ciphertext. Then in P a r t i a l D e c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k d } k I A e ) algorithm, we have e ( C 2 , i θ C 2 , i A ρ e ( i ) D i , g d u i d ) e ( D i g D i , F u i d , ρ e ( i ) d ) = e ( θ λ i A ρ e ( i ) r i r i , g d u i d ) e ( g r i + r i , ( A ρ e ( i ) ) d u i d ) = e ( θ λ i , g d u i d ) for i such that ρ e ( i ) = x , which exhibits the correctness of D e c r y p t i o n algorithm.

6. Security Analysis

In this section, we state the security of our OMDAC-ABSC scheme in the following theorems. In Theorems 1 and 2, we prove the message confidentiality and ciphertext unforgeability of our scheme respectively. In Theorem 3 we demonstrate the signcryptor privacy. Then in Theorems 4 and 5, we analyze the collusion resistance and revocation security.
Throughout this section, assume T e is the cost time for one exponentiation in group G or G T , and T p is the cost time for one pairing operation. e , m , n e , m , s , m , n s , m are the maximum values of { e , n e , s , n s } . Suppose that the Hash functions H 1 , H 2 , H 3 are collision resistant.

6.1. Message Confidentiality

Based on the security model defined in Definition 8 and Theorem 1, we can prove that our proposed scheme guarantees the message confidentiality under the hardness of the q-PBDHE assumption.
Theorem 1.
If an adversary A can break ( T , q s k , q p s k , q S C , q D S , ϵ ) -IND-sEP-CCA2 security of our scheme, then there is an algorithm that can solve the q-PBDHE assumption with an advantage ϵ = 1 2 ϵ q D S p in a time T = T + O ( e , m n e , m u m + ( n e , m + | U ˜ | e , m n e , m 2 ) q s k + ( | U ˜ | + s , m ) q p s k + ( | U ˜ | + l + s , m + e , m ) q S C + q D S ) T e + O ( q D S ) T p .
Proof. 
Assume A can ( T , q s k , q p s k , q S C , q D S , ϵ ) break our scheme, we will construct the algorithm as follows: is given with the q-PBDHE challenge instance Y . The challenger C runs G G ( 1 k ) ( e , p , G , G T ) to generate the bilinear group and chooses 𝒷 { 0 , 1 } . If 𝒷 = 0 , C sends ( Y , Ω = e ( g , g ) a q + 1 w ) to ; otherwise it sends ( Y , Ω R G T ) to .
I n i t . The same as defined in Definition 8. Assume e * = ( M e * , ρ e * ) is the challenge encryption access structure over all the attributes selected from the set of authorities I A * e . Assume M e * is a e * × n e * matrix and n e * q .
S e t u p . The adversary chooses a set S A S A consisting of the corrupted authorities, and sends S A to the simulator . For each uncorrupted authority A A k S A S A , randomly chooses α k R p and implicitly sets α k = α k + a q + 1 . publishes Δ k = e ( g , g ) α k = e ( g a , g a q ) e ( g , g ) α k .
Let ψ R p , θ = g a , { 𝓀 0 , 𝓀 1 , , 𝓀 l } , { v 1 , v 2 , v s , m } R p , { k i = g 𝓀 i } i [ l ] , { V i = g v i } i [ s , m ] . γ 1 = g ψ ( g a q ) 1 , γ 2 = ( g a q ) 1 π * , where π * = H 1 ( g w ) .
sends P P = { e , p , G , G T , g , θ , γ 1 , γ 2 ,   { k 0 , k 1 , , k l } , { V 1 , V 2 , V s , m } , H 1 , H 2 , H 3 } to A . initializes the empty list L s k .
For the authority A A k S A S A , chooses β k , γ k R p and sets X k = g 1 / β k , Y k = θ 1 / β k , Z k = θ 1 / γ k . Let X be the set consisting of the indexes i [ e * ] with ρ e * ( i ) = x A A k ˜ . For the attribute x where X , chooses φ x R p and computes A x = g φ x i X k [ n e * ] g a k M e * ( i , k ) b i , where M e * ( i , k ) is the ( i , k ) th element of M e * . If X = , chooses φ x R p and computes A x = g φ x . This assignment describes that A x = g φ x for each signing attribute as the signing attributes are different from encryption attributes. sends P K k = { X k , Y k , Z k , { A x } x A A k ˜ } to A . For the authority A A k S A , generates the public keys and secret keys of A A k as in the real scheme and sends both the public keys and secret keys to A .
Phase 1.
S e c r e t K e y   q u e r y   O s k ( U ˜ , A A k , u i d ) . A adaptively queries the secret keys for the attribute set U ˜ = U d ˜ U s ˜ with identity uid to the authority A A k . U d ˜ does not satisfy e * together with any keys that can be obtained from corrupted authorities.
checks the list L s k that whether the entry ( u i d , U ˜ , P K u i d , S K u i d , P K u i d , k ,   S K u i d , k ) exists. If it does, sends S K u i d and S K u i d , k to the adversary and publishes the public key P K u i d and P K u i d , k .
(1)
Otherwise, randomly picks d u i d , s u i d , z u i d from p * and chooses a vector f = ( f 1 , f 2 , , f n e * ) p n e * such that f = 1 and f M e * i = 0 for all ρ e * ( i ) U d ˜ since e * ( U d ˜ ) = 0 . sets g d u i d = g d u i d i = 1 n e * g ( f i a q i + 1 ) / z u i d , g s u i d = g s u i d g a q , and computes g 1 / z u i d , θ z u i d , g z u i d , { g s u i d v i } i [ s , m ] as the public key P K u i d . Then computes
P K u i d , k = { P K u i d , k 1 = g 1 / ( γ k z u i d ) , P K u i d , k 2 = g α k / ( γ k z u i d ) θ d u i d / γ k = ( g α k z u i d g a d u i d g 2 n e * f i a q i + 2 / z u i d ) 1 γ k , P K u i d , k 3 = g α k / β k θ s u i d / β k = ( g α k g a s u i d ) 1 β k } , and sets S K u i d , k as K u i d , k d = ( P K u i d , k 2 ) γ k = g α k z u i d g a d u i d g 2 n e * f i a q i + 2 / z u i d , K u i d , k s = ( P K u i d , k 3 ) β k = g α k g a s u i d , { F u i d , x s = ( g s u i d g a q ) φ x } x U s ˜ A A k ˜ . For the attribute x U d ˜ A A k ˜ such that X = , computes F u i d , x d = ( g d u i d ) φ x . Otherwise, F u i d , x d = g d u i d φ x i X k [ n e * ] ( g d u i d a k b i j = 1 , k j n e * g f j a q + k j + 1 z u i d b i ) M e * ( i , k ) . sends S K u i d = z u i d and S K u i d , k to the adversary and publishes the public key P K u i d and P K u i d , k . inserts ( u i d , U ˜ , P K u i d , S K u i d , P K u i d , k ,   S K u i d , k ) into L s k .
P r o x y   S e c r e t K e y   q u e r y   O p s k ( U ˜ , A A k , u i d ) . checks the list L s k that whether the entry ( u i d , U ˜ , P K u i d , S K u i d , P K u i d , k ,   S K u i d , k ) exists. If it does not exist, issues O s k ( U ˜ , A A k , u i d ) query to compute S K u i d and S K u i d , k , and then runs P x S e c r e t K e y G e n ( S K u i d , S K u i d , k ) and returns P S K u i d , k to A . Otherwise, directly performs P x S e c r e t K e y G e n ( S K u i d , S K u i d , k ) and returns P S K u i d , k to A .
S i g n c r y p t i o n   q u e r y   O S C ( , s , e ) . A submits a message G T , signing and encryption predicts s = ( M s , ρ s ) , e = ( M e , ρ e ) . selects a signing attribute set U s ˜ such that s ( U s ˜ ) = 1 . For each k I A s , computes the secret signing key S K u i d , k s and P K u i d , S K u i d from O s k ( U ˜ , A A k , u i d ) , and P S K u i d , k s P x S e c r e t K e y G e n ( S K u i d , S K u i d , k s ) , where u i d is an arbitrary identity. Then returns the ciphertext C T S i g n c r y p t i o n ( , P P , { P S K u i d , k s } k I A s , P K u i d , { P K k } k I A e , S K u i d , s , e ) to A .
D e S i g n c r y p t i o n   q u e r y   O D S ( C T , U d ˜ ) . If | t t t t ¯ | > t h r e t t or e ( U d ˜ ) = 0 , then returns . If C 1 = g s , aborts. If V e r i f y algorithm is invalid, returns .Otherwise, carries out the following steps.
Assume the encryption predicate contained in C T is e and I A e is the set which consists of the indexes of the authorities whose attributes are associated with rows of M e .
If U d ˜ does not satisfy the challenge encryption predicate e * , then can obtain S K u i d and secret decryption key S K u i d , k d from O s k ( U ˜ , A A k , u i d ) , and P S K u i d , k d P x S e c r e t K e y G e n ( S K u i d , S K u i d , k d ) . returns the output of D e S i g n c r y p t i o n ( P P , C T , P K u i d , { P S K u i d , k d } k I A , S K u i d ) to A .
Otherwise, if e * ( U d ˜   ) = 1 , assume π = H 1 ( C 1 = g w 1 ) , where w 1 is the secret value chosen to generate C T in signcryption phase. Then for k I A e , compute e ( g α k , C 1 ) e ( C 3 C 1 ψ , g a ) ( π π * 1 ) 1 = e ( g α k , g w 1 ) e ( ( γ 1 γ 2 π ) w 1 g s x ψ , g a ) ( π π * 1 ) 1 = e ( g α k , g w 1 ) e ( ( g ψ ( g a q ) 1 ( g a q ) π π * ) w 1 g w 1 ψ , g a ) ( π j π * 1 ) 1 = e ( g α k , g w 1 ) e ( g a q , g a w 1 ) = Δ k w 1 . Thus can return = C 0 k I A e Δ k w 1 to A .
C h a l l e n g e . A submits two messages 0 , 1 with the same length and signing predicate s * = ( M s * , ρ s * ) to . Assume I A * s is the set which consists of the indexes of the authorities whose attributes are associated with rows of M s * and M s * is a s * × n s * matrix. chooses 𝒷 ^ { 0 , 1 } . selects a signing attribute set U s ˜ satisfying s * ( U s ˜ ) = 1 and an arbitrary identity u i d A .
Let a = ( a 1 , a 2 , , a s * ) p s * such that a M s * = 1 , b = ( b 1 , b 2 , , b s * ) p s * such that i [ s * ] b i M s * i = 0 . Implicitly set s u i d A = s u i d A a q . Then compute the challenge ciphertext as follows:
Let ε = ( w , w a + ε 2 , , s a n e * 1 + ε n e * ) p n e * and implicitly sets r i = r i + w b i for all i [ e * ] . Select { r 1 , r 2 , , r e * } R p , { λ 1 , λ 2 , , λ e * } R p .
C 0 = 𝒷 ^ k I A * e Ω e ( g w , g ) α k , C 1 = g w .
C 2 , i = g a ( λ i λ i ) A ρ e * ( i ) ( r i r i ) = A ρ e * ( i ) ( r i r i ) g w b i φ ρ e * ( i ) g a λ i k = 2 n e * g a ε k M e * ( i , k ) l X \ i k [ n e * ] g w a k b i M e * ( l , k ) b l , C 2 , i = λ i .
D i = g r i r i = g r i r i g w b i , D i = r i . C 3 = g ψ w .
S 1 , i = g a i s u i d A + b i = g a i ( s u i d A a q ) + b i ,
S 2 = ( I A * s g α k g a s u i d A ) ( i [ s ] ( g φ ρ s * ( i ) + v i ) a i ( s u i d A a q ) + b i ) ( g w ) 𝓀 0 + i = 1 l 𝓀 i c i + ψ β * , where H 2 ( i [ s ] S 1 , i , t t , s , e ) = ( c 1 , c 2 , , c l ) and H 3 ( C 0 , C 1 , C 3 , s , e ) = β * .
Finally, sends the challenge ciphertext C T * = { C 0 , C 1 , { C 2 , i , C 2 , i , D i , D i } i [ e * ] , { S 1 , i } i [ s * ] , S 2 , t t } to A .
Phase 2. Phase 1 is repeated. In this phase, A cannot issue D e S i g n c r y p t i o n   q u e r y with the challenge ciphertext C T * and attribute set U d ˜ such that e * ( U d ˜   ) = 1 .
G u e s s . A outputs his guess 𝒷 ˜ on 𝒷 ^ . If 𝒷 ˜ = 𝒷 ^ , outputs 0 and guess that Ω = e ( g , g ) a q + 1 w ; otherwise, outputs 1 to indicate that Ω is a random element in G T .
If A issues D e S i g n c r y p t i o n   q u e r y with the ciphertext satisfying C 1 = g w , then the simulation aborts. The probability is at most q D S p . If 𝒷 = 0 , Ω = e ( g , g ) a q + 1 w and does not abort, then C T * is a valid ciphertext of 0 . In this case, we have P r [ 𝒷 ˜ = 𝒷 ^ | 𝒷 = 0 ] > 1 2 + ϵ q D S p . If Ω is a random element in G T , then C 0 is a random element and A cannot obtain 𝒷 ^ , namely the advantage in this case is P r [ 𝒷 ˜ 𝒷 ^ | 𝒷 = 1 ] = 1 2 . Therefore, the advantage of which can break the q-PBDHE assumption is at least 1 2 ϵ q D S p . The runtime of is at most T = T + O ( e , m n e , m u m + ( n e , m + | U ˜ | e , m n e , m 2 ) q s k + ( | U ˜ | + s , m ) q p s k + ( | U ˜ | + l + s , m + e , m ) q S C + q D S ) T e + O ( q D S ) T p . □

6.2. Ciphertext Unforgeability

Based on the security model defined in Definition 9 and Theorem 2, we can prove that our proposed scheme guarantees the ciphertext unforgeability under the hardness of the q-PBDHE assumption.
Theorem 2.
If an adversary A can break ( T , q s k , q p s k , q S C , q D S , ϵ ) -EUF-sSP-CMA security of our scheme, then there is an algorithm that can solve the q-PBDHE assumption with an advantage ϵ = ϵ 8 ( l + 1 ) q S C in a time T = T + O ( s , m n s , m u m + ( n s , m + | U ˜ | s , m n s , m 2 ) q s k + ( | U ˜ | + s , m ) q p s k + ( l + e , m + s , m + e , m n e , m ) q S C + e , m q D S ) T e + O ( e , m q D S ) T p .
Proof. 
Assume A can ( T , q s k , q p s k , q S C , q D S , ϵ ) break our basic scheme, we will construct the algorithm as follows: is given with the q-PBDHE challenge instance Y . The challenger C runs G G ( 1 k ) ( e , p , G , G T ) to generate the bilinear group and chooses 𝒷 { 0 , 1 } . If 𝒷 = 0 , C sends ( Y , Ω = e ( g , g ) a q + 1 w ) to ; otherwise it sends ( Y , Ω R G T ) to .
I n i t . The same as defined in Definition 9. Assume s * = ( M s * , ρ s * ) is the challenge signing access structure over all the attributes selected from the involved set of authorities I A * s . M s * is a s * × n s * matrix and n s * q .
S e t u p . The adversary chooses a set of S A S A consisting of the corrupted authorities, and sends S A to the simulator .
For each uncorrupted authority A A k S A S A , randomly chooses α k R p and implicitly sets α k = α k + a q + 1 . publishes Δ k = e ( g , g ) α k = e ( g a , g a q ) e ( g , g ) α k .
Let σ 1 , σ 2 R p , θ = g a . chooses m R { 0 , 1 , , l } , ϱ 0 , ϱ 1 , , ϱ l R { 0 , 1 , , ϖ 1 } , σ 1 , σ 2 , 𝓀 0 , 𝓀 1 , , 𝓀 l R p * . Set k 0 = ( g a q ) ϱ 0 ϖ m g 𝓀 0 and { k i = ( g a q ) ϱ i g 𝓀 i } i [ l ] . γ 1 = g σ 1 , γ 2 = g σ 2 . For i [ s * ] , V i = l X \ i k [ n s * ] g a k M s * ( l , k ) N A * s where N A * s = | I A * s | . For i [ s * + 1 , s , m ] , V i = g v i where v i R p .
Assume ϖ = 4 q S C and ϖ ( l + 1 ) < p . defines two functions L 1 ( c ) = p ϖ m + ϱ 0 + i = 1 l c i ϱ i and L 2 ( c ) = 𝒷 0 + i = 1 l c i 𝒷 i for each c = ( c 1 , c 2 , , c l ) { 0 , 1 } l . Thus k 0 i = 1 l k i c i = ( g a q ) L 1 ( c ) g L 2 ( c ) . Let L ( c ) = { 0 ,   ϱ 0 + i = 1 l c i ϱ i = 0   m o d   ϖ   1 ,   o t h e r w i s e . Then L ( c ) = 1 implies L 1 ( c ) 0   m o d   p .
sends P P = { e , p , G , G T , g , θ , γ 1 , γ 2 ,   { k 0 , k 1 , , k l } , { V 1 , V 2 , V s , m } , H 1 , H 2 , H 3 } to A . initializes the empty list L s k .
For the authority A A k S A S A , chooses β k , γ k R p and sets X k = g 1 / β k , Y k = θ 1 / β k , Z k = θ 1 / γ k . Let X be the set consisting of the indexes i [ s * ] with ρ s * ( i ) = x A A k ˜ . For the attribute x where X , chooses φ x R p and computes A x = g φ x i X k [ n s * ] g a k M s * ( i , k ) N A * s . If X = , chooses φ x R p and computes A x = g φ x . This assignment describes that A x = g φ x for each encryption attribute as the signing attributes are different from encryption attributes. sends P K k = { X k , Y k , Z k , { A x } x A A k ˜ } to A . For the authority A A k S A , generates the public keys and secret keys of A A k as in the real scheme and sends both the public keys and secret keys to A .
S e c r e t K e y   q u e r y   O s k ( U ˜ , A A k , u i d ) . A adaptively queries the secret keys for the attribute set U ˜ = U d ˜ U s ˜ with identity u i d to the authority A A k . U s ˜ does not satisfy s * together with any keys that can be obtained from corrupted authorities.
(1)
checks the list L s k that whether the entry ( u i d , U ˜ , P K u i d , S K u i d , P K u i d , k ,   S K u i d , k ) exists. If it does, sends S K u i d and S K u i d , k to the adversary and publishes the public key P K u i d and P K u i d , k .
(2)
Otherwise, randomly picks d u i d , s u i d , z u i d from p * and chooses a vector f = ( f 1 , f 2 , , f n s * ) p n s * such that f = 1 and f M s * i = 0 for all ρ s * ( i ) U s ˜ . since s * ( U s ˜ ) = 0 . computes g d u i d = g d u i d g a q / z u i d , g s u i d = g s u i d i = 1 n s * g f i a q i + 1 , and { V i s u i d = g s u i d v i } i [ s * + 1 , s , m ] . For i [ s * ] , V i s u i d = V i s u i d l X i k [ n s * ] ( j = 1 , k j n s * g f j a q + k j + 1 ) M s * ( l , k ) N A * s . Set P K u i d = { g s u i d , g d u i d , g 1 / z u i d , θ z u i d , g z u i d , { V i s u i d } i [ s , m ] } and P K u i d , k = { P K u i d , k 1 = g 1 / ( γ k z u i d ) , P K u i d , k 2 = g α k / ( γ k z u i d ) θ d u i d / γ k = ( g α k z u i d g a d u i d ) 1 γ k , P K u i d , k 3 = g α k / β k θ s u i d / β k = ( g α k g a s u i d g 2 n s * f i a q i + 2 ) 1 β k } . Then sets . For the attribute x U s ˜ A A k ˜ such that X = , computes F u i d , x s = ( g s u i d ) φ x . Otherwise, F u i d , x s = g s u i d φ x i X k [ n s * ] ( g s u i d a k j = 1 , k j n s * g f j a q + k j + 1 ) M s * ( i , k ) N A s . sends S K u i d = z u i d and S K u i d , k to the adversary and publishes the public key P K u i d and P K u i d , k . inserts ( u i d , U ˜ , P K u i d , S K u i d , P K u i d , k ,   S K u i d , k ) into L s k .
P r o x y   S e c r e t K e y   q u e r y   O p s k ( U ˜ , A A k , u i d ) . The same as Theorem 1.
S i g n c r y p t i o n   q u e r y   O S C ( , s , e ) . A submits a message G T , signing and encryption predicts s = ( M s , ρ s ) , e = ( M e , ρ e ) . selects a signing attribute set U s ˜ such that s ( U s ˜ ) = 1 . performs as follows:
(1)
It first computes a vector a = ( a 1 , a 2 , , a s ) p s such that a M s = 1 . Then chooses b = ( b 1 , b 2 , , b s ) p s such that i [ s ] b i M s i = 0 .
(2)
randomly chooses s u i d R p * and computes { S 1 , i = g a i s u i d + b i } i [ s ] .
(3)
Assume H 2 ( i [ s ] S 1 , i , t t , s , e ) = ( c 1 , c 2 , , c l ) = c { 0 , 1 } l . If L ( c ) = 0 , aborts. Otherwise, implicitly sets w A = w 1 a N A s L 1 ( c ) where w 1 R p * . Then C 0 = k I A e Δ k w A , C 1 = g w A = g w 1 ( g a ) N A s L 1 ( c ) , C 3 = ( g σ 1 g π σ 2 ) w A , where Δ k w A = Δ k w 1 ( e ( g a 2 , g a q ) e ( g α k , g a ) ) N A s / L 1 ( c ) and π = H 1 ( C 1 ) .
(4)
chooses { r 1 , r 2 , , r e } R p , ε = ( w 1 a N A s L 1 ( c ) , ε 2 , , ε n e ) p n e , λ i = M e i ε . Then selects { r 1 , r 2 , , r e } R p , { λ 1 , λ 2 , , λ e } R p . For i [ e ] , computes C 2 , i = g a ( λ i λ i ) A ρ e ( i ) ( r i r i ) = g a ( ( w 1 a N A s L 1 ( c ) ) M e ( i , 1 ) + j = 2 n e * ε j M e ( i , j ) λ i ) g φ ρ e ( i ) ( r i r i ) , C 2 , i = λ i , D i = g r i r i , D i = r i .
(5)
computes H 3 ( C 0 , C 1 , C 3 , s , e ) = β , S 2 = ( I A s g α k ) θ s u i d N A s ( i [ s ] ( A ρ s ( i ) V i ) a i s u i d + b i ) ( k 0 i = 1 l k i c i ) w A ( γ 1 γ 2 π ) w A β = ( I A s g α k + a q + 1 ) θ s u i d N A s C 3 β ( ( g a q ) L 1 ( c ) g L 2 ( c ) ) w 1 a N A s L 1 ( c ) ( i = 1 s ( A ρ s ( i ) V i ) a i s u i d + b i ) = ( I A s g α k ) g a q + 1 N A s θ s u i d N A s C 3 β ( ( g a q ) L 1 ( c ) g L 2 ( c ) ) w 1 ( g a N A s ) L 2 ( c ) L 1 ( c ) g a q + 1 N A s ( i = 1 s ( A ρ s ( i ) V i ) a i s u i d + b i ) = ( I A s g α k ) θ s u i d N A s C 3 β ( ( g a q ) L 1 ( c ) g L 2 ( c ) ) w 1 ( g a N A s ) L 2 ( c ) L 1 ( c ) ( i = 1 s ( A ρ s ( i ) V i ) a i s u i d + b i ) . Finally, sends C T = { C 0 , C 1 , { C 2 , i , C 2 , i , D i , D i } i [ e ] , { S 1 , i } i [ s ] , S 2 , t t } to A .
D e S i g n c r y p t i o n   q u e r y   O D S ( C T , U d ˜ ) . If | t t t t ¯ | > t h r e t t or e ( U d ˜ ) = 0 , then returns . Otherwise, issues the O sk query to get the secret decryption key and returns the output of D e S i g n c r y p t i o n to A .
F o r g e r y . A submits a valid ciphertext C T * for the challenge signing predicate s * and an encryption predicate e . If D e S i g n c r y p t i o n ( P P , C T * , P K , S K ) and A has never issued O SC ( , s * , e ) . performs as follows:
(1)
computes H 2 ( i [ s * ] S 1 , i , t t , s * , e ) = ( c 1 , c 2 , , c l ) = c { 0 , 1 } l . If ϖ m ϱ 0 + i = 1 l c i ϱ i , aborts. Otherwise, L 1 ( c ) = 0   m o d   p .
(2)
If C T * is a valid ciphertext, then H 3 ( C 0 , C 1 , C 3 , s * , e ) = β and π = H 1 ( C 1 ) . Then
S 2 = ( I A * s g α k ) θ s u i d N A * s ( i [ s * ] ( A ρ s * ( i ) V i ) a i s u i d + b i ) ( k 0 i = 1 l k i c i ) w ( γ 1 γ 2 π ) w β = ( I A * s g α k + a q + 1 ) θ s u i d N A * s C 1 L 2 ( c ) + β ( σ 1 + π σ 2 ) ( i = 1 s * ( g φ ρ s * ( i ) j [ n s * ] g a j M s * ( i , j ) N A * s ) a i s u i d + b i ) = ( I A * s g α k ) g N A * s a q + 1 θ s u i d N A * s C 1 L 2 ( c ) + β ( σ 1 + π σ 2 ) i = 1 s * S 1 , i φ ρ s * ( i ) g N A * s ( i [ s * ] j [ n s * ] a j M s * ( i , j ) ( a i s u i d + b i ) ) = ( I A * s g α k ) g N A * s a q + 1 θ s u i d N A * s C 1 L 2 ( c ) + β ( σ 1 + π σ 2 ) i = 1 s * S 1 , i φ ρ s * ( i ) θ s u i d N A * s = ( I A * s g α k ) g N A * s a q + 1 C 1 L 2 ( c ) + β ( σ 1 + π σ 2 ) i = 1 s * S 1 , i φ ρ s * ( i ) , where a M s * = 1 , b M s * = 0 and i [ s * ] j [ n s * ] a j M s * ( i , j ) ( a i s u i d + b i ) = a s u i d .
Thus, can calculate g a q + 1 = ( S 2 ( I A * s g α k ) C 1 L 2 ( c ) + β ( σ 1 + π σ 2 ) i = 1 s * S 1 , i φ ρ s * ( i ) ) 1 / N A * s and then break the q-PBDHE assumption by computing e ( g a q + 1 , g w ) . Let E 1 be the event that L ( c ) = 0 in some S i g n c r y p t i o n   q u e r y and E 2 be the event that ϖ m ϱ 0 + i = 1 l b i ϱ i in the forgery phase. Then we have P r [ ¬ E 1 ¬ E 2 ] = 1 ( l + 1 ) ϖ ( 1 2 q S C ϖ ) . If ϖ = 4 q S C , then P r [ ¬ E 1 ¬ E 2 ] = 1 8 ( l + 1 ) q S C . Thus the advantage of solving the q-PBDHE assumption is at least A d v ϵ 8 ( l + 1 ) q S C . The runtime of is at most T = T + O ( s , m n s , m u m + ( n s , m + | U ˜ | s , m n s , m 2 ) q s k + ( | U ˜ | + s , m ) q p s k + ( l + e , m + s , m + e , m n e , m ) q S C + e , m q D S ) T e + O ( e , m q D S ) T p . □

6.3. Signcryptor Privacy

Based on the security model defined in Definition 10, we prove that our scheme guarantees signcryptor privacy in Theorem 3.
Theorem 3.
Our scheme guarantees the signcryptor privacy.
Proof. 
The challenger sends P P , P K , { P K k , S K k } I A to the adversary A . Then A outputs two signing attribute sets U 0 s ˜ , U 1 s ˜ satisfying s ( U 0 s ˜ ) = 1 = s ( U 1 s ˜ ) . The challenger selects 𝒷 R { 0 , 1 } and computes C T 𝒷 with the secret signing key S K u i d , k s , 𝒷 S e c r e t K e y G e n ( P P , P K k , S K k , P K u i d , U 𝒷 s ˜ ) . Note that both the challenger and A can compute S K u i d , k s , 𝒷 for U 𝒷 s ˜ , where k I A . Specifically, K u i d , k s , 𝒷 = g α k θ s u i d 𝒷 , F u i d , x s , 𝒷 = A x s u i d 𝒷 , where s u i d 𝒷 R p * .
If the challenger uses S K u i d , k s , 0 , then it can generate the ciphertext C T 0 = { C 0 , C 1 0 , { C 2 , i 0 , C 2 , i 0 , D i 0 , D i 0 } i [ e ] , { S 1 , i 0 } i [ s ] , S 2 0 , t t } as follows.
C 1 0 = g w 0 , C 3 0 = ( γ 1 γ 2 π 0 ) w 0 where π 0 = H 1 ( C 1 0 ) .
{ C 2 , i 0 = θ λ i 0 A ρ e ( i ) r i 0 , D i 0 = g r i 0 , C 2 , i 0 = λ i 0 λ i 0 , D i 0 = r i r i 0 } i [ e ] , { S 1 , i 0 = g a i 0 s u i d 0 + b i 0 } i [ s ] .
H 2 ( i [ s ] S 1 , i 0 , t t , s , e ) = ( c 1 , c 2 , , c l ) { 0 , 1 } l . H 3 ( C 0 , C 1 0 , C 3 0 , s , e ) = β .
S 2 0 = ( I A s g α k ) θ s u i d 0 N A s ( i [ s ] ( A ρ s ( i ) V i ) v i 0 s u i d 0 + t i 0 ) ( k 0 i = 1 l k i c i ) w 0 ( C 3 0 ) β , where s u i d 0 = s u i d 0 + s u i d 0 and s u i d 0 R p * .
If the challenger uses S K u i d , k s , 1 , and sets w 0 = w 1 , λ i 0 = λ i 1 , r i 0 = r i 1 , r i 0 = r i 1 , s u i d 1 = s u i d 0 s u i d 1 , then λ i 0 = λ i 1 , s u i d 0 = s u i d 1 = s u i d . Thus C 1 0 = C 1 1 , π 0 = π 1 , C 2 , i 0 = C 2 , i 1 , C 2 , i 0 = C 2 , i 1 , C 3 0 = C 3 1 , D i 0 = D i 1 , D i 0 = D i 1 . The challenger sets a 1 M s = 1 and sets b i 1 = ( a i 0 a i 1 ) s u i d + b i 0 . Then b 1 M s = 0 and a i 0 s u i d + b i 0 = a i 1 s u i d + b i 1 . Hence S 1 , i 0 = S 1 , i 1 , S 2 0 = S 2 1 , and C T 0 = C T 1 .
Similarly, if the challenger firstly uses S K u i d , k s , 1 to generate C T 1 = { C 0 , C 1 1 , { C 2 , i 1 , C 2 , i 1 , D i 1 , D i 1 } i [ e ] , { S 1 , i 1 } i [ s ] , S 2 1 , t t } , then it can generate C T 0 with S K u i d , k s , 0 and C T 1 = C T 0 . Therefore, A can only outputs a random guess 𝒷 and the probability is at most 1 2 . □

6.4. Collusion Resistance

High-Level Overview
In our scheme, the secret keys of each user are associated the random elements d u i d , s u i d picked by CA which are difficult for each user, fog node, authority and cloud server to compute or learn. Therefore, the colluders such as the user, fog node, and cloud server cannot selectively replace or convert the components of the secret keys under the discrete logarithm assumption. Additionally, since u i d chosen by CA is globally unique in the system and d u i d and s u i d are kept secret, secret keys generated from different authorities for the same u i d can be tied together for signcryption and designcryption, and the secret keys generated for different users cannot be combined.
Let S c denote the set of colluders, and U d ˜ is the combined decryption attribute set of S c . Recall that the message is blinded by k I A e Δ k w = k I A e e ( g , g ) α k w . It is infeasible to directly reconstruct k I A e e ( g , g ) α k w due to the blindness of α k and the hardness of discrete logarithm assumption. Thus the colluders have to compute k I A e e ( K u i d , k d , C 1 ) and have to cancel the redundant element e ( θ , g ) w N A e d u i d = k I A e e ( g , g ) w h d u i d , where θ = g h . Due to BDH assumption, the only way to cancel e ( θ , g ) w N A e d u i d is to compute the denominator k I A e i I A k [ e ( C 2 , i θ C 2 , i A ρ e ( i ) D i , g d u i d ) e ( D i g D i , F u i d , ρ e ( i ) d ) ] σ i N A e in P a r t i a l D e c r y p t i o n algorithm, which means F u i d , ρ e ( i ) d = A ρ e ( i ) d u i d with the same d u i d holds for all ρ e ( i ) U d ˜ . However, since the colluders are individually unauthorized for decryption, none of the colluders holds A ρ e ( i ) d u i d for all ρ e ( i ) U d ˜ simultaneously. Moreover, since the secret key cannot be replaced, converted or combined, { A ρ e ( i ) d u i d } U u i d S c , ρ e ( i ) U d ˜ are associated with different d u i d . Hence the colluders cannot successfully decrypt the ciphertext even though U d ˜ satisfies the encrypt predicate defined in the ciphertext. Specifically, according to Theorems 1 and 2, we can prove that our scheme guarantees the collusion resistance under q-PBDHE assumption in Theorem 4.
Theorem 4.
The proposed data access control scheme is collusion resistance.
Proof. 
For the designcryptor, we state that the security game defined in Definition 9 implies the collusion resistance. Suppose that S c denotes the set of colluders who are unauthorized for decryption and U d ˜ = { U i d ˜ } i S c . If the colluders can decrypt C T * when e * ( U d ˜ ) = 1 , then the algorithm which can solve the q-PBDHE assumption can be constructed as follows.
In the initialization phase, the challenger sets e * as the selected challenge encryption predicate. In O s k , A queries for the secret decryption key corresponding to the colluder’s individual attribute set U i d ˜ . Since the colluders are individually unauthorized for decryption, we have e * ( U i d ˜ ) = 0 , which satisfies the constraint of O s k defined in Definition 8. Then in challenge phase, the challenger encrypts 𝒷 ^ under e * . If the colluders can decrypt the ciphertext, then A can guess the bit 𝒷 ^ , and thus can solve the q-PBDHE assumption with non-negligible probability.
Similarly, for the signcryptor, the Theorem 2 guarantees that no colluders such as users, fog nodes or cloud server can generate the signature by combining their information if they are individually unauthorized to sign the plaintext. Otherwise, the colluders can build an adversary and output a forgery to win the game in Definition 9 and break q-PBDHE assumption.
Therefore, the colluding users, fog nodes, and cloud server cannot sign or decrypt the data, and our OMDAC-ABSC scheme guarantees collusion resistance. □

6.5. Revocation Security

Assume the attribute x of U is revoked from A A k . A A k issues the update secret keys d U K x = g d u i d ( φ x φ x ) , s U K x = g s u i d ( φ x φ x ) and sends the keys to the non-revoked users. d U K x and s U K x are associated with the secret value d u i d , s u i d chosen by CA and attribute version key φ x , φ x chosen by A A k . Therefore, due to the blindness of d u i d , s u i d , φ x , and φ x , the revoked user U cannot update his/her secret signing or decryption key, even though he/she can corrupt some attribute authorities (not the authority A A k corresponding to x ) or collude with the non-revoked user.
Theorem 5.
Our OMDAC-ABSC scheme guarantees the forward and backward revocation security.
Proof. 
 
Forward Security. If there exists i such that ρ s ( i ) = x , the newly joined user can sign the plaintext and generate the signature component S 2 associated with A x , which is the same as the updated attribute public key of A A k . Thus the V e r i f y algorithm holds if user’s signing attributes satisfy the signing predicate. Otherwise, the newly joined user’s secret decryption keys are all associated with A x , which is the same as that in the components C 2 , i . Thus the newly joined user can decrypt ciphertext if his/her attribute set satisfies the embedded encryption predicate.
Backward security. If there exists i such that ρ s ( i ) = x , and the revoked user reverse the signature component S 2 back to the non-revoked state which is associated with A x , then the V e r i f y algorithm cannot hold since the attribute public key of A A k has been updated to A x .
Otherwise, assume C T o l d denotes the ciphertext which is updated from C T o l d in attribute revocation phase, we have C 2 , i = θ λ i A ρ e ( i ) ( r i + r i ) and D i = g r i + r i . It is hard for the revoked user to cancel c U K i and g r i since they are associated with the values φ x , φ x which are secretly chosen by A A k and r i randomly picked by cloud server. Therefore, the revoked user cannot reverse the C T o l d back to C T o l d .
For the ciphertext C T n e w which is uploaded after the attribute revocation phase, we have C 2 , i = θ λ i A ρ e ( i ) r i for i such that ρ e ( i ) = x . The revoked user cannot transform these components into the ones associated with A ρ e ( i ) due to the blindness of the attribute version keys φ x , φ x chosen by A A k and random element r i picked by fog node. Therefore, our OMDAC-ABSC scheme guarantees the forward and backward revocation security. □

7. Scheme Analysis

7.1. Security and Functionality

In this subsection, we detail the comprehensive security and functionality comparison among the proposed scheme and some MA-ABE schemes [21,22,23,24,25,26], CP-ABSC schemes [12,13,14,15] and ABE based schemes used for fog computing [16,17,18,19,20] in Table 1, Table 2 and Table 3. Therein, ✓ represents the capability to achieve the corresponding index, whereas ⨯ denotes the opposite. MBF represents monotone Boolean function, and TG represents the threshold gate.
Table 1, Table 2 and Table 3 show that our scheme supports many useful properties, such as multi-authority, collusion resistance, computation outsourcing, anonymous authentication, expressiveness, public verifiability and attribute revocation. Our scheme also realizes the security in the standard model.

7.2. Asymptotic Complexity and Performance

This section numerically analyzes the asymptotic complexity and performance of the proposed OMDAC-ABSC scheme against some MACP-ABE schemes [21,22,24,25,26], CP-ABSC schemes [12,13,14,15], and ABE based schemes [16,17,18,19,20] used for fog computing in terms of the size of secret key, ciphertext and update key, and computation overhead (exponentiations and pairing computations) of S i g n c r y p t i o n , D e S i g n c r y p t i o n and U p C i p h e r t e x t algorithms. We focus on the computation overhead on the user side because of the limited computation resources. For simplicity, in asymptotic complexity analysis we ignore the cost time of Hash functions and operations in p . Table 4 summarizes the notations used in this section.

7.2.1. Asymptotic Complexity

Table 5 details the storage comparison on MACP-ABE schemes. It is clear that the size of the secret decryption key in our OMDAC-ABSC is larger than that in [24,25] due to the components { K u i d , k d } k I A . Table 5 also illustrates that the size of ciphertext in our scheme is larger than that in [21,22,26], and has the advantage over [25]. Since our scheme supports public verification of signcryptor’s attributes, the ciphertext contains the signature components { S 1 , i } i [ s ] , S 2 , which result in a reducing ( 1 + l s ) | G | of storage overhead. Although the scheme in [24] can also verify the data owner’s attributes, it requires 2 + 2 l s signature group elements and is not publicly verifiable since it needs the plaintext message in verification algorithm. Additionally, both of our scheme and [25] requires the data owner to compute the ciphertext components { C 2 , i , D i } i [ e ] when performing U s e r _ S i g n c r y p t i o n algorithm. This cost is 2 l e | p | .
For attribute revocation, it is apparent that our scheme and [22] incur relatively the same storage overhead. Compared with [26], our scheme requires the attribute authority supervising the revoked attribute x to compute the ciphertext update key c U K = { ( D i ) φ x φ x } ρ e ( i ) = x when x is selected as an encryption attribute, and thus incurs at most l e group elements, whereas the scheme [26] only sends φ x φ x to the cloud. However, as shown in [22], DAC-MACS [26] cannot guarantee backward revocation security.
Table 6 shows the computation overhead comparison of S i g n c r y p t i o n and D e c r y p t i o n algorithms on the user side and U p C i p h e r t e x t algorithm on the cloud. From the table, we can see that the encryption and decryption cost of our scheme are both irrelevant to the number of attributes. In data signcryption phase, our scheme asks fog nodes to compute and generate part of the ciphertext which is associated with the signing and encryption predicates. Thus the signcryption cost of data owner can be reduced as T G T e + 3 T G e in encryption and ( l s + l + 2 ) T G e in signing. In decryption phase, our scheme only incurs the cost of one exponentiation in G T . Hence the performance of ours is better than most schemes except for [25]. To guarantee the CCA security in the standard model (see Theorem 1), our scheme requires the data owner to compute the components C 1 and C 3 , which results in a slight reducing 3 T G e of computation efficiency compared with [25]. However, our scheme performs better than [25] with respect to attribute revocation. Moreover, the DAC-MACS scheme in [26] only incurs the cost of l e exponentiations in G in ciphertext update phase, while our scheme incurs twice this cost. The reason is that we re-randomize C 2 , i and D i in U p C i p h e r t e x t algorithm to realize the backward revocation security.
If we set N A = 1 , then the proposed scheme is a traditional CP-ABSC scheme. In Table 7, we compare the asymptotic complexity of OMDAC-ABSC with CP-ABSC schemes [12,13,14,15]. As seen from Table 7, the size of the secret key is linear to the size of the attribute universe, which is not different between our scheme and others. Our scheme incurs a slight reducing l e | G | + 2 l e | p | of storage overhead than other schemes on the ciphertext. The reason is that we add { C 2 , i , D i , D i } i [ e ] to realize the attribute revocation and outsourced encryption, which are not considered in other schemes. Meanwhile, the ciphertext in our scheme consists of l s + 1 group elements for verification, while that in [12] is 2 l s + 2 . Table 7 also indicates that our scheme incurs less computation overhead of D e S i g n c r y p t i o n on the user side than do the other schemes since most costly job of decryption is outsourced to fog nodes. Compared with [14], our construction requires 3 + l s pairing operations in total in decryption (user side) and verification, whereas in [14], ( 5 + l s ) pairings are needed. Moreover, since our scheme supports public verifiability, the verification algorithm can be performed by a trusted intermediate party. Thus the user can recover the plaintext within one exponentiation in G T . In contrast, the schemes in [12,13,15] are not publicly verifiable, and thus incur large amount of computation overhead in verification and decryption on the user side. In [12,13], the number of pairings is linear to the number of attributes. In [15], although the size of ciphertext is only 6 | G | , eight pairings are required to recover the plaintext.
Table 8 details the storage and computation overhead comparison of our scheme and some ABE based data access control schemes for fog computing. Since the schemes in [16,18,19,20] do not support multi-authority, we set N A = 1 in our scheme for comparison. It is illustrated that the size of secret decryption key in OMDAC-ABSC is less than that in others. Since our scheme enables any trusted third party to verify the data owner’s attributes, the ciphertext contains the signature components { S 1 , i } i [ s ] , S 2 , which result in a reducing ( 1 + l s ) | G | of storage overhead on the cloud side. For encryption, on the user side, our scheme incurs 3 T G e to compute C 1 and C 3 and thus is less efficient than [17]. However, our scheme guarantees the CCA security, which is not considered in [17]. For decryption, on the user side, our scheme and [17] both incurs less computation overhead than other schemes since the two schemes only require one exponentiation in G T . Therefore, our scheme is efficient from a computation point of view.

7.2.2. Performance

We implement the whole architectures of MACP-ABE schemes [21,22,24,25,26], CP-ABSC schemes [12,13,14,15] and our scheme with Pairing-based Cryptography (PBC) library version 0.5.14 on an Ubuntu system 14.04 with a 2.6 GHz processor and 4G RAM. We employ 160-bit Type A elliptic curve group constructed on y 2 = x 3 + x over a 512-bit finite field. The computation cost for one pairing operation is 2.9 ms, and that of exponentiation on G and G T are 0.7 and 0.2 ms, respectively. Each value in Figure 3, Figure 4, Figure 5, Figure 6, Figure 7 and Figure 8 is the mean of 10 simulation trials.
For simplicity, suppose each user holds the same number of attributes N A A from each authority and | A A k ˜ | = | A A k ˜ U d ˜ | = N A A , where k [ N A ] . N A e = N A s = N A . Then, in signcryption we set l e = l s = N A A × N A , and thus the comparison of computation overhead of S i g n c r y p t i o n (without signing) and D e c r y p t i o n algorithms on the user side between our scheme and [21,22,24,25,26] can be conducted according to parameters N A and N A A . We also generate the signing and encryption predicates as AND-gate in the form of ( a 1   and   a 2   and and   a l s ) and ( a 1   and   a 2   and and   a l e ) . In Figure 3 and Figure 5, we set N A = 10 , while in Figure 4 and Figure 6, we assume N A A = 10 . During the comparison between our scheme and the ones in [21,22,24,25,26], we do not take into account the signing protocol since the schemes in [21,22,25,26] do not support attribute-based signature.
Figure 3 and Figure 4 show that the encryption algorithm in our scheme is more efficient than that in [21,22,24,26]. The reason is that the most costly job of encryption has been outsourced to the fog nodes. Although our scheme incurs more computation overhead than the one in [25], we realize CCA security in the standard model and attribute-level revocation. Figure 5 and Figure 6 give the comparison of decryption time on the user side. It is illustrated that the performance of our scheme is relatively the same as that of [22,25,26], and is better than that of [21,24] because our scheme only incurs one exponentiation and one multiplication in G T .
Assume that N A = 1 and e = s = N A A . Figure 7 and Figure 8 describe the comparison of computation overhead of S i g n c r y p t i o n and D e S i g n c r y p t i o n algorithms among the schemes [12,13,14,15] and ours. It is clear that our S i g n c r y p t i o n algorithm incurs less computation overhead than other schemes because of the outsourced signcryption. Since our scheme and Y. Sreenivasa’s scheme [14] are publicly verifiable, the V e r i f y ( P P , C T ) algorithm can be outsourced to a trusted party, and then our scheme needs only one exponentiation and one multiplication in G T on the user side to recover the plaintext message.
Moreover, we simulate the schemes in [16,17,18,19,20] and our scheme on an android phone (MEIZU m1 note platform with an ARM Cortex A53-based processor [email protected] GHz, Android 5.1, and 2GB RAM) as user’s IoT device and a laptop (2.6 GHz processor, Ubuntu system 14.04, and 4G RAM) as the fog node. The underlying curve for pairings is also Type A curve in JPBC 2.0.0 [18], where the running time for pairing is 6 ms in Ubuntu system and 175 ms in Android. For comparison, we set N A = 1 in our scheme and do not consider the signing protocol since the schemes in [16,18,19,20] do not support multi-authority and the schemes in [16,17,18,19,20] do not support attribute-based signature. Figure 9 and Figure 10 show the comparison of computation overhead of encryption algorithm and Figure 11 and Figure 12 show the comparison of decryption algorithm. The results are the average number of 10 runs. In Figure 9 we only compare the cost time of encryption on fog node between ours and the schemes in [16,17,19] since the schemes in [18,20] do not support encryption outsourcing.
It is illustrated in Figure 10 that the computation time of encryption algorithm on data owner in our scheme is basically the same as that in [17], and is smaller than that in [18,20] because of the encryption outsourcing. Compared with [16,19], the encryption algorithm in our scheme incurs slightly more computation overhead since our scheme requires the data owner to sample { C 2 , i , D i } i [ e ] and perform one Hash function π = H 1 ( C 1 ) (we do not take into account the Hash functions H 2 and H 3 here since they are involved in signing protocol). However, the encryption time is approximately 0.14–0.8 s, which is acceptable to the end users.
Figure 11 indicates that on the fog node side, the decryption algorithm of our scheme incurs more computation overhead than the schemes in [16,18,19,20]. However, Figure 12 shows that our scheme performs better than other schemes except for [17] in efficiency of decryption time on the user side. This is because our scheme outsources the most computation-consuming job of decryption to the fog node and only incurs the cost of one exponentiation and one multiplication in G T on the user side. In Figure 11, the decryption time of our scheme one the fog node is approximately 0.1–1 s, which increases almost linearly with the number of attributes.
However it is shown in Figure 12 that the running time of F u l l D e c r y p t i o n algorithm is nearly 0.03 s, which is acceptable for the end user. Since our scheme is public verifiable, the verification can be performed on any trusted third party and does not increase the computation burden of the user. Additionally, Huang et al. [16] and Zhang et al. [19] only support threshold access policy, while our scheme supports any monotone Boolean function. Overall, our scheme performs well in encryption and decryption on the user side and supports additional useful properties such as multi authorities, anonymous authentication, and public verifiability.

8. Conclusions

In this paper, we proposed OMDAC-ABSC scheme for data sharing in fog computing system. The proposed scheme realizes the security in the standard model and supports many practical properties, such as confidentiality, fine-grained access control, anonymous authentication, attribute revocation, and public verifiability. The heavy computation operations of the signcryption and designcryption algorithms are outsourced to the fog nodes making our scheme more efficient and more suitable for fog computing than the existing ABSC schemes. The security analysis, asymptotic complexity, and performance comparisons indicate that our construction hits a good balance between the security and overhead efficiency.
One problem with outsourced decryption is to verify that whether the partial decryption performed by fog nodes is correct. In ABE scheme, verifiable outsourcing has been adopted to overcome this problem, as in [17,30,31,32]. A similar technique can be used in our ABSC construction to address verifiable outsourcing, which will be our future work. Moreover, realizing a fully secure MACP-ABSC based access control scheme instead of a selectively secure scheme will be another challenge.

Author Contributions

Q.X. and C.T. conceived the scheme. Q.X. designed the scheme, analyzed the data and wrote the paper. W.Z. and F.C. performed the experiments. Z.F. and Y.X. modified the manuscript.

Funding

This research was funded by [National Key Research and Development Program of China] grant number [2017YFC0803702] and grant number [2017YFB0802302].

Conflicts of Interest

The authors declare no conflict of interest. The funding sponsors had no role in the design of the study; in the collection, analyses, or interpretation of data; in the writing of the manuscript, and in the decision to publish the results.

Appendix A

Table A1. Notations used in OMDAC-ABSC scheme.
Table A1. Notations used in OMDAC-ABSC scheme.
NotationsMeaning
S A , S U Set of attribute authorities and the set of users.
N A Number of attribute authorities.
u i d / a i d Identity of user/authority.
d o / d u Identity of data owner (signcryptor)/data user (designcryptor).
U ˜ Attribute set of the user.
A A ˜ Attribute set of the attribute authority.
U d ˜ / U s ˜ Decryption/Signing attribute set of the user. U ˜ = U d ˜ U s ˜
I A s / I A e Set of the indexes of the authorities involved in signing/encryption. I A = I A s I A e . N A s = | I A s | . N A e = | I A e | .
H 1 , H 2 , H 3 Collision resistant hash functions.
R s ( M s , ρ s )
R e , j ( M e , ρ e )
Signing and Encryption Predicate
M s i / M e i i th row of M s i / M e i .
M s ( i , k ) / M e ( i , k ) ( i , k ) th element of M s i / M e i .
s / e Number of rows of M s / M e of R s / R e .
n s / n e Number of columns of M s / M e of R s / R e .
m Maximum value of s .
P P = { g , θ , γ 1 , γ 2 ,   { k 0 , k 1 , , k l } , { V 1 , V 2 , V m } } Public parameters.
s u i d , d u i d Secret values chosen by CA for each user with identity u i d .
φ x , φ x Attribute version key for attribute x .
A x , A x Attribute public key for attribute x .
P P K u i d = { g s u i d , g d u i d , { V i s u i d } i [ m ] } Partial public key generated by CA for each user U u i d .
P P K a i d = Δ a i d Partial public key generated by CA for each attribute authority A A a i d .
P K u i d = { g s u i d , g d u i d , g 1 / z u i d , θ z u i d , g z u i d , { V i s u i d } i [ m ] } Public key of the user U u i d .
S K u i d = z u i d Secret key of the user U u i d .
P K a i d = { Δ a i d , X a i d , Y a i d , Z a i d , { A x } x A A a i d ˜ } Public key of the authority A A a i d .
S K a i d = { β a i d , γ a i d , { φ x } x A A a i d ˜ } Secret key of the authority A A a i d .
P K u i d , a i d = { P K u i d , a i d 1 , P K u i d , a i d 2 , P K u i d , a i d 3 } Public key for each pair of user U u i d and authority A A a i d .
F u i d , x s / F u i d , x d Signing/Decryption attribute key of U u i d for attribute x .
S K u i d , a i d s = { K u i d , a i d s , { F u i d , x s } x U s ˜ A A a i d ˜ } Secret signing key of U u i d generated by A A a i d .
S K u i d , a i d d = { K u i d , a i d d , { F u i d , x d } x U s ˜ A A a i d ˜ } Secret decryption key of U u i d generated by A A a i d .
P S K u i d , a i d s = { P S u i d , a i d , P V u i d , { P F u i d , x 1 , P F u i d , x 2 } x U s ˜ A A a i d ˜ , { V i z u i d , V i s u i d z u i d } i [ m ] } Proxy secret key for signing.
P S K u i d , a i d d = S K u i d , a i d d Proxy secret key for decryption.
s U K u i d , x , d U K u i d , x Signing and decryption update keys for attribute x .
c U K , s U K Ciphertext update keys.
a / b Vectors chosen by fog node for signing protocol.
s u i d Secret value randomly chosen by fog node to randomize proxy secret key.
{ r 1 , r 2 , , r e } , { λ 1 , λ 2 , , λ e } , w Random values chosen by fog node for signcrypion.
{ r 1 , r 2 , , r e } , { ε 2 , , ε n e } , w Random values chosen by data owner for signcrypion.
t h r e t t Time threshold.
{ τ 2 , τ 3 , , τ n s } Random values used for verification. ϖ i = ( 1 , τ 2 , τ 3 , , τ n s ) M s i
{ σ 1 , σ 2 , , σ e } Random values chosen by fog node for designcryption.
C T Partial ciphertext computed by fog node in signcryption.
C T p Partial ciphertext computed by fog node in designcryption.
C T Ciphertext.

References

  1. Rong, C.M.; Nguyen, S.T.; Jaatun, M.G. Beyond lightning: A survey on security challenges in cloud computing. Comput. Electr. Eng. 2013, 39, 47–54. [Google Scholar] [CrossRef]
  2. Bonomi, F.; Milito, R.; Zhu, J.; Addepalli, S. Fog computing and its role in the internet of things. In Proceedings of the First Edition of the MCC Workshop on Mobile Cloud Computing, Helsinki, Finland, 13–17 August 2012. [Google Scholar]
  3. Stojmenovic, I.; Wen, S.; Huang, X.Y.; Luan, H. An overview of fog computing and its security issues. Concurr. Comput. Pract. Exp. 2016, 28, 2991–3005. [Google Scholar] [CrossRef]
  4. Ahmad, M.; Amin, M.B.; Hussain, S.; Kang, B.H.; Cheong, T.; Lee, S.Y. Health fog: A novel framework for health and wellness applications. J. Supercomput. 2016, 72, 3677–3695. [Google Scholar] [CrossRef]
  5. Yang, Y.J.; Liu, J.K.; Liang, K.T.; Choo, K.K.; Zhou, J.Y. Extended proxy-assisted approach: Achieving revocable fine-grained encryption of cloud data. In Proceedings of the Computer Security-ESORICS 2015, LNCS 9327, Vienna, Austria, 21–25 September 2015; Springer: Heidelberg, Germany, 2015. [Google Scholar]
  6. Yi, S.H.; Qin, Z.R.; Li, Q. Security and privacy issues of fog computing: A survey. In Proceedings of the International Conference on Wireless Algorithms, Systems, and Applications, Qufu, China, 10–12 August 2015. [Google Scholar]
  7. Ren, K.; Wang, C.; Wang, Q. Security challenges for the public cloud. IEEE Internet Comput. 2012, 16, 69–73. [Google Scholar] [CrossRef]
  8. Gia, T.N.; Jiang, M.Z.; Rahmani, A.M.; Westerlund, T.; Liljeberg, P.; Tenhunen, H. Fog computing in healthcare Internet of things: A case study on ECG feature extraction. In Proceedings of the IEEE International Conference on Computer and Information Technology; Ubiquitous Computing and Communications; Dependable, Autonomic and Secure Computing; Pervasive Intelligence and Computing (CIT/IUCC/DASC/PICOM), Liverpool, UK, 26–28 October 2015. [Google Scholar]
  9. Sahai, A.; Waters, B. Fuzzy identity based encryption. Lect. Notes Comput. Sci. 2004, 3494, 457–473. [Google Scholar]
  10. Gagné, M.; Narayan, S.; Naini, R.S. Threshold attribute based signcryption. In Proceedings of the Security and Cryptography for Networks, LNCS 6280, Amalfi, Italy, 13–15 September 2010; Springer: Berlin/Heidelberg, Germany, 2010. [Google Scholar]
  11. Rao, Y.S.; Dutta, R. Expressive attribute-based signcryption with constant-size ciphertext. In Proceedings of the Progress in Cryptology-AFRICACYPT 2014, LNCS 8469, Marrakesh, Morocco, 28–30 May 2014; Springer: Cham, Switzerland, 2014. [Google Scholar]
  12. Chen, C.; Chen, J.; Lim, H.W.; Zhang, Z.F.; Feng, D.G. Combined public-key schemes: The case of ABE and ABS. In Proceedings of the Provable Secure, LNCS 7496, Chengdu, China, 26–28 September 2012; Springer: Berlin/Heidelberg, Germany, 2012. [Google Scholar]
  13. Liu, J.H.; Huang, X.Y.; Liu, J.K. Secure sharing of personal health records in cloud computing: Ciphertext policy attribute based signcryption. Futur. Gener. Comput. Syst. 2015, 52, 67–76. [Google Scholar] [CrossRef]
  14. Rao, Y.S. A secure and efficient ciphertext policy attribute-based signcryption for personal health records sharing in cloud computing. Futur. Gener. Comput. Syst. 2017, 67, 133–151. [Google Scholar] [CrossRef]
  15. Yu, G.; Cao, Z.F. Attribute-based signcryption with hybrid access policy. Peer Peer Netw. Appl. 2015, 20, 1–9. [Google Scholar] [CrossRef]
  16. Huang, Q.L.; Yang, Y.X.; Wang, L.C. Secure data access control with ciphertext update and computation outsourcing in fog computing for Internet of Things. IEEE Access 2017, 5, 12941–12950. [Google Scholar] [CrossRef]
  17. Fan, K.; Wang, J.X.; Wang, X.; Li, H.; Yang, Y.T. A secure and verifiable outsourced access control scheme in fog-cloud computing. Sensors 2017, 17, 1695. [Google Scholar] [CrossRef] [PubMed]
  18. Zuo, C.; Shao, J.; Wei, G.Y.; Xie, M.D.; Ji, M. CCA-secure ABE with outsourced decryption for fog computing. Futur. Gener. Comput. Syst. 2018, 78, 730–738. [Google Scholar] [CrossRef]
  19. Zhang, P.; Chen, Z.H.; Liu, J.K.; Liang, K.T.; Liu, H.W. An efficient access control scheme with outsourcing capability and attribute update for fog computing. Futur. Gener. Comput. Syst. 2018, 78, 753–762. [Google Scholar] [CrossRef]
  20. Mao, X.P.; Lai, J.Z.; Mei, Q.X.; Chen, K.F.; Weng, J. Generic and efficient constructions of attribute-based encryption with verifiable outsourced decryption. IEEE Trans. Dependable Secur. 2016, 13, 533–546. [Google Scholar] [CrossRef]
  21. Han, J.G.; Susilo, W.; Mu, Y.; Zhou, J.Y.; Au, M.H.A. Improving privacy and security in decentralized CP-ABE. IEEE Trans. Inf. Forensics Secur. 2015, 10, 665–678. [Google Scholar]
  22. Jiang, R.; Wu, X.; Bhargava, B. SDSS-MAC: Secure data sharing scheme in multi-authority cloud storage systems. Comput. Secur. 2016, 62, 193–212. [Google Scholar] [CrossRef]
  23. Lewko, A.; Waters, B. Decentralizing attribute-based encryption. In Proceedings of the Advances in Cryptology-EUROCRYPT 2011, LNCS 6632, Tallinn, Estonia, 15–19 May 2011; Springer: Berlin/Heidelberg, Germany, 2011. [Google Scholar]
  24. Ruj, S.; Stojmenovic, M.; Nayak, A. Decentralized access control with anonymous authentication of data stored in clouds. IEEE Trans. Parallel Distrib. Syst. 2014, 20, 384–394. [Google Scholar] [CrossRef]
  25. Sourya, J.D.; Ruj, S. Efficient decentralized attribute-based access control for mobile clouds. IEEE Trans. Cloud Comput. 2017, 99, 1–14. [Google Scholar]
  26. Yang, K.; Jia, X.H.; Ren, K. DAC-MACS: Effective data access control for multi-authority cloud storage systems. IEEE Trans. Inf. Forensics Secur. 2013, 8, 1790–1801. [Google Scholar] [CrossRef]
  27. Meng, X.Y.; Meng, X.Y. A novel attribute-based signcryption scheme in cloud computing enviroments. In Proceedings of the IEEE International Conference on Information and Automation, Ningbo, China, 1–3 August 2016. [Google Scholar]
  28. Hong, H.S.; Xia, Y.H.; Sun, Z.X.; Liu, X.M. Provably secure attribute based signcryption with delegated computation and efficient key updating. KSII Trans. Internet Inf. Syst. 2017, 11, 2646–2659. [Google Scholar]
  29. Lounis, A.; Hadjidj, A.; Bouabdallah, A.; Challal, Y. Healing on the cloud: Secure cloud architecture for medical wireless sensor networks. Future Gener. Comput. Syst. 2016, 55, 266–277. [Google Scholar] [CrossRef]
  30. Xiao, M.; Zhou, J.; Liu, X.J.; Jiang, M.D. A hybrid scheme for fine-grained search and access authorization in fog computing environment. Sensors 2017, 17, 1423. [Google Scholar] [CrossRef] [PubMed]
  31. Li, J.G.; Wang, Y.; Zhang, Y.C.; Han, J.G. Full verifiability for outsourced decryption in attribute based encryption. IEEE Trans. Serv. Comput. 2017. [Google Scholar] [CrossRef]
  32. Liao, Y.J.; He, Y.C.; Li, F.G.; Jiang, S.Q.; Zhou, S.J. Analysis of an ABE scheme with verifiable outsourced decryption. Sensors 2018, 18, 176. [Google Scholar] [CrossRef] [PubMed]
  33. Chase, M. Multi-authority attribute-based encryption. In Proceedings of the 4th Theory of Cryptography Conference on Theory of Cryptography, TCC 2007, Amsterdam, The Netherlands, 21–24 February 2007. [Google Scholar]
  34. Chase, M.; Chow, S. Improving privacy and security in multi-authority attribute-based encryption. In Proceedings of the ACM Conference on Computer and Communications Security, Chicago, IL, USA, 9–13 November 2009. [Google Scholar]
  35. Jung, T.; Li, X.Y.; Wan, Z.G.; Wan, M. Privacy preserving cloud data access with multi-authorities. In Proceedings of the IEEE INFOCOM, Turin, Italy, 14–19 April 2013. [Google Scholar]
  36. Li, Q.; Ma, J.F.; Rui, L.; Liu, X.M.; Xiong, J.B.; Chen, D.W. Secure, efficient and revocable multi-authority access control system in cloud storage. Comput. Secur. 2016, 59, 45–59. [Google Scholar] [CrossRef]
  37. Maji, H.K.; Prabhakaran, M.; Rosulek, M. Attribute-Based Signature: Achieving Attribute Privacy and Collusion Resistance; IACR Cryptology Eprint Archive. 2008. Available online: http://eprint.iacr.org/2008/328 (accessed on 23 April 2018).
  38. Okamoto, T.; Takashima, K. Decentralized attribute-based signature. In Proceedings of the Public Key Cryptography, Nara, Japan, 26 Febrary–1 March 2013; Springer: Berlin/Heidelberg, Germany, 2013. [Google Scholar]
  39. Waters, B. Ciphertext-policy attribute-based encryption: An expressive, efficient and provable secure realization. In Proceedings of the Public Key Cryptography, Taormina, Italy, 6–9 March 2011; Springer: Berlin/Heidelberg, Germany, 2011. [Google Scholar]
Figure 1. System Architecture.
Figure 1. System Architecture.
Sensors 18 01609 g001
Figure 2. Work flow of OMDAC-ABSC scheme.
Figure 2. Work flow of OMDAC-ABSC scheme.
Sensors 18 01609 g002
Figure 3. Encryption (user side).
Figure 3. Encryption (user side).
Sensors 18 01609 g003
Figure 4. Encryption (user side).
Figure 4. Encryption (user side).
Sensors 18 01609 g004
Figure 5. Decryption (user side).
Figure 5. Decryption (user side).
Sensors 18 01609 g005
Figure 6. Decryption (user side).
Figure 6. Decryption (user side).
Sensors 18 01609 g006
Figure 7. Signcryption (user side).
Figure 7. Signcryption (user side).
Sensors 18 01609 g007
Figure 8. Designcryption (user side).
Figure 8. Designcryption (user side).
Sensors 18 01609 g008
Figure 9. Encryption (fog node side).
Figure 9. Encryption (fog node side).
Sensors 18 01609 g009
Figure 10. Encryption (user side).
Figure 10. Encryption (user side).
Sensors 18 01609 g010
Figure 11. Decryption (fog node side).
Figure 11. Decryption (fog node side).
Sensors 18 01609 g011
Figure 12. Decryption (user side).
Figure 12. Decryption (user side).
Sensors 18 01609 g012
Table 1. Security and Functionality Comparison of MACP-ABE Schemes.
Table 1. Security and Functionality Comparison of MACP-ABE Schemes.
Schemes[21][22][23][24][25][26]Ours
Collusion Resistance
Standard Model
Encryption PredicateMBFMBFMBFMBFMBFMBFMBF
Encryption Outsourcing
Decryption Outsourcing
Anonymous Authentication
Attribute Revocation
Table 2. Security and Functionality Comparison of CP-ABSC Schemes.
Table 2. Security and Functionality Comparison of CP-ABSC Schemes.
Schemes[12][13][14][15]Ours
Collusion Resistance
Standard Model
Signcryptor Privacy
Signing PredicateMBFMBFMBFMBFMBF
Encryption PredicateMBFMBFMBFTGMBF
Signcryption Outsourcing
Designcryption Outsourcing
Multi-Authority
Public Verifiability
Attribute Revocation
Table 3. Security and Functionality Comparison of ABE based Schemes for Fog Computing.
Table 3. Security and Functionality Comparison of ABE based Schemes for Fog Computing.
Schemes[16][17][18][19][20]Ours
Collusion Resistance
Standard Model
Encryption PredicateTGMBFTGTGMBFMBF
Encryption Outsourcing
Decryption Outsourcing
Multi-Authority
Anonymous Authentication
Attribute Revocation
Table 4. Notations.
Table 4. Notations.
NotationsMeaning
T G e / T G T e Running time required for one exponentiation in G and G T .
T p Running time for one pairing operation.
N A Number of involved authorities.
| G | / | G T | / | p | Size of the element in G , G T , and p .
l e   / l s Number of required attributes in decryption and verification.
| U d ˜ | Number of decryption attributes.
| U ˜ | Number of signing and decryption attributes.
S Least interior nodes satisfying the access policy tree.
Table 5. Storage Comparison of MACP-ABE based Schemes.
Table 5. Storage Comparison of MACP-ABE based Schemes.
SchemesSecret Decryption KeyCiphertextUpdate Key
Secret Key UpdateCiphertext Update Key
[21] ( 6 N A + | U d ˜ | ) | G | | G T | + ( 3 N A + 2 l e ) | G | --
[22] ( 2 + 2 | U d ˜ | ) | G | | G T | + ( 3 + N A + 3 l e ) | G | 2 | G | l e | G |
[24] | U d ˜ | | G | ( l e + 1 ) | G T | + ( 2 + 2 l e + 2 l s ) | G | - l e | G T |
[25] | U d ˜ | | G | ( 3 l e + 1 ) | G T | + 4 l e | G | + 2 l e | p | ( 2 | G | + | G T | ) l e l e | G T |
[26] ( 2 N A + | U d ˜ | ) | G | | G T | + ( 1 + 3 l e ) | G | | G | | p |
Ours ( N A + | U d ˜ | ) | G | | G T | + ( 2 + 2 l e + l s ) | G | + 2 l e | p | | G | l e | G |
Table 6. Time Comparison of Signcryption, Decryption and UpCiphertext.
Table 6. Time Comparison of Signcryption, Decryption and UpCiphertext.
SchemesSigncryption (User Side)Decryption (User Side)UpCiphertext
EncryptionSigning
[21] N A T G T e + ( 3 N A + 3 l e ) T G e - ( 4 N A + 2 l e ) T p + ( N A + l e ) T G T e -
[22] 2 N A T G T e + ( 3 + N A + 4 l e ) T G e - T G T e 2 l e T G e
[24] ( 1 + 2 l e ) T G T e + 3 l e T G e ( 2 + 3 l s + 2 l s n s ) T G e 2 l e T p ( 1 + 2 l e ) T p
[25] T G T e - 2 T G T e l e T p
[26] N A T G T e + ( 1 + 5 l e ) T G e - T G T e l e T G e
Ours T G T e + 3 T G e ( l s + l + 2 ) T G e T G T e 2 l e T G e
Table 7. Asymptotic Complexity Comparison of CP-ABSC based schemes.
Table 7. Asymptotic Complexity Comparison of CP-ABSC based schemes.
SchemesSecret KeyCiphertextDeSigncryption
VerificationDecryption (User Side)
[12] ( 4 + | U ˜ | ) | G | ( 4 + l e + 2 l s ) | G | ( 2 + 2 l s ) T p + ( 2 l s + 3 ) T G e ( 2 + 2 l e ) T p + l e T G T e
[13] ( 4 + | U ˜ | ) | G | | G T | + ( 5 + l e + l s + n s ) | G | ( 6 + l s n s + 2 l s ) T p + l s T G T e + 2 l s n s T G e 2 l e T p + l e T G T e
[14] ( 4 + | U ˜ | ) | G | ( 5 + l e + l s ) | G | ( 3 + l s ) T p + ( l s + l + 1 ) T G e 2 T p + 3 l e T G e
[15] ( 6 l e + 3 l s ) | G | 6 | G | 6 T p 2 T p + ( 4 l e + 4 l e 2 ) T G e
Ours ( 2 + | U ˜ | ) | G | | G T | + ( 2 + 2 l e + l s ) | G | + 2 l e | p | ( 3 + l s ) T p + ( l s + l + 1 ) T G e T G T e
Table 8. Storage and Computation Overhead Comparison of ABE based Schemes for Fog Computing.
Table 8. Storage and Computation Overhead Comparison of ABE based Schemes for Fog Computing.
SchemesSecret Decryption KeyCiphertextEncryptionDecryption
Fog NodeUserFog NodeUser
[16] ( 2 + 2 | U d ˜ | ) | G | | G T | + ( 3 + 2 | U d ˜ | ) | G | ( 2 + 2 | U d ˜ | ) T G e T G T e + 3 T G e ( 2 | U d ˜ | + 4 ) T p + ( 2 S + 2 ) T G T e T p
[17] ( 2 + | U d ˜ | ) | G | | G T | + ( 1 + 2 l e ) | G | + ( 2 + 2 l e ) | p | 4 l e T G e + T G e T G T e ( 1 + 2 l e ) T p + ( 1 + 7 l e ) T G e T G T e
[18] ( 1 + 2 | U d ˜ | ) | G | ( 2 + | U d ˜ | ) | G | + 2 l | p | - T G T e + ( 2 + | U d ˜ | ) T G e ( 3 + 3 | U d ˜ | ) T p 4 T G T e
[19] ( 3 + | U d ˜ | ) | G | | G T | + ( 3 + | U d ˜ | ) | G | ( 2 + | U d ˜ | ) T G e 2 T G T e + 4 T G e ( | U d ˜ | + 2 ) T p + ( 2 S + 2 ) T G T e T p
[20] ( 2 + | U d ˜ | ) | G | ( 2 + 2 l e ) | G | + l | p | - T G T e + ( 3 + 3 l e ) T G e ( 1 + 2 l e ) T p + l e T G T e T G T e + 2 T G e
Ours ( 1 + | U d ˜ | ) | G | | G T | + ( 2 + 2 l e + l s ) | G | + 2 l e | p | 3 l e T G e T G T e + 3 T G e ( 1 + 2 l e ) T p + l e T G T e + 3 l e T G e T G T e

Share and Cite

MDPI and ACS Style

Xu, Q.; Tan, C.; Fan, Z.; Zhu, W.; Xiao, Y.; Cheng, F. Secure Data Access Control for Fog Computing Based on Multi-Authority Attribute-Based Signcryption with Computation Outsourcing and Attribute Revocation. Sensors 2018, 18, 1609. https://doi.org/10.3390/s18051609

AMA Style

Xu Q, Tan C, Fan Z, Zhu W, Xiao Y, Cheng F. Secure Data Access Control for Fog Computing Based on Multi-Authority Attribute-Based Signcryption with Computation Outsourcing and Attribute Revocation. Sensors. 2018; 18(5):1609. https://doi.org/10.3390/s18051609

Chicago/Turabian Style

Xu, Qian, Chengxiang Tan, Zhijie Fan, Wenye Zhu, Ya Xiao, and Fujia Cheng. 2018. "Secure Data Access Control for Fog Computing Based on Multi-Authority Attribute-Based Signcryption with Computation Outsourcing and Attribute Revocation" Sensors 18, no. 5: 1609. https://doi.org/10.3390/s18051609

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