Blockchain-enabled data governance for privacy-preserved sharing of confidential data

View article
PeerJ Computer Science

Introduction

Notwithstanding the many advantages of cloud computing, which have led to its widespread adoption and continuous growth, it also presents certain risks that prompt the exploration of alternative architectures. In particular, due to the inherent centralization of cloud services, they can become a single point of failure. This presents issues regarding service availability, censorship, and end-user privacy concerns. These challenges are further exacerbated by potential insider attacks and the service provider’s own agency. For instance, Apple’s decision in 2021 to roll out a Child Sexual Abuse Material detection technology by scanning images stored in its iCloud service led to numerous collateral privacy concerns and criticisms (Mitchell, 2022). Even though the original plan was eventually scuppered because of strong public backlash, the fundamental vulnerability of such centralized systems, which are subject to privacy violations or censorship, remains. (Portions of this text were previously published as part of a preprint (Zhang & Datta, 2023)).

To address some of these issues inherent in centralized cloud storage, many encryption schemes such as AES, RSA, proxy re-encryption, identity-based encryption, and attribute-based encryption (ABE) have been used to secure data confidentiality (Sudha & Monica, 2012; Alowolodu et al., 2013; Yan, Rong & Zhao, 2009; Yang et al., 2020). However, some encryption schemes may not be amenable to a wide variety of common data-sharing use cases.

Consider a complex surgical procedure that requires collaboration among specialized experts from around the world. These experts need access to the patient’s electronic health records (EHRs) to plan the operation and ensure all necessary equipment and preparations are in place. Therefore, the patient (data owner, DO) must securely share their private EHRs with doctors, hospitals, and other relevant institutions (data users, DUs) involved in the surgery. The primary challenge is ensuring that the EHRs are shared with the appropriate professionals on a need-to-know basis without exposing sensitive patient information, while also supporting flexible accessibility so that new DUs can access the EHRs without significant additional effort. Relying on a single trusted entity for data sharing can introduce risks, especially if that entity is compromised, and no single doctor or hospital typically has contact with all the required specialists.

To address this, a reliable and decentralized data-sharing system is essential. This system could publicly advertise the medical requirements to attract qualified experts worldwide while authorizing specific vetted individuals and institutions to access the patient’s EHRs. In this context, a blockchain-based data-sharing system is preferable (Wang, Zhang & Zhang, 2018; Gao et al., 2020; Qin et al., 2021). Blockchain’s key features—immutability, transparency, and decentralized control—offer a secure environment for sharing sensitive medical information. By integrating advanced encryption techniques, the system ensures that only authorized parties with the correct access privileges can view and interact with the EHRs, maintaining patient privacy and safeguarding data integrity.

In a traditional public-key encryption (PKE) system like RSA or an Identity-Based Encryption (IBE) scheme, the patient must re-encrypt the EHR using the doctor or institution’s public key or generate a new identity-based ciphertext. These access control options are limited in flexibility and scalability, as the DO may have to take additional steps on demand to ensure that the encrypted content is accessible to a new DU. In contrast, Ciphertext-Policy Attribute-based Encryption (CP-ABE) schemes offer a more flexible approach. Successful decryption can be carried out only if a user’s attribute set satisfies the access policy embedded in the ciphertext. Therefore, regardless of whether the number of users is predetermined, new DUs can access the EHRs without requiring significant additional effort from the DO.

However, current CP-ABE schemes may introduce privacy issues. The embedded policy in the encrypted EHR could reveal the identity of potential DUs, leading to the unintended disclosure of the patient’s information (Wu, Xu & Zhu, 2023). This issue is exacerbated when such information is uploaded on-chain to leverage the benefits of trustable and immutable logging (Wu, Xu & Zhu, 2023), whether using a public ledger like the Ethereum network or a private ledger like Hyperledger Fabric. For instance, records indicating visits to specialized hospitals or interactions with an insurance company may be used to infer a patient’s condition (Gao et al., 2020). Unauthorized entities, such as pharmaceutical companies that target patients with advertisements, could exploit this information. Similarly, other hospitals or insurance companies might use this data for marketing or discriminate pricing. It is thus crucial to hide the access policy to protect patient privacy.

Another practical concern is the risk of illegal authorization, where a corrupt authority might issue attribute keys to unauthorized DUs (Hei et al., 2021). Revisiting the use case above, companies interested in accessing patients’ information could bribe an attribute authority to obtain decryption keys. Alternatively, a company acting as an attribute authority might introduce a ‘backdoor’ during the setup phase, allowing future unauthorized access. Consequently, ensuring the security of blockchain-based data-sharing systems against corrupt authorities is also essential.

Motivations

In this subsection, we elaborate on prior ABE schemes’ limitations and practical challenges, highlighting the need for our work.

Decentralization

In traditional cloud services, the data owner (DO) typically uploads ciphertext to a cloud storage server, which means the user may take the risk of assuming that the cloud storage server will provide reliable service to ensure the availability of the uploaded data (Wang, Zhang & Zhang, 2018). However, this reliance inherently introduces a single point of failure. Another drawback of centralized cloud services arises when integrating CP-ABE for improved flexibility and scalability: it relies on intermediary entities like a trusted third party (TTP) and a central authority (CA) to perform operations such as attribute key distribution, policy verification, and data retrieval honestly. These operations are critical for ensuring the security and trustworthiness of data access control, but the reliance on centralized entities poses significant risks.

To better safeguard data availability and ensure the reliability and traceability of operations, it is crucial to design decentralized alternatives for trust mechanisms and enforce traceability throughout the access control system (Wang, Zhang & Zhang, 2018). Consider the application scenario described above: if the potential data users (DUs) are not determined in advance, and the purpose of data sharing also includes attracting public attention, such as coordinating a challenging surgery or managing world-level tasks, a blockchain-based solution is inherently advantageous. Blockchain’s decentralized nature allows for broader participation and enables the system to support complex, multi-faceted applications that require secure and transparent access control mechanisms.

A blockchain-based access control system with CP-ABE has the potential to address these issues effectively. By leveraging blockchain, we can eliminate the need for a centralized TTP to control the data. Each node in the network maintains a distributed ledger that tracks a growing list of transactions, which are verified and confirmed by consensus mechanisms before being recorded. The integrity of transactions can be secured by hashing, Merkle trees, time stamping, and incentive mechanisms. This hybrid approach enhances resilience against single-point failures and the misuse of credentials by ensuring that no single entity has complete control over the access control system. Additionally, the decentralized nature of blockchain inherently supports transparency and traceability, preventing any individual authority or entity from acting maliciously without detection (Gao et al., 2020; Hei et al., 2021; Wu et al., 2019).

Practicality

Several blockchain-based access control systems have been proposed since the emergence of public blockchain systems (Nakamoto, 2008) and the advent of Attributed-based Encryption (Sahai & Waters, 2005). Some efforts leverage the immutable public ledger to build a transaction-based access control system for secure data sharing (Maesa, Mori & Ricci, 2017; Ouaddah, Abou Elkalam & Ait Ouahman, 2016; Wang, Zhang & Zhang, 2018). In contrast, others leverage the self-executing smart contracts to establish a smart contract-based access control system for flexibility and traceability (Qin et al., 2021; Hei et al., 2021; Wu, Xu & Zhu, 2023). However, just employing blockchain technology and CP-ABE encryption for an access control system is inadequate for several practical purposes, such as cross-domain data sharing and privacy leakage.

On the one hand, information is not always shared inside a single domain or organization. For example, driver’s licenses and university registration information may be managed by separate entities. If one central authority is responsible for attribute management and key distribution like the proposed system (Kaur, Rani & Kalra, 2024), it also has trust issues, as discussed above. Therefore, multi-authority attribute-based encryption (MA-ABE), originally proposed by Chase (2007), is used to solve the access problem involving attributes belonging to various authorities. This scheme permits any number of independent authorities to distribute secret keys, which the data owner later chooses to encrypt a message. However, this MA-ABE scheme also relies on a CA that issues seeds to each AA, giving the CA the capability to decrypt any ciphertext. To eliminate the need for a ‘super-power’ CA and achieve full decentralization, Lewko & Waters (2011) proposed a fully secure decentralized CP-ABE solution without requiring cooperation among multiple AAs.

Another issue is privacy concerns, which encompass both policy-hiding and receiver privacy. Since in the classic CP-ABE schemes, an access structure specified in terms of user attributes is explicitly transmitted alongside ciphertext, whoever accesses the ciphertext is also aware of the corresponding access policy. Therefore, multi-authority CP-ABE schemes (Chase, 2007; Lewko & Waters, 2011; Rouselakis & Waters, 2015) are still unsuitable for certain use cases since access policies contain sensitive information. This calls for mechanisms to hide access policies for CP-ABE systems. Additionally, DU needs to provide a full set of user attributes to each authority for an attribute key, inevitably compromising the key receiver’s privacy.

In pursuit of addressing these concerns, several CP-ABE schemes that feature policy-hiding have been proposed (Cui et al., 2018; Zhang, Zheng & Deng, 2018; Yang et al., 2018; Gao et al., 2020; Michalevsky & Joye, 2018; Zhang et al., 2021; Kaur, Rani & Kalra, 2024). Despite these efforts, they do not completely fulfill various practical requirements. Some of them (Cui et al., 2018; Zhang, Zheng & Deng, 2018; Gao et al., 2020; Kaur, Rani & Kalra, 2024) only support a single central authority. Schemes such those from Yang et al. (2018) and Zhang et al. (2021) are prone to the leakage of DU’s confidential attribute information during the key generation or encryption process. Michalevsky & Joye (2018) introduced a fully policy-hiding decentralized CP-ABE scheme, which protects attribute information attached to the access policy and even addresses the issue of receiver privacy.

Security

Beyond the basic security goals of access control systems, such as data confidentiality, ABE schemes need to address another security issue: collusion between users. Specifically, even if data users (DUs) collude by sharing their attribute keys, they should not be able to decrypt ciphertexts unless each of their issued attribute keys individually satisfies the access policy (Bethencourt, Sahai & Waters, 2007). Additionally, different types of ABE-based systems address varying security concerns, such as accountability, which is essential in accountable ABE (Zhang et al., 2020b).

In the context of multi-authority or decentralized ABE, the security goal of collusion resistance is further complicated by the possibility of keys being issued by different authorities. More importantly, the corruption of some but not all authorities should not compromise the confidentiality of the system’s data (Lewko & Waters, 2011). However, many existing ABE-based solutions either fail to adequately address security in the presence of adversaries, as seen in the works like (Xue et al., 2017; Wang, Zhang & Zhang, 2018; Wu, Xu & Zhu, 2023), or define security goals for their application scenarios with noticeable omissions, as found in schemes (Gao et al., 2020; Nasiraee & Ashouri-Talouki, 2020; Porwal & Mittal, 2020). In general, the adversarial models in these works are often overly idealized and do not reflect real-world scenarios.

The issue of corrupted attribute authorities is a widely discussed security problem in most existing ABE-based systems that support multi-authority environments (Yang et al., 2018; Qin et al., 2021; Zhang et al., 2021; Zhao et al., 2022). However, these systems are typically proven secure only against static corruption of authorities, where enquiring about corrupt authorities are made at the beginning of the game (Chen et al., 2023). This implies that the set of corrupted authorities must be fixed, and authority keys must be requested upfront, limiting the adversary’s ability to adaptively change its attack strategy. Moreover, these schemes assume that all attribute authorities must join the system simultaneously, an assumption that is impractical in real-world deployments.

We further identify that several ABE schemes realized through inner-product predicate encryption (Michalevsky & Joye, 2018; Tseng & Gao, 2022) are vulnerable to rogue-key attacks under the fully adaptive security model, where an adversary can corrupt authorities at any point in time. In such an attack, a malicious attribute authority (AA) can generate and register an aggregate public key based on public information from other honest authorities. This rogue key can then be used to decrypt ciphertexts without possessing the necessary attribute keys to satisfy the access policy. Furthermore, works such as Zhang et al. (2020a) and Agrawal, Goyal & Tomida (2021), which build upon the scheme in Michalevsky & Joye (2018), may also inherit this vulnerability.

Another potential issue in the setup phase of the MA-ABE scheme, which has not drawn as much attention as corrupt authorities, is the reliance on a central or trusted authority for the generation of the global public key. For instance, in works such as Hei et al. (2021), only the central authority is involved in this global setup process. This assumption introduces the risk of a single point of failure and overlooks the potential for adversaries to introduce a “backdoor” during setup, which could be exploited later to carry out more harmful attacks on ciphertexts. We also identify a potential leakage of sensitive information in the scheme proposed by Michalevsky & Joye (2018) if a trusted setup is not employed for the generation of the global public key.

As a result, the challenge of securely storing user data, enabling efficient data sharing, and managing multi-authority scenarios while concurrently maintaining a balance of decentralization, traceability, privacy, security, and efficiency constitutes a complex problem that requires innovative solutions.

Contributions

In this paper, we propose a multi-party CP-ABE-based storage outsourcing system that uses blockchain technology to address decentralization, practicality, and security problems. Our solution achieves fine-grained access control by allowing data owners to define precise access policies based on user attributes while ensuring user anonymity by concealing both access policies and user identities during data access. Additionally, it is resilient against rogue-key attacks under the fully adaptive corruption assumption introduced in the work Datta, Komargodski & Waters (2023), ensuring stronger security compared to other Inner Product Predicate Encryption (IPPE)-based schemes, even in the presence of adaptively corrupted authorities.

The core contributions of this work are as follows:

Table 1:
Summary of access control system using attribute-based encryption (Part I).
Approach Authority Policy Universe Policy-hiding Receiver-hiding Access control Storage
Wang, Zhang & Zhang (2018) Single AND Small No No Smart contract IPFS
Cui et al. (2018) Single LSSS Large Partially No CSP CSP
Zhang, Zheng & Deng (2018) Single LSSS Large Partially No CSP CSP
Yang et al. (2018) Multiple LSSS Small No Yes CSP CSP
Gao et al. (2020) Single AND Large Fully No Smart contract CSP
Qin et al. (2021) Multiple LSSS Small No No CSP CSP
Zhao et al. (2022) Multiple LSSS Large Fully No CSP CSP
Tseng & Gao (2022) Multiple AND Large No No CSP CSP
This work Multiple AND Small Fully Yes Smart contract IPFS
DOI: 10.7717/peerjcs.2581/table-1
  • Capability gap and vulnerability analysis of the state-of-the-art: We examine several widely discussed ABE schemes that support multi-authority and privacy-preserving properties and select the scheme presented in Michalevsky & Joye (2018) as the most suitable for real-world scenarios to build our data-sharing system upon. We then closely analyze this scheme under a more realistic security model, fully adaptive security, and identify that it is vulnerable to a rogue-key attack, where a malicious AA can decrypt ciphertext without possessing the necessary attribute keys required to satisfy the policy. Furthermore, the scheme is exposed to a potential risk where an adversary might infer sensitive information from the published ciphertext due to poorly chosen public parameters. These vulnerabilities are thoroughly analyzed in “Attack” and “Vulnerability”, respectively.

  • Rogue-key attack resilient protocol design: To counteract the rogue-key attack and alleviate some potential risks, we modify the algorithms of Setup and Auth Setup in Michalevsky & Joye (2018) as described in Definition 5. Firstly, we introduce a multi-party protocol inspired by Bowe, Gabizon & Green (2018) for public key generation, which is detailed in Trusted Setup of “Trusted Setup”. Secondly, we impose a prerequisite for each AA to prove the knowledge of published information during the process of Auth Setup. This is elaborated in “Authority Setup”. We further demonstrate that our enhanced system successfully mitigates the aforementioned security concerns, as outlined in “Proof of security of our approach” and “Proof of security with our approach”.

  • System architecture for blockchain integration: In order to incorporate transparency and decentralization, we integrate blockchain technologies such as smart contracts and content addressing, alongside multi-authority attribute-based encryption. An overview of the system architecture is presented in “System Overview”. This hybrid approach enhances the practicality and security of the system, which makes it resilient against single-point failures and misuse of credentials. Given that transparency and traceability are inherent attributes of blockchain, a blockchain-enabled ABE system realizes a balanced solution for data sharing while simultaneously preserving privacy.

  • Comprehensive comparison with related works: We provide a comprehensive comparison of existing ABE-based data-sharing systems in terms of decentralization, privacy, and security, as discussed in “Related Work” and summarized in Table 1. To position our proposed work relative to existing solutions regarding efficiency, we evaluate computational complexity in “Asymptotic Comparisons” and present the experimental results comparing two closely related IPPE-based schemes with our enhanced construction, along with analysis in “Experimental Result”.

Overall, we propose a secure, privacy-preserving data governance system based on blockchain technology and an improved decentralized policy-hiding CP-ABE scheme with receiver privacy. Using a combination of ABE and the Advanced Encryption Standard (AES) makes the system practical. The special ABE encryption scheme is capable of handling multi-authority use cases while protecting identity privacy and ABE’s policy. The adoption of AES helps assure the confidentiality of user data, which is furthermore stored in a decentralized storage system, specifically the InterPlanetary File System (IPFS), which does not rely on a central service provider, thus avoiding a single point of failure.

Organization

The rest of the paper is structured as follows: “Related Work” contains related work that reviews traditional Attribute-based Encryption schemes and conducts an analysis of some recent solutions for access control systems with ABE technology, elaborated in Table 1. “Preliminary” summarizes the preliminaries that the techniques developed in this paper build upon. The proposed system protocol is overviewed in “System Overview” and discussed in depth in “System Design”. “Security Analysis” contains systematic security analysis, while “Performance Analysis” provides a comparative study of our system against related works. Finally, our conclusions and future plans are presented in “Concluding Remarks”.

Related Work

ABE was first introduced by Sahai and Waters in 2005 (Sahai & Waters, 2005). Subsequently, numerous proposals for a single-authority ABE system (Goyal et al., 2006; Bethencourt, Sahai & Waters, 2007) have been put forth. In these systems, the data owner (DO) encrypts data and employs a boolean formula over a set of attributes to restrict access. If the data user (DU) possesses the secret keys issued by a central authority (CA) that satisfy the boolean formula attached to the ciphertext, DU can retrieve the original data. However, these single-authority ABE systems (Sahai & Waters, 2005; Goyal et al., 2006; Bethencourt, Sahai & Waters, 2007) encounter constraints such as performance bottlenecks and key escrow issues.

Therefore, Zhang et al. (2014) proposed an enhanced ABE scheme, which alleviates the performance bottleneck issue by reducing the computation cost and ciphertext length. It has been further explored in Wang, Zhang & Zhang (2018) to create a framework that integrates decentralized storage, smart contract, and CP-ABE techniques to achieve fine-grained access control.

Another concern with the single-authority ABE system is key escrow, where CA issues all the attribute secret keys, thereby gaining the ability to decrypt each ciphertext generated by data owners. To address this issue, Chase & Chow (2009) introduced a multi-authority attribute-based (MA-ABE) scheme without the need for CA. Lewko & Waters (2011) further developed this multi-authority scheme in their work allowing any authority to join or leave the system independently. Based on it, Qin et al. (2021) designed a blockchain-based multi-authority access control scheme to address performance and single-point failure issues.

In an effort to extend the usability of ABE schemes, Nishide et al. presented a desirable property, hidden access policy, in Nishide, Yoneyama & Ohta (2008). This approach protects sensitive attribute values while leaving attribute names public, denoted as partially hiding. Since then, multiple enhanced schemes (Lai, Deng & Li, 2011; Cui et al., 2018; Zhang, Zheng & Deng, 2018; Gao et al., 2020; Xu et al., 2023b) have been proposed. To support a wide variety of access structures, a fully secure policy-hiding ABE was proposed in Lai, Deng & Li (2011). Gao et al. (2020) used the optimized scheme of Lai, Deng & Li (2011) to build a blockchain-based access control system that achieves trustworthy access while maintaining the privacy of policy and attributes. To improve the expressiveness of the access policy, a partially hidden ABE scheme under the Linear Secret Sharing Scheme (LSSS) policy was proposed in Cui et al. (2018). Zhang, Zheng & Deng (2018) proposed a privacy-aware access control system, denoted as PASH, which supports a large universe ABE scheme with partially hidden ABE. There are several similar approaches providing policy-hiding as well as ensuring accountability for key abuse, for example, Li’s work (Li et al., 2022) based on large universe ABE construction (Rouselakis & Waters, 2013) and the scheme of Wu et al. (2019) based on attribute bloom filter (ABF) (Dong, Chen & Wen, 2013). We also note that there is a longer list of desired features, such as keyword-searchable technology in ABE schemes or decentralized settings, as explored in works like (Wang, Zhang & Zhang, 2018; Xu et al., 2023b; Xu et al., 2023a).

Nevertheless, most of the aforementioned schemes either neglect the attribute of policy-hiding or exist as single-authority ABE systems. This gap is addressed by multi-authority attribute-based encryption schemes with a hidden access policy (Zhong et al., 2016; Belguith et al., 2018; Michalevsky & Joye, 2018; Zhao et al., 2022). The MA-ABE scheme featuring policy-hiding was initially introduced by Zhong et al. (2016), and subsequently improved by Belguith et al. (2018) that significantly diminishes computational cost by delegating the decryption work to a semi-trusted cloud server.

In addition to the above, there are a few other proposals Yang et al. (2018), Zhao et al. (2022) in this area that, unfortunately, give rise to additional issues. For instance, a system developed by Yang et al. (2018) keeps the user’s identity private from the attribute authority (AA) if they are not in the same domain. Yet, this approach creates a new privacy issue that users might request AAs within the domain to ask secret attribute keys from other AAs on their behalf, implying that an AA could potentially possess a complete set of a DU’s secret keys. Zhao et al. (2022) presented a data sharing scheme that adopts the access policy of linear secret sharing scheme (LSSS) and supports the MA-ABE scheme with policy-hiding to achieve privacy-preserving functionality. However, this system is vulnerable to user key abuse due to its dependence on a single central authority for key generation.

In 2018, Michalevsky and Joye introduced the first practical multi-authority attribute-based encryption (MA-ABE) scheme with the policy-hiding property (Michalevsky & Joye, 2018), realized through Inner-Product Predicate Encryption (IPPE). This scheme provides a security proof in the random oracle model, against static corruption of authorities, where the list of corrupted authorities is fixed at the beginning of the security game. The scheme also supports various access policy types, including conjunctions, disjunctions, and threshold policies. Additionally, Michalevsky & Joye (2018) addressed the issue of receiver privacy through the use of vector commitment. Notably, this scheme is one of the few that achieves fully hiding CP-ABE, ensuring that no attribute information is leaked with the access policies. Fully hiding CP-ABE can only be achieved indirectly via IPE or through threshold policies (Zhang et al., 2020b). Consequently, it is reasonable to build a data-sharing system based on this scheme, with appropriate modifications, to support real-world applications such as electronic health records or financial records.

However, the scheme of Michalevsky & Joye (2018) has its limitations, including support for only fixed-size attributes and authorities, and the need for coordination among authorities during the setup phase. More critically, we demonstrate that the scheme is vulnerable to a rogue-key attack in the presence of adaptively corrupted authorities, where corruption queries can be made at any point in time. This notion is later formalized as fully adaptive security by the work of Datta, Komargodski & Waters (2023) at EuroCrypt 2023. In real-world decentralized settings, it is realistic to expect that some authorities may join the data-sharing system later, due to factors such as network delays. Thus, the assumption that all authorities join simultaneously and that the list of corrupted authorities is fixed at the beginning of the security game does not reflect the dynamic and unpredictable nature of real-world scenarios. In practice, attackers may adaptively change their strategies based on the information available at any given time. The fully adaptive security model perfectly captures this situation and should be used to evaluate the security of proposed systems, ensuring they are practical enough to support real-world use cases. Specifically, in a rogue-key attack, a compromised authority may decrypt ciphertexts even without possessing the required attribute keys.

In Table 1, we compare and position our blockchain-enabled data-sharing system with existing works Wang, Zhang & Zhang (2018), Cui et al. (2018), Zhang, Zheng & Deng (2018), Yang et al. (2018), Gao et al. (2020), Qin et al. (2021), Zhao et al. (2022), Tseng & Gao (2022) that are closely related to ours with regard to flexibility, scalability, privacy, and decentralization across the following assessment criteria:

  1. Attribute authority: Whether the authorities involved in CP-ABE schemes are divided into single thus central authority or multi-authority.

  2. Policy: LSSS which supports AND gate, OR gate, and threshold gate versus only AND.

  3. Attribute universe: We define the complete set of supported attributes as an attribute universe and only take into account two types of the universe: the large universe and the small universe. In large universe ABE, the attribute universe size has no effect on the size of the system’s public key.

  4. Privacy: There are two aspects of privacy involved in CP-ABE schemes: policy-hiding and receiver-hiding. For the policy-hiding scheme, the CP-ABE system is available in two forms: fully hidden and partially hidden. The former means that none of the attributes can be revealed from the access policies, whereas the latter refers to only hiding sensitive attribute values in the access policies. For the receiver-hiding scheme, it prevents any AAs from learning the full set of attributes the receiver (i.e., the DU) possesses, hence relieving the DU from disclosing them while requesting attribute keys.

  5. Storage: From a technical perspective, traditional cloud service provider (CSP) and decentralized storage systems such as IPFS, Storj, and Sia, are two distinct popular solutions for data storage and sharing. CSPs may take advantage of their comprehensive control over data, but end users are exposed to the risks of a single point of failure, privacy violation, and censorship.

  6. Access control: We indicate whether access control enforcement is through a smart contract and thus logically decentralized or by a cloud service provider and thus logically centralized.

From Table 1, we observe that very few schemes (Li et al., 2022; Yang et al., 2018; Zhao et al., 2022) achieve fine-grained access control and support multi-authority with privacy-preserved characteristics, such as policy-hiding and receiver privacy. However, they all rely on a trusted third party (TTP) or cloud service provider (CSP) to offer centralized storage and access control management and are thus susceptible to the inherent vulnerabilities of such centralized systems in terms of privacy issues. In contrast, our proposed scheme stands out by leveraging smart contracts for access control management and integrating with the IPFS network for storage to realize an architecture with completely decentralized data storage and governance.

Preliminary

To initiate, we revisit certain foundational principles employed within our system. A summary of crucial notations utilized throughout the manuscript is provided in Table 2.

Table 2:
Notation description.
Notation Description
p A prime number used for 𝔾1, 𝔾2, 𝔾T and ℤ
𝔾1, 𝔾2 Two additive cyclic groups.
𝔾T A multiplicative cyclic group.
p A set of integers with order p
λ A security parameter for the input size
U A set of attribute authorities in the universe
X A set of attributes in the universe
S A set of attributes possessed by each attribute authority
R A set of attributes possessed by data user
n The number of attribute authorities
l The number of supported attributes
GID A Data User’s Global identifier
k The parameter for the k-lin assumption, representing the linear independence of group elements.
PP Public parameters for the use of Attribute-Based Encryption or Vector Commitment
α A scalar used for generation of PP
e A set of secret elements used for Trusted Setup or Authority Setup
h A hash of committed elements in Trusted Setup of Authority Setup
π A proof of knowledge for an element
rps A s-pair of the element s in group 𝔾1. The superscript 2 of rp s 2 represent s-pair elements in group 𝔾2
L A list of s-pair consisting of all the committed group elements
(PKSK) A key pair which is used for ABE encryption
Xτσ A set of secret elements in SK
AU The secret exponents used in PP of ABE
K A component of the attribute key for each individual attribute
sk The consolidated secret key issued by an attribute authority. Given that an attribute authority can oversee multiple attributes, sk might comprise several K components
x A policy vector
v An attribute vector
C A Vector Commitment associated with a specific Data User, derived from its attribute vector and global identifier
m A special message used in Vector Commitment
op An opening proof to reveal the Vector Commitment
oioi,j The elements in PPVC where ij ∈ [n], i ≠ j
z A secret exponent of group element o
aux A collection of message m
BPK A public key registered in a blockchain
BSK A private key registered in a blockchain
DOI: 10.7717/peerjcs.2581/table-2

Bilinear mapping

Consider G as an algorithm that accepts a security parameter λ and constructs three multiplicative cyclic groups of prime order p: 𝔾1 = 〈g1〉, 𝔾2 = 〈g2〉, and 𝔾T. We introduce e ˆ as a bilinear map, with e ˆ : G 1 × G 2 G T . The bilinear map e ˆ has the following characteristics:

  1. Bilinearity: for all ab ∈ ℤ, e ˆ g 1 a , g 2 b = e ˆ g 1 , g 2 a b .

  2. Non-degeneray: e ˆ g 1 , g 2 1 .

  3. Computability: for all ab ∈ ℤ, e ˆ g 1 a , g 2 b can be efficiently computed.

Auxiliary methods and definitions

We make an assumption of possessing an algorithm, denoted as COMMIT, which takes strings of arbitrary length as input and produces outputs as determined by a random oracle. While this assumption aids our security analysis, in practical implementations, we could use the BLAKE-2 hash function in place of COMMIT. For the inputs h that can not be mapped directly to integers, especially in the case of group elements, we represent them using byte-strings.

Additionally, we introduce several auxiliary methods to facilitate the verification procedure for certain special properties.

The following definitions and claims are first proposed in the work Bowe, Gabizon & Green (2018).

Definition 1

Given a bilinear mapping e ˆ : G 1 0 × G 2 0 G T , elements AB ∈ 𝔾1∖{0} and CD ∈ 𝔾2∖{0}. If e ˆ A , D = e ˆ B , C , we may use the term SameRatio((AB), (CD)) to represent this relation.

 
____________________________ 
Algorithm 1 Determin if two pairs (A,B) and (C,D) have certain relationship________________________ 
Require: A,B ∈ G1∖{0} and C,D ∈ G2∖{0} 
 1:  function SAMERATIO((A,B),(C,D)) 
  2:       if ˆ e (A,D) = ˆ e (B,C) then 
 3:            return true 
  4:       else 
 5:            return false 
  6:       end if 
 7:  end function___________________________________________________________________________________________    

Definition 2

Given a bilinear mapping e ˆ : G 1 0 × G 2 0 G T , s Z p and cyclic group of order p, an s-pair is a pair (AB) such that AB ∈ 𝔾1, or AB ∈ 𝔾2; and sA = B. For such an s-pair (AB) in 𝔾1 or 𝔾2, we may represent it using the notation rps or rp s 2 respectively.

Claim 1

SameRatio ((AB), (CD)) = true if and only if there exists s such that (AB)is an s-pair in 𝔾1 and (CD) is an s-pair in 𝔾2.

Finally, we can construct our special s-pair as follows.

Definition 3

Given a bilinear mapping e ˆ : G 1 0 × G 2 0 G T and a matrix s Z p l × k , a special s-pair is a pair (AB) such that A , B G 1 l × k or A , B G 2 l × k ; and B i , j = A i , j s i , j For such a special s-pair (AB) in 𝔾1 or 𝔾2, we may also denote it as rps. Given that a vector can be considered a matrix with a single column, we can also use the notation rps to represent an s-pair when s Z p k .

Assumptions

Given a bilinear mapping e ˆ : G 1 0 × G 2 0 G T with associated generators {g1g2gT} and group order p, our work builds upon a variety of standard assumptions, which are detailed below.

Assumption 1

Symmetric External Diffie-Hellman (SXDH) assumption (Ballard et al., 2005). It is hard to distinguish D 0 = g 1 , g 2 , g 1 a , g 1 b , g 1 a b from D 1 = g 1 , g 2 , g 1 a , g 1 b , g 1 c where a , b , c $ Z p . This also holds to the tuples D 0 = g 1 , g 2 , g 2 a , g 2 b , g 2 a b and D 1 = g 1 , g 2 , g 2 a , g 2 b , g 2 c in different group.

Assumption 2

K-Linear assumption (Boneh, Boyen & Shacham, 2004). It is hard to distinguish D 0 = g 1 , g 2 , g 1 a 1 , g 1 a 2 , , g 1 a k , g 1 a 1 b 1 , g 1 a 2 b 2 ,

, g 1 a k b k , g 1 b 1 + b 2 + + b k from D 1 = g 1 , g 2 , g 1 a 1 , g 1 a 2 , , g 1 a k , g 1 a 1 b 1 ,

g 1 a 2 b 2 , , g 1 a k b k , g 1 c where a 1 , , a k , b 1 , , b k , c $ Z p . This also holds in the group 𝔾2.

The matrix A and vector a are defined as: A = diag a 1 , a 2 , , a k 1 a = a 1 1 , a 2 1 , , a k 1 , 1 where the ai are sampled elements from ℤp. These are constructed such that Aa = 0.

Assumption 3

Special k-Linear assumption (Michalevsky & Joye, 2018). Given a randomly generated matrix A Z p k + 1 × k and a vector s Z p k + 1 , the tuples D 0 = g 1 , g 2 , g 1 A , g 1 As and D 1 = g 1 , g 2 , g 1 A , g 1 s are computationally indistinguishable by any pol-ynomial-time A . The structure of matrix A is described in Eq. (1) and the vector a is derived from A as detailed in Eq. (2).

Assumption 4

Square Computational Diffie-Hellman assumption (Burmester, Desmedt & Seberry, 1998). Given (gga) for a random number a in a cyclic group 𝔾 of order p, a PPT algorithm A outputs ga2 with non-negligible probability.

Assumption 5

Knowledge of Coefficient assumption (Bowe, Gabizon & Miers, 2017). Given a string of arbitrary length h, and a uniformly chosen C ∈ 𝔾2 (independent of h), an efficient algorithm A exists that can randomly generate B ∈ 𝔾1 and D ∈ 𝔾2. Meanwhile, for the same inputs (Ch), there is an efficient deterministic algorithm X cable of extracting a scalar b. The probability that both are true: (1) A ‘succeeds’, meaning it satisfies the condition that SameRatio ((g1B), (CD))

(2) X ‘fails’, meaning B g 1 b

is negligible.

Proof of knowledge

We adopt the well-established Schnorr identification protocol (Schnorr, 1990), utilizing it as our Non-interactive Zero-knowledge (NIZK) proof. Provided with an s-pair rps = (AB = sA) and a string h, we establish NIZK ( Algorithm 2 ). This can serve as proof that the originator of the string h is aware of s in the s-pair rps.

Furthermore, we define VerifyNIZK ( Algorithm 3 ), which checks the validity of the provided proof π.

 
________________________________________________________________________________________________________________ 
Algorithm 2 Construct a proof of knowledge of s_____________________________________________________ 
Require: rps is an s-pair 
Require: h is a string 
  1:  function NIZK(rps = (A,B),h) 
  2:       α  $ 
 ←− Z∗p 
  3:       R ← α ⋅ A 
 4:       c ← COMMIT(R||h) ∈ Z∗p 
  5:       u ← α + c ⋅ s 
 6:       return π = (R,u) 
  7:  end function___________________________________________________________________________________________    
 
________________________________________________________________________________________________________________ 
Algorithm 3 Verify a proof of knowledge of s_________________________________________________________ 
Require: rps is an s-pair 
Require: h is a string 
  1:  function VERIFYNIZK(rps = (A,B),π = (R,u),h) 
  2:       c ← COMMIT(R||h) ∈ Z∗p 
  3:       if u ⋅ A == R + c ⋅ B then 
 4:            return true 
  5:       else 
 6:            return false 
  7:       end if 
 8:  end function___________________________________________________________________________________________ 

Vector commitment

We ensure our attribute-hiding property through the utilization of a Vector Commitment scheme, as described in Catalano & Fiore (2013). The summarized scheme is as follows:

Definition 4

This Vector Commitment system commits to an ordered sequence of attribute elements v = (v1v2, …, vl+1) as commitment C, then opens it in a certain position of v to a corresponding attribute authority (AA), and finally proves that only authorized value existed in the previously supplied commitment C. The system normally consists of four algorithms:

  • Key generation (1λn) → PPVC: This is a decentralized key generation (DKG) algorithm. It takes as input the security parameter λ and the number of attribute authorities, n, in the system, and outputs global public parameters PPVC = {g1g2, {oi}, {oi,j}} where ij ∈ [n], i ≠ j. The element oi is generated and published by AAi. Following that, the elements {oi,j} can be issued by each AAi based on the shared {oi}.

  • Commitment (aux = {mi}i∈[n]) → C: This algorithm is run by a data user (DU). It takes as input the message mi generated based on the authorized attributes from AAii ∈ [n], and outputs the commitment C.

  • Open (miiaux) → opi: This algorithm is also run by a DU. It takes as input the auxiliary information aux and index i, and outputs the opening proof opi.

  • Verify (Cmiiopi) → (1 or 0): The Verify algorithm is run by AA. It takes as inputs the commitment C, message mi, index i, and opening proof opi, and outputs the result of the verification. It outputs 1 when it accepts the proof.

Decentralized inner-product predicate encryption

Definition 5

A multi-authority attribute-based encryption with policy-hiding scheme (Michalevsky & Joye, 2018) consists of a tuple of probabilistic polynomial-time (PPT) algorithms, such that:

  • Setup (1λ) → PP: It takes as input the security parameter λ and then outputs the public parameters PP.

  • Authority setup (PPi) → (PKiSKi): It takes as input public parameter PP and authority index i, and outputs a pair of authority keys (PKiSKi) where SKi≔{Xτσ}.

  • Key generation (PPiSKi, {PK}, GIDv) → ski,GID,v: It takes as input the global public parameters PP, the authority index i, its secret key SKi, all the public keys {PKi}i∈[n], and DU’s global identifier GID and the attribute vector v, and outputs the secret keys ski,GID,v≔{Kj}j∈𝕊i.

  • Encryption (PP, {PK}, xF) → CTF: It takes as inputs the global parameters PP, the public keys of all the authorities {PKi}i∈[n], the ciphertext policy vector x and a file F, and outputs a ciphertext CTF.

  • Decryption ({ski,GID,v}inCTF) → F: It takes as inputs the collection of secret keys {ski,GID,v} from AAi and the ciphertext CTF, and outputs the message F if the access policy has been satisfied.

Blockchain technology

Our proposed system integrates blockchain technology with MA-ABE and vector commitment mechanisms to advance decentralization. Blockchain was initially conceptualized by Nakamoto (2008) in 2009. It eliminates the need for a trusted third party (TTP) to oversee data management, favoring a distributed ledger maintained by consensus nodes. This ledger keeps track of a chronologically ordered list of transactions, which are validated via a consensus algorithm, such as proof of work (POW), before being permanently added to the ledger. In the Bitcoin system, miners solve complex cryptographic puzzles—a process known as PoW—to add blocks to the blockchain by packaging new transactions.

Ethereum (Wood, 2014), an evolution from the foundational Bitcoin, introduced a new platform for decentralized application with two distinct account types: external owned accounts (EOA) for the standard transaction and contract accounts for deploying self-executing and self-verifying protocols known as smart contracts. Each EOA is associated with a 20-byte hexadecimal address derived from the user’s public key (BPK), and transactions are authorized using the corresponding private key (BSK).

To address the storage scalability challenges of blockchains like Bitcoin and Ethereum (Nakamoto, 2008; Wood, 2014), the interplanetary file system (IPFS) (Benet, 2014) was developed. It is a peer-to-peer distributed file system offering content-addressed high-throughput storage, akin to a decentralized cloud service. When data is uploaded to IPFS, a unique hash of the file is generated, enabling users to access their data similarly to how URLs work on the traditional web.

System Overview

System architecture

The system comprises the following logical entities:

Data owner (DO): DO is an entity (individual or organization) that owns a certain file F. For secure storage and sharing, DO encrypts F using the AES key AK and uploads the encrypted file CTF to the IPFS network, records the returned file location loc, and embeds AK and loc into the metadata M which is subsequently encrypted using the ABE system and published CTM in the Ethereum network.

Data user (DU): DU is a data client for DO. It asks the attribute authority AA for permission to get the necessary attribute secret keys {sk}, which are then used to decrypt the associated CTM stored on the Ethereum network. After getting the key AK and the location loc from M, DU can download the encrypted file CTF from the IPFS network and recover the original file F.

Attribute authority (AA): AA is an entity (individual or organization) that contributes to the generation of the public parameters of the ABE system PPABE and the vector commitment scheme PPVC, publishes the public key PK for the DO to encrypt metadata M, owns a set of attributes and issues secret key sk for the owned attributes upon the request of the DU.

Trusted attributed authority (AAtrust): AAtrust is a trusted attribute authority that mainly generates a secret key sk for DU and deploys system contracts for setup and registration. AAtrust, unlike normal AA, owns no attributes but is in charge of a specific position in the attribute vector v. It is important to note that, similar to our proposal, the scheme in Michalevsky & Joye (2018) also includes a AAtrust. While this introduces a central element into the system, it is necessary for certain administrative tasks and security assurances.

Service user (SU): In the system, SU is a general entity comprising DO, DU and AA.

Participant (P): P is a special entity that represents each AA during the process of Trusted Setup. The index i of Pi denotes the chronological order of each piece of public parameter generated and shared by AA. Blockchain: Each user (DO, DU, AA and AAtrust) possesses a pair of keys (BPKBSK) and a corresponding wallet address addr on the blockchain. Our system employs two blockchains: IPFS for data storage and Ethereum for data governance.

and contracts:

Trust setup contract (SCsys): The contract SCsys is deployed to the Ethereum network by the AAtrust and can only be invoked by an authorized AA within the time window specified. It is responsible for generating the global public parameters PPABE.

Authority setup contract (SCauth): Contract SCauth is deployed to the Ethereum network by the AAtrust. It can only be invoked by the authorized AA within the specified time window. It is used to generate the global public parameters PPVC and to keep track of the valid information about AA’s address addr, public key PK, and supported attributes S .

User registration contract (SCreg): Contract SCreg is deployed to the Ethereum network by the AAtrust and can be invoked by all the potential DUs. To register the addr in the system, DU needs to make sufficient payment to the SCreg and then get back the GID which can later be used to request secret key sk from AA.

Utility contract (SCutil): Contract SCutil is deployed to the Ethereum network by the AAtrust and can only be invoked by other contracts deployed by AAtrust. It is mainly used to verify group elements published by AA.

Log contract (SClog): Contract SClog is deployed to the Ethereum network by the AAtrust. When it receives a new transaction from DO, it records the encrypted data CTM of metadata M and triggers the event to the subscribers.

Architecture

The system architecture is shown in Fig. 1.

The system consists of six processes, each of which is represented by a different color: Blue for the process Trusted Setup, orange for the process Authority Setup, gray for the process Data User Registration, black for the process Key Generation, yellow for the process Encryption and Upload, and green for the process Download and Decryption.
Figure 1: The system consists of six processes, each of which is represented by a different color: Blue for the process Trusted Setup, orange for the process Authority Setup, gray for the process Data User Registration, black for the process Key Generation, yellow for the process Encryption and Upload, and green for the process Download and Decryption.
Single or double-arrow connectors indicate the interactions between service users and two blockchain networks, Ethereum and IPFS. Note that these four contracts deployed on Ethereum are used for data governance, while IPFS is used for data storage. For a detailed description of the system flow between smart contracts, IPFS, and various entities, please check “System Overview” for the Interaction Overview and “System Design” for the System Design.

Interactions overview

In this section, we describe the overview of our proposed system to show how smart contracts, IPFS, vector commitment, and MA-ABE with policy-hiding are composed together to build a secure, privacy-preserving, and blockchain-enabled data governance system. When it ought to be clear from the context, we omit most indices, like i and j of elements, and superscript in rp s 2 for readability.

  1. Trusted setup

    1. First, a community of normal attribute authorities (AAs) with size n − 1 and a special trusted attribute authority (AAtrust) must be determined. AAtrust selects the security parameter λ and two generators g1g2 for the bilinear mapping, and defines following algorithms: COMMIT, NIZK, VerifyNIZK and powerMulti.

    2. AAtrust deploys one system contract SCsys and one utility contract SCutil.

    3. Each AA randomly samples a set of secret elements e: two matrixes A Z p k + 1 × k and U Z p k + 1 × k + 1 , two scalars αA and αU in Z p , and two scaled matriex αAA and αUU, and publishes a corresponding set of s-pair {rpArpUrpαArpαUrpαArpαU} as defined in Definitions 2 and 3 to the contract SCsys.

    4. After that, AA computes and publishes the commitments hCOMMIT({hs}||) to SCsys, where hsCOMMIT(rps), s ∈ e.

    5. Every AA then needs to prove the knowledge of each element s ∈ e by outputting the proofs {πs} using algorithm NIZK ( Algorithm 2 ) as the argument of function Prove of contract SCsys, which verifies them using algorithm VerifyNIZK ( Algorithm 3 ).

    6. In the Round 1, we define one attribute authority AA as participant P1 who firstly publishes group elements in 𝔾1: V 1 g 1 A 1 , θ V 1 g 1 α A 1 , V 1 g 1 α A 1 A 1 , based on the previously verified set of elements e.

    7. Participant Pi=2,…,n computes V i , θ V i , V i based on previous V i 1 , θ V i 1 , V i 1 using algorithm powerMult (Alg. 6) and publishes these as the arguments of the function Compute of contract SCsys to check validity.

    8. We define the last valid V received by contract SCsys as one piece of the public parameter g 1 A .

    9. In the Round 2, the first AA, also known as participant P1, publishes group elements in 𝔾1: W 1 g 1 A U 1 , θ W 1 g 1 α U 1 , W 1 g 1 A α U 1 U 1 , also based on the previously verified set of elements e.

    10. Participant Pi, where i = 2, …, n computes its W i , θ W i , W i based on previous W i 1 , θ W i 1 , W i 1 using algorithm powerMult and publishes these as the arguments of the function Generate.

    11. We also define the last valid W received by contract SCsys as last piece of the public parameter g 1 U A . Therefore, we have P P A B E g 1 , g 2 , g 1 A , g 1 U A .

  2. Authority setup

    1. AAtrust deploys contract SCauth for authority setup.

    2. Each AA randomly samples another set of secret element e′: a matrix X Z p k + 1 × k + 1 , a vector τ Z p k + 1 , two numbers σ , z Z p , a scalar αz and a scaled number αzz. Using that, AA takes SK≔{Xτσ} as secret keys, and publishes a corresponding set of s-pair {rpXrpτrpσrpzrpαzz} to the contract SCauth.

    3. After that, AA computes and publishes the commitment h′≔COMMIT({hs}||) to SCauth, where hs≔COMMIT(rps), s ∈ e′.

    4. Every AA then needs to prove the knowledge of elements s ∈ e′ by generating the proofs {πs} using algorithm NIZK as the argument of function Prove of contract SCauth for validity check.

    5. We define each AA with index i ∈ [n − 1] based on the receiving order of the complete set of valid {πs}se and set attribute authority AAtrust with index n.

    6. Therefore, we have the verified sets of elements P K i g 1 X i A , e ˆ g 1 τ i A , g 2 , g 2 σ and o i g 1 z i , g 1 α z i , g 1 α z i z i for each AAi.

    7. In the last stage, for each ij ∈ [n], j ≠ i, AAi needs to compute a set of group elements in G 1 : O i o j z i , θ O i g 1 α z j α z i , O i g 1 α z j z j α z i z i . Then AAi publishes these elements, with the number of supported attributes li as the argument of the function Setup.

    8. The contract SCauth checks the validity of these elements published by AAii ∈ [n] and then registers its address addri with the elements (liPKi).

    9. In the end, we have PPVC≔{g1g2, {oi}i, {oi,j}} where ij ∈ [n], i ≠ j for vector commitment scheme.

  3. Data user registration

    1. AAtrust deploys contract SCreg for service registration.

    2. Data User (DU) makes a direct registration payment to the contract SCreg to get the global identifier GID which is the hash value of DU’s address addr.

    3. Afterwards, DU can setup a secure channel with each AAii ∈ [n] that possesses the needed attributes and can verify DU’s identity.

    4. AAi verifies DU’s identity and sends back the set of acknowledged attributes R i , G I D through the secure channel.

    5. Upon receiving all the R i , G I D from AAi, DU defines a set of ‘N/A’ attributes R j , G I D for those AAji ≠ j can not issue the attribute set and finally gets a complete set of attributes R G I D by combing R i , G I D and R j , G I D together.

  4. Key Gen

    1. DU generates an attribute vector vGID from set of attributes R G I D , creates a vector commitment C for vGID and sends it with opening proof opi to each AAii ∈ [n] through separate secure channels.

    2. AAii ∈ [n] firstly checks the validity of its responsible part in the commitment C using opi, then issues DU’s requested attribute secret key ski,GID,C, and finally sends it back to DU through the channel.

    3. Upon receiving responses from each AAii ∈ [n], DU gets a complete set of secret keys {ski,GID,C}i∈[n].

  5. Encryption and upload

    1. AAtrust deploys last system contract SClog to record encrypted related information of file F

    2. Data Owner (DO) randomly samples an AES key AK, encrypts F to obtain the ciphertext CTF, and uploads it to the IPFS network.

    3. After successfully receiving the CTF from DO, IPFS network returns a special hash value loc as a file location on the IPFS network.

    4. Then, DO constructs a metadata M≔(Kloc), specifies a policy vector x based on selected attributes from each AAi, uses published {PKi} to encrypt the metadata M and publishes this encrypted information CTM to contract SClog.

  6. Download and decryption

    1. DU reads every new coming CTM from the contract SClog and checks if its owned secret keys {ski,GID,C}, where i ∈ [n], satisfies the access policy x to recover the metadata M.

    2. DU retrieves the file location loc and AES key AK from the metadata M and requests the ciphertext CTF from the IPFS network with the file location loc.

    3. DU uses the AES key AK to recover the original file F.

System Design

In this section, we provide more details on the processes of Trusted Setup, Authority Setup, Data User Registration, Key Generation, Encryption and Upload, and Download and Decryption.

The code for the MA-ABE scheme with Non-interactive Zero-Knowledge Proof in Auth Setup is available on GitHub: https://github.com/Guy1m0/Attack-on-IPPE, but it does not include the code for any contracts, since the actual implementation may vary based on the version of the Solidity compiler used, which might affect the performance and gas cost of each contract.

Before the start of Trusted Setup, the trusted authority (AAtrust) deploys the utility contract SCutil.

Trusted Setup

The process of Trusted Setup consists of four stages: Initiate, Commit and Reveal, Verify, and Generate, and finally outputs the global public parameter PPABE for the ABE system.

In the initial three stages, each attribute authority (AA) sends its transactions independently to the contract SCsys. In contrast, during the final Generate stage, each participant P (where we use the placeholder notation P in Commit and Reveal to represent each AA) must send transactions to SCsys in a sequential manner. This sequentiality is necessary because each incoming transaction is generated based on the preceding P’s transaction received by contract SCsys.

Initiate

At the start, a fixed-numbered community of size n will be determined, which will include all of the normal attribute authorities AA and one special trusted authority AAtrust. AAtrust represents this community to set the global security parameter to be λ and the generators of the 𝔾1, 𝔾2 with prime order p to be g1g2 respectively. Therefore, the bilinear map can be e ˆ : G 1 0 × G 2 0 G T .

AAtrust also deploys two distinct system contracts: contract SCsys for trusted setup and contract SCutil for resolving the problem of allowing complex cryptographic computations to be used in the system. AAtrust also specifies the deadlines (ddl1ddl2ddl3) for the Trusted Setup process and sets an authorized list AAlist to restrict SCsys access. For a simple system description, we assume that each attribute authority AA submits the required transactions within the deadlines.

To realize the generation of PPABE, this process highly depends on the interaction between each attribute authority AA and contract SCsys, which has five main functions, Commit, Reveal, Prove, Compute and Generate with the help from contract SCutils. Generally, these functions can only be invoked by a blockchain address owned by AA, which is included in the authorized list AAlist, and executed before the pre-defined deadline ddl1,2,3.

Commit and reveal

Every AA randomly picks a set of elements e: a matrix A $ Diagonal matrices in Z p k × k 1 , a matrix U $ Z p k + 1 × k + 1 1, their corresponding scalar values, αA and αU, and scaled matrixes αAAαUU. Then, AA has e = A , U , α A , α U , α A A , α U U and then generates a set of s-pair.

For such element s ∈ e, we refer to the s-pair in 𝔾1 by rps and in 𝔾2 by rp s 2 as Definition 2. These s-pair in both 𝔾1 and 𝔾2 are listed as follows:

  • For matrix A: rp A , rp A 2 = g , g A

  • For matrix U: rp U , rp U 2 = g A , g A U

  • For scalar αA: rp α A , rp α A 2 = g , g α A

  • For scalar αU: rp α U , rp α U 2 = g , g α U

  • For scaled matrix αAA: rp α A A , rp α A A 2 = g , g α A A

  • For scaled matrix αUU: rp α U U , rp α U U 2 = g A , g α U A U

Other than these s-pair listed above, AA also commits each element s ∈ e. For each s ∈ e: h s COMMIT rp s | | rp s 2

Subsequently, the overall commitment is: h COMMIT h A | | h U | | h α A | | h α U | | h α A A | | h α U U

After that, AA publishes the commitment h to the contract SCsys through blockchain transaction by calling function Commit, which works similarly as a hash function.

The state variable h_collector of SCsys will store the value h with the key as msg.sender, also known as AA’s blockchain address. Apart from h_collector, we define few state variables used in contract SCsys as follows:

  1. h_collector (State Variable): A mapping collection from the blockchain address belonged to one attribute authority to its commitment h

  2. unverified_elements (State Variable): A mapping collection from the blockchain address belonged to one attribute authority to its unverified list of s-pair s L = rp s , rp s 2 | s e in both 𝔾1 and 𝔾2

  3. verified_elements (State Variable): A mapping collection from the blockchain address belonged to one attribute authority to its verified list of s-pair s L = rp s , rp s 2 | s e in both 𝔾1 and 𝔾2

After h has been received by contract SCsys, the sender needs to reveal committed element s ∈ e by passing a list of s-pair in both 𝔾1 and 𝔾2 L r p = rp s , rp s 2 | s e as argument of the function Reveal (Algorithm 4) before deadline ddl1, which checks the existence of the h published by msg.sender, and verifies that indeed h = COMMIT({hs}||)2 as follows:

 
________________________________________________________________________________________________________________ 
Algorithm 4 Contract SCsys: Part 1_______________________________________________________________________________ 
  1:  function REVEAL(Lrp) 
  2:       for all (a,b) ∈ Lrp do 
 3:            h ← h|| HASH(a) || HASH(b) 
  4:       end for 
 5:       if msg.sender / ∈ unverified_elements then                             ⊳ Resubmitting check 
  6:            unverified_elements[msg.sender] ← Lrp 
  7:       end if 
 8:  end function 
 9: 
10:  function PROVE(Lπ) 
11:       Lrp ← unverified_elements[msg.sender] 
12:       for i ← 0,5 do 
13:            (rp,rp2) ← Lrp[i] 
14:            pi ← Lπ[i] 
15:            if not SAMERATIO(rp,rp2) then 
16:                  throw 
17:            end if 
18:            htmp ← h_collector[msg.sender]||HASH(rps) 
19:            if not CHECKPOK(rps,πs,htmp) then 
20:                  throw 
21:            end if 
22:       end for 
23:       verified_elements[msg.sender] ← Lrp 
24:       unverified_elements[msg.sender] = [] 
25:  end function___________________________________________________________________________________________    

Finally, each pair rp s , rp s 2 , s e will be stored in another state variable unverified_elements with the key as msg.sender.

Verify

After deadline ddl1 set by AAtrust in the first stage Initiate, the system enters into the stage Verify. In this stage, we need to check that each attribute authority AA possesses the knowledge of the exponent s used in the list of s-pair L.

Every AA generates the proof πsNIZK(rpsh||hs) using Algorithm 2 for each s ∈ e, and broadcasts these proofs as a list L π = π A , π U , π α A , π α U , π α A A , π α U U through a blockchain transaction to get them verified. The function Prove ( Algorithm 4 ) from contract SCsys takes input Lπ and processes this verification work.

As shown above, it firstly calls function SameRatio, similar to Algorithm 1 , of contract SCutil to examine the authenticity of the published rps and rp s 2 .

Afterwards, it computes htmph||COMMIT(rps), and takes htmp with verified rps and provided πs as input to the function CheckPoK of contract SCutil, which works similarly as Algorithm 3 and returns true if the given proof πs is valid.

Finally, the function Prove ( Algorithm 4 ) will remove the list of s-pair Lrp from the state variable unverified_elements and store it in the state variable verified_elements. This indicates that the AA possesses knowledge of the exponents for the set of s-pair.

Compute and generate

In this stage, the system will generate the public parameters for the attribute-based encryption in two rounds by interacting with two functions Compute and Generate of contract SCsys (Algorithm 5). Some state variables used are defined as follows:

  1. V_curr (State Variable): The most recent published value V

  2. V_curr′ (State Variable): The most recent published value V

  3. θ_curr (State Variable): The most recent published scalar θ

  4. W_curr (State Variable): The most recent published value W

  5. W_curr′ (State Variable): The most recent published value W

  6. θ_curr_ (State Variable): The most recent published scalar θ

We also use below notation powerMulti (AB) for the following Algorithm 6 :

 
________________________________________________________________________________________________________________ 
Algorithm 5 Contract SCsys: Part 2_______________________________________________________________________________ 
26:  function COMPUTE(V,θ,V ′) 
27:      if unverified_elements[msg.sender] ⁄= [] OR block.timestamp < ddl2 OR block.timestamp > ddl3 then 
28:           throw 
29:      end if 
30:      if not V _curr then                                                                               ⊳ Initialize V,θ,V ′ 
31:           V _curr ← V
32:           θ_curr ← θ 
33:           V _curr′ ← V ′ 
34:           return 
35:      end if 
36:      (rpA,rpαA,rpαAA) ← verified_elements[msg.sender] 
37:      acc1 ←SAMERATIO((V _curr,V ),rpA) 
38:      acc2 ←SAMERATIO((θ_curr,θ),rpαA) 
39:      acc3 ←SAMERATIO((V _curr′,V ′),rpAαA) 
40:      if acc1 == acc2 == acc3 == true  then                                                          ⊳ Check validity 
41:           V _curr ← V
42:           θ_curr ← θ 
43:           V _curr′ ← V ′ 
44:      else 
45:           throw 
46:      end if 
47:  end function 
48: 
49:  function GENERATE(W,θ,W′) 
50:      if unverified_elements[msg.sender] ⁄= [] OR block.timestamp < ddl2 OR block.timestamp > ddl3 then 
51:           throw 
52:      end if 
53:      if not W _curr then                                                                             ⊳ Initialize W,θ,W′ 
54:           W _curr ← W 
55:           θ_curr_ ← θ 
56:           W _curr′ ← W′ 
57:           return 
58:      end if 
59:      (rpU,rpαU ,rpαUU) ← verified_elements[msg.sender] 
60:      acc1 ←SAMERATIO((W _curr,W),rpU) 
61:      acc2 ←SAMERATIO((θ_curr_,θ),rpαU ) 
62:      acc3 ←SAMERATIO((W _curr′,W′),rpαUU) 
63:      if acc1 == acc2 == acc3 == true then                                                          ⊳ Check validity 
64:           W _curr ← W 
65:           θ_curr_ ← θ 
66:           W _curr′ ← W′ 
67:      else 
68:           throw 
69:      end if  
70:  end function______________________________________________________________________________________________________________    
 
____________________________________________________________________________________________________________________________________ 
Algorithm 6 Computing power matrix A by matrix B_______________________________________________ 
Require: group elements A and matrix s have same size l × k 
 1:  function POWERMULTI(A,s) 
  2:       for i ← 1,l do 
 3:            for j ← 1,k do 
 4:                  B[i,j] ← A[i,j]s[i,j] 
  5:            end for 
 6:       end for 
 7:       return B 
 8:  end function___________________________________________________________________________________________ 

Round 1: We define the first attribute authority AA as participant P1, who broadcasts V 1 , θ V 1 , V 1 as argument of function Compute ( Algorithm 5 ) in contract SCsys. The elements V 1 , θ V 1 , V 1 are constructed as follows: V 1 g 1 A 1 , θ V 1 g 1 α A 1 , V 1 g 1 α A 1 A 1 . And the next participant Pii =2 , 3, …, n, generates corresponding elements V i , θ V i , V i using Algorithm 6 , and also broadcasts them to the contract SCsys:

V i p o w e r M u l t i V i 1 , A i θ V i θ V i 1 α A i V i p o w e r M u l t i V i 1 , α A i A i

Since receiving the elements V 1 , θ 1 , V 1 from first participant P1, function Compute ( Algorithm 5 ) of SCsys checks the validity of each incoming elements V i , θ V i , V i published by Pi.

In the end, we define the last valid Vi as one piece of the public parameter: g 1 A = p o w e r M u l t i p o w e r M u l t i p o w e r M u l t i p o w e r M u l t i g 1 A 1 , A 2 , A 3 , A n .

Round 2: In this round, we also define the first attribute authority AA as participant P1, who broadcasts W 1 , θ 1 , W 1 as argument of the function Generate ( Algorithm 5 ) in contract SCsys. The elements W 1 , θ 1 , W 1 are constructed as follows: W 1 g 1 A U 1 , θ 1 g 1 α U 1 , W 1 g 1 A α U 1 U 1 . And the next participant Pi where i = 2, 3, …, n, generates corresponding elements W i , θ W i , W i using Algorithm 6 , and also broadcasts them to the contract SCsys:

W i p o w e r M u l t i W i 1 , U i θ W i θ W i 1 α U , i W i p o w e r M u l t i W i 1 , α U , i U i

Invoked by these transactions, contract SCsys checks the validity of each received elements W i , θ W i , W i and updates the value of Wi.

As a result of this procedure, the final piece of the public parameter is defined as the last valid Wi received: g 1 U A = W n = P o w e r M u l t i P o w e r M u l t i P o w e r M u l t i P o w e r M u l t i g 1 A U 1 , U 2 , , U n

At the end of this stage, each Service User (SU) can easily get the global public parameters PPABE of the attribute-based encryption system based on the published values. P P A B E g 1 , g 2 , g 1 A , g 1 U A .

Authority setup

This step consists of 3 stages: Commit and Reveal, Verify, and Generate, and finally outputs another global public parameter PPVC and public key PK for each attribute authority AA.

Initiate

The contract SCauth deployed by trusted authority AAtrust has four main functions, Commit, Reveal, Prove and Generate, which also interacts with utility function SCutil. Its accessibility is also limited by deadlines (ddl1′, ddl2′, ddl3′) and the authorized list AAlist set by AAtrust.

Commit and reveal

Every AA firstly samples a set of elements e′: a matrix X $ Z p k + 1 × k + 1 , a vector τ $ Z p k + 1 , two secret elements σ , z Z p , a scalar αz and a scaled element αzz.

Therefore, the AA defines a set e′ for vector commitment as: e z , α z , α z z and also designates: S K X , τ , σ as the secret key. Then, AA computes a set of s-pair for each element s in both e′ and SK. We refer to the s-pair in 𝔾1 by rps, and the s-pair in 𝔾2 by rp s 2 as Definition 2. These s-pair are defined as follows:

  • For matrix X : rp X g 1 A , g 1 X A

  • For vector τ : rp τ g 1 A , g 1 τ A

  • For element σ : rp σ 2 g 2 , g 2 σ

  • For element z : rp z , rp z 2 = g , g z

  • For scalar αz: rp α z , rp α z 2 = g , g α z

  • For scaled element αzz: rp α z z , rp α z z 2 = g , g α z z

After that, AA computes h′ as follows: h X COMMIT rp X h τ COMMIT rp τ h σ COMMIT rp σ 2 h z COMMIT rp z | | rp z 2 h α z COMMIT rp α z | | rp α z 2 h α z z COMMIT rp α z z | | rp α z z 2 h COMMIT h X | | h τ | | h σ | | h z | | h α z | | h α z z and broadcasts it to the contract SCauth through blockchain transaction as the argument of the function Commit, which is exactly same as it of the contract SCsys. It will store the value h′ into state variable h_collector if the transaction is valid.

After h′ recorded by contract SCauth, AA needs to reveal each committed element by passing two lists of s-pair L s k = rp X , rp τ , rp σ 2 L e = rp s , rp s 2 | s e as arguments of the function Reveal of the contract SCauth, which computes the hash result of Lsk and Lvc using function Hash of utility contract SCutil, and compares the result with the value stored in state variable h_collector. Finally, the valid set of s-pair will be stored into state variables unverified_elements and unverified_sk of the contract SCauth respectively.

Verify

The system enters into the stage Verify after d d l 1 set by trusted authority AAtrust.

First of all, attribute authority AA generates the proof πsNIZK(rpsh||hs) for each s in both e′ and SK, and broadcast these proofs {π} as a list L π = π z , π α z , π α z z , π X , π τ , π σ through transaction before deadline d d l 2 . The function Prove of contract SCauth takes input L π as the argument and checks the validity of these proofs by using utility functions SameRatio and CheckPoK of contract SCutils. The Reveal-Prove algorithms in the contract SCauth function similarly to those in contract SCsys. Both require all authorities to commit their secret keys and later prove that they possess the knowledge of these keys.

We assign each AA an index i ∈ [n − 1], based on the order in which SCauth receives the complete set of valid published proofs {π}. The trusted authority, denoted as AAtrust, is assigned the index n.

At the end of this stage, we have the verified elements P K i = g 1 X i A , e ˆ g 1 , g 2 τ i A , g 2 σ and o i g 1 z i , g 1 α z i , g 1 α z i z i for each AAi.

Generate

In the last stage Generate, AAi needs to generate a set of group elements (OθOO′), selects a reasonable number of supported attributes li, and broadcasts them to contract SCauth before the deadline d d l 3 .

The elements (OθOO′) provided by AAi are constructed as follows: O i o i , j = o j z i i j , j n θ O i g 1 α z j α z i i j , j n O i g 1 α z j z j α z i z i i j , j n

 
________________________________________________________________________________________________________________ 
Algorithm 7 Contract SCauth__________________________________________________________________________________________ 
  1:  function GENERATE(O,θ,O′,l) 
  2:       if msg.sender / ∈ AAlist OR block.timestamp > ddl then              ⊳ Requirement check 
  3:            throw 
  4:       end if 
 5:       rpz,rpαz,rpαzz ← verified_elements[msg.sender] 
  6:       i ← index[msg.sender] 
  7:       for j ← 0,n − 1 do 
 8:            if i == j then 
 9:                  continue 
10:            end if 
11:            check1 ← SAMERATIO((rpz[1],O[j]),rpz) 
12:            check2 ← SAMERATIO((rpα[1],θ[j]),rpαz) 
13:            check3 ← SAMERATIO((rpαzz[1],O′[j]),rpαzz) 
14:            if check1 == check2 == check3 == true then 
15:                  verified_O[msg.sender] ← O 
16:            else 
17:                  throw 
18:            end if 
19:       end for 
20:       attribute_size[msg.sender] ← l 
21:  end function___________________________________________________________________________________________    

Invoked by this transaction, function Generate ( Algorithm 7 ) of SCauth firstly checks the validity of elements O i , θ O i , O i and the value of li, and then records AAi’s blockchain address addr with the claimed attribute size li. The function Generate and some state variables used are defined as follows:

  1. verified_O (State Variable): A mapping collection from the blockchain address belonged to one attribute authority to its set of elements o j z i i j , i , j n in the public parameter of vector commitment PPVC

  2. attribute_size (State Variable): A mapping collection from the blockchain address belonged to one attribute authority to its number of supported attribute

For example, if AAi owns the set of attributes {entrymidsenioragentmanager}, the value of attribute size li is 5.

After the contract SCauth receives all the pairs {oioi,jli} from AAi ∈ {AA1AA2, …, AAn}, every Service User (SU) can get the global parameter for the vector commitment system P P V C g 1 , g 2 , o i i n , o i , j i , j n , i j and generate a mapping table that maps each blockchain address of AAi to its corresponding information as shown in Table 3. We use l to represent the size of supported attributes set X and v to represent the owned attributes for each AA.

Table 3:
A example of address-AA-attribute vector mapping table.
Address addr1 addr2 ...... addrn−1 addrn
Attribute authority AA1 AA2 ...... AAn−1 AAtrust
Attribute representation v1 v2 v3 ...... vl−1 vl vl+1
DOI: 10.7717/peerjcs.2581/table-3

Data user registration

To get the global identifier GID, which will be used in the process of Key Generation, the data user (DU) needs to register the owned address addrDU by calling the function user_register of the contract SCREG.

DU needs to send predefined amount of GWEI to the contract SCREG as the registration fee payment. This amount defaults to 1,000,000 GWEI, which is approximately equivalent to 1.63 USD as of September 2023. In return, DU receives a value GID, which is the hash value of DU’s address addrDU, also known as the msg.sender of this transaction call.

Following that, DU establishes a secure channel or employs some off-chain methods with AAi that have the required attributes and can verify DU’s identity. We assume that DU is an agent for one insurance company, and the company itself runs the consensus node of AAi in this system. Therefore, DU may easily get verified by showing an ID badge to the person who manages the AAi. DU then requests that AAi issues a set of attributes R i , G I D in regards to DU’s identity. The format of a set of attributes might look like this: (entryN/AN/AagentN/A) out of the full set of attributes (entrymidsenioragentmanager).

For those AAjj ≠ i that do not contain the needed attributes or cannot verify DU’s identity, DU may just set R j , G I D to be (N/AN/AN/A) with lj = 3.

Finally, DU receives R i , G I D from AAi, sets R j , G I D for AAjj ≠ i, and combines them as the set of attributes R G I D which will be used in the process of Key Generation.

Key generation

Without loss of generality, we suppose that there are a total set of attributes X , indexed from 1 to l and a total set of attributes authorities U including AAtrust, indexed from 1 to n. Assume that the attribute authority AAi has a subset of attributes S i , then we have S i S j = for i ≠ j and ij ∈ |n| and S 1 S 2 . . . S n = X .

To get the secret key ski,GID,C which is comprised of multiple key parts K j , G I D , C j S i from AAi, Data User (DU) must initially generate the attribute vector vGID. This is based on R G I D that was acquired during the Data User Registration process.

Given that the DU’s set of attributes R i , G I D X and the mapping Table 3 generated from the process Authority Setup, the attribute vector vGID is set as follows:

  1. Set the first l entries such that vk = 1 i R G I D 0 i R G I D

  2. Set the l + 1 entry to be 1. (AAtrust is responsible for this entry)

Then, DU randomly chooses r 1 , r 2 , / d o t s , r n $ Z p for each AA and combines the arguments ri with the attribute vector vi,GID (represented as a bit string) to produce a committed value mi≔COMMIT(vi,1||vi,2vi,j||ri), where i n , j | S i | .

Table 4:
A example of m for vector commitment.
Attribute authority AA1 AA2
Attributes entry mid senior agent manager
Vector element v1 v2 v3 v4 v5
Element value 1 0 0 1 0
nonce r1 r2
mi COMMIT (v1||v2||v3||r1) COMMIT (v4||v5||r2)
DOI: 10.7717/peerjcs.2581/table-4

In Table 4, for instance, we have two attribute authorities AA1 and AA2 that possess attributes (entry, mid, senior) and (agent, manager) respectively. If there is a data user DU with a set of attributes R = (entry, agent), DU’s attribute vector is v = (1, 0, 0, 1, 0). For AA1 and AA2, DUsamples two random values r 1 , r 2 $ Z p and then computes auxiliary information aux = (m1m2) using COMMIT. In general, based on the public parameter for vector commitment PPVC = {g1g2, {oi}i∈[n], {oi,j}i,j∈[n],ij}, generated in Authority Setup, DU can calculate the commitment C on the attribute vector v from its R : C o 1 m 1 o 2 m 2 o n m n

To request the secret key part K j , G I D , C , j S i , DU establishes another secure channel with AAi and sends commitment C along with an opening opi and nonce ri. Such opening opi is calculated as follows: o p i = j = 1 , j i n o i , j m j = j = 1 , j i n o j m j z i

Based on the DU’s GID, AAi firstly retrieves the information of the set of attributes R i , G I D which have been issued in the previous process Data User Registration and then verifies commitment C using the opening opi and nonce ri received e ˆ C / o i m i , g 2 z i = ? e ˆ o p i , g 2

where m i is the value calculated by the R i , G I D issued to DU. If the above check passes, AAi uses a pre-defined random oracle H : G 2 × 0 , 1 λ × Z p k + 1 Z p k + 1 to generate masking value μ i Z p μ i = j = 1 i 1 H y j σ i , G I D , C j = i + 1 n H y j σ i , G I D , C

and hash functions H1(GIDC), …, Hk+1(GIDC) to generate g 2 h where h Z p k + 1 h : H G I D , C = H 1 G I D , C , , H k + 1 G I D , C

Finally, AAi computes the secret keys s k i , G I D , C K j , G I D , C j S i , which consists of key parts K j , G I D , C g 2 τ i v j X i h + μ i for each possessed attributes by AAi and send ski,GID,C back to the DU through the secure channel.

To get the special secret key part skn,GID,C for the l + 1 entry, DU also needs to communicate with trusted authority AAtrust and provides the commitment C with the opening opn and nonce rn through the secure channel. As shown in the Table 3, AAtrust sets the m n to be COMMIT ((vl+1||rn)) where vl+1 = 1 and then checks the following equation e ˆ C / o n m n , g 2 z n = ? e ˆ o p n , g 2

If it passes, AAtrust computes the secret key part similar as ski,GID,C s k n , G I D , C K l + 1 = g 2 τ n v n X n h + μ n and sends it back to DU.

Upon receiving all the responses from each AAii ∈ [n], DU will finally gets a complete set of secret keys {ski,GID,C}i∈[n].

Encryption and upload

Given that ABE is significantly more expensive than symmetric key encryption (Wang et al., 2014), the files that the data owner (DO) wants to share are not directly encrypted with ABE. Instead, hybrid encryption of ABE and AES is used for efficiency.

Firstly, DO randomly samples an AES key AK from the key space and encrypts the file F as the ciphertext CTF.

Then, DO uploads the ciphertext CTF to IPFS and records the file location loc returned by IPFS. The metadata message M can then be constructed as: M K , l o c

Using the policy vector x discussed above, DO samples a random vector s Z p k , generates a policy vector x x 1 , x 2 , , x n Z p n acting as the ciphertext policy, and outputs the ciphertext CTM consisting of c t 0 = g 1 As c t i = g 1 x i U + X i As c t = M e ˆ g 1 , g 2 τ As , where τ = i = 1 n τ i .

Lastly, the ciphertext CTM is sent to the contract SClog with the optional keyword kw that may ease the data retrieval process. The contract SClog will emit this new uploading information to the subscribers.

Download and decryption

All the encrypted metadata CTM will be recorded sequentially. If the DU is interested in one of DO’s files, DU may subscribe to the event created by the contract SClog to obtain the encrypted metadata CTM.

To decrypt the ciphertext CTM, DU computes e ˆ c t 0 , j = 1 l + 1 K j e ˆ c t i v i , h = e ˆ g 1 , g 2 τ A s

and tries to recover the message c t / e ˆ g 1 , g 2 τ A s = M

If DU’s attribute vector v satisfies the policy vector x selected by DO, DU can retrieve the AES key AK and file location loc from the metadata M. Finally, DU downloads the encrypted file CTF from the IPFS based on the location loc and uses AK to decrypt CTF to recover the original file F.

Correctness. Since C T M = c t 0 , c t i i = 1 n , c t , s k i , G I D , C = K j j R i and n = l + 1, we can compute e ˆ c t 0 , j = 1 l + 1 K j e ˆ i = 1 n c t i v i , H G I D , C = e ˆ g 1 As , g 2 i = 1 n τ i v i X i h + μ i e ˆ g 1 i = 1 n v i x i U + X i As , g 2 h = e ˆ g 1 , g 2 τ As i = 1 n v i h X i As e ˆ g 1 , g 2 < x , v > h U A s + i = 1 n v i h X i A s = e ˆ g 1 , g 2 τ As e ˆ g 1 , g 2 < x , v > h U A s

If <x,v >  = 0, we obtain e ˆ g 1 , g 2 τ A s and can recover the message.

Security Analysis

The security of the original scheme (Definition 5), while explored within the framework by Michalevsky & Joye (2018) and proven to be secure against selective adversaries in random oracle model (ROM), does not adequately capture certain real-world circumstances. Recognizing this limitation, we have devised a more flexible approach to model the security challenges more accurately.

This new model, defined in Definition 6, is derived from the original scheme but adapted to bridge the gap between theoretical models and the complexities of real-world applications. In Datta, Komargodski & Waters (2023), this notion has been defined as fully adaptive security, where the adversary can decide the set of authorities to corrupt at any time.

Definition 6

The scheme is secure against static corruption of authorities if the advantage in winning the following game is negligible.

  1. Setup phase: S picks a random bit b ∈ {0, 1} and outputs the public parameters PP.

  2. Query phase:

    1. A can adaptively decide the identity of each attribute authority, determining whether it is normal or corrupted, as well as the order in which each authority’s keys are generated or received by S .

      • If the authority is normal, A requests the keys {PK} from S , which are generated through the Auth Setup process.

      • If the authority is corrupted, A generates the keys {PKSK} itself and provides {PK} to S .

    2. Finally, A marks each corrupted authority and outputs the set of corrupt authorities A based on the decisions made in the previous step.

  3. Challenge phase:

    1. A outputs two policies x0x1 and two equal-length messages M0M1.

    2. S outputs a challenge ciphertext C T $ Encrypt x b , M b , where b = 0 or 1

  4. Query phase 2: A request secret attribute keys {sk} for vectors v from S , which are not orthogonal to x0 or x1.

  5. Guess: A outputs a guess b′ and wins the game if b′ = b.

Contrasting with Michalevsky & Joye (2018) in the Query Phase, which requires the adversary A fix a set of corrupt authorities and provide their public parameters PK prior to S executes AuthSetup for the non-corrupt authorities as follows:

Query phase:

  1. A first outputs the set of corrupt authorities A, generates authority keys {PKSK}i for every AAi ∈ A, and provides {PK}i to S .

  2. A then requests the remaining public keys {PK}j generated from S for each non-corrupt authority AAj⁄ ∈ A.

This adaptation introduces an aspect of real-world unpredictability and tests the system’s robustness on a broader array of scenarios.

Rogue-key attack analysis

First, we provide proof that the original scheme, as proposed by Michalevsky & Joye (2018) and outlined in Definition 5, is vulnerable to a rogue-key attack in the game (Definition 6). Following this, we discuss how our blockchain-based data governance mechanism effectively mitigates this vulnerability.

Attack

We demonstrate that a corrupt authority can learn the key parts Kl+1 corresponding to vl+1 ∈ v issued by trusted authority AAtrust and thus decrypt the ciphertext in Michalevsky and Joys’s scheme (Michalevsky & Joye, 2018), without having the required secret key sk satisfying the attached access policy. This is a typical attack, called a rogue-key attack, in which the adversary uses a public key, a function of honest users’ keys (Ristenpart & Yilek, 2007).

Proof

First, an adversarial authority AAad makes one of the corrupted authorities hold until all the other attribute authorities AAii ≠ adi ∈ n publish their public keys, in accordance with the game (Definition 6). P K i = g 1 X i A , e ˆ g 1 , g 2 τ i A , y g 2 σ and then calculates the public key as follows: g 1 X a d A j = 0 , j a d n g 1 X j A e ˆ g 1 , g 2 τ a d A , y a d g 2 σ i

After receiving the challenge ciphtertext CT≔{ct0ctict′} from S in the Challenge Phase, an adversarial data user DUad creates an attribute vector v′ = (0, 0, …, 0, 1) and requrests key parts Ki from all the attribute authorities AAi. As in the encryption phase, data owner DO will collect all the public keys PKii ∈ [n + 1] from each AAi and outputs the cipher text CT consisting of c t 0 = g 1 As c t i = g 1 x i U + X i As c t = m e ˆ g 1 , g 2 τ As , where τ = i = 1 n τ i . Third, given the ciphertest (ct0, {cti}, ct′) and received secret keys {Ki}, adversary DUad decrypts it as following:

e ˆ c t 0 , j = 1 l + 1 K i e ˆ i = 1 n c t i v i , H G I D , C = e ˆ g 1 As , g 2 i = 1 n τ i v i X i h + μ i e ˆ g 1 i = 1 n v i x i U + X i As , g 2 h = e ˆ g 1 , g 2 τ As i = 1 n v i h X i As e ˆ g 1 , g 2 < x , v > h U A s + i = 1 n v i h X i As = e ˆ g 1 , g 2 τ As e ˆ g 1 , g 2 < x , v > h U As

Since DUad’s attribute vector is v′ = (0, 0, …, 0, 1), we have e ˆ g 1 , g 2 τ As e ˆ g 1 , g 2 h x l + 1 U As In order to decrypt the ciphertext, we need to cancel out the last element in Eq. (19). Therefore, adversary A could use the published {cti} to calculate attacking component ω. ω g 1 x i U + X i As = g 1 x i U As g 1 X i A s . Based on g 1 X a d A j = 0 , j a d n g 1 X j A , we obtain ω = g 1 i = 1 n x i X As and can further cancel the last component in Eq. (19) as x l + 1 = i = 1 n x i . In the end, the adversary recovers the message by computing c t / e ˆ g 1 , g 2 τ As = m .

Based on the provided chosen message (M0M1) in the Challenge Phase, A can easily output a correct guess b′ that b′ = b with high probability, which violates the game defined by Definition 6.

Proof of security of our approach

In the absence of a certificate authority (CA), one way to mitigate this requires a Non-interactive Zero-knowledge (NIZK) proof in a decentralized manner. Since every AA needs to generate a commitment of secrets used for public key PK and then creates its proof of knowledge using NIZK ( Algorithm 2 ), which is built upon Schnorr Identification Protocol (Schnorr, 1990).

Proof

Each attribute authority (AA) generate commitments to their secrets {Xτσ} and creates a NIZK of knowledge π, as described in Authority Setup. We thus just need to prove the NIZK satisfies the Knowledge of Coefficient assumption (Assumption 5) of the work Bowe, Gabizon & Miers (2017). Suppose an adversary A successfully crafts a proof πad,s = (Rad,suad,s) for a secret s = i = 1 , i a d n 1 X i A for a secret s without knowing s, which implies that given s-pair rps = (AB) and string h, the probability of finding a valid u such that uA = R + cB would be non-negligible. Consiering another s-pair rp σ 2 = g 2 , g 2 σ , A computes R g 1 α and c Hash R | | h as in Definition 2 based on the randomly chosen value α′. Assigning rg2 and y g 2 σ c in the SameRatio((g1x), (ry)), which implies that x = g 1 σ c , if A can find u′ such that u′ = α′ + c′⋅s, this would satisfy the SameRatio ((g1x), (ry)) condition without knowing σc′, violating the Assumption 5. Thus, A cannot win the game, and our scheme is secure against rogue-key attacks.□

Inferring the secret vector in ciphertext

With its further study of the Decentralized Policy-hiding ABE scheme (Michalevsky & Joye, 2018), we also identified a potential risk associated with generating public parameters during Setup. The details of the risk and proof of security are described in the following sections.

Vulnerability

As defined in Definition 5, a trusted third-party (TTP) or an attribute authority (AA) needs to pick a set of random numbers a 1 , a 2 , , a k $ Z p , and then generate a random matrix

A = a 1 0 0 0 a 2 0 0 0 a k 1 1 1 Z p k + 1 × k with a = a 1 1 a 2 1 a k 1 1 Z p k + 1 , which Aa = 0 during Setup.

Proof

If the above generation is conducted by a PPT adversary A , or if the sensitive information a is exposed, A can infer the value of g 1 s from any published ciphertext CT. As we know, to generate a ciphertext CT, data owner (DO) firstly samples a random vector s = (s1s2 , s k Z p k , then creates a policy vector x = x 1 , x 2 , , x n 1 , x n Z p n acting as the ciphertext policy, and finally outputs the ciphertext CT consisting of c t 0 = g 1 As c t i = g 1 x i U + X i As c t = M e ˆ g 1 , g 2 τ As where τ = i = 1 n τ i and e ˆ g 1 , g 2 τ i collected from published public keys PKi.

Since As = a 1 s 1 a 2 s 2 a k s k s 1 + s 2 + + s k

A can use the result c t 0 = g 1 As and known a to calculate: g 1 As a = g 1 Asa

For the exponent Asa, we have Asa = a 1 s 1 a 2 s 2 a k s k s 1 + s 2 + + s k a 1 1 , a 2 1 , , a k 1 , 1 = s 1 a 1 a 2 1 s 1 a 1 a k 1 s 1 a 1 s 1 a 1 1 a 2 s 2 s 2 a 2 a k 1 s 2 a 2 s 2 a 1 1 a k s k a 2 1 a k s k s k a k s k a 1 1 s a 2 1 s a k 1 s s

The ith elements from exponents As and a partially cancel each other out, and the remaining element si is the targeting exponent. Therefore, adversary A might extrapolate g 1 s from the published ciphertext c t 0 = g 1 Asa with the knowledge of a.□

Proof of security with our approach

One potential mitigation of the inferring attack is to generate a composite public parameter PP by multiple AA, such that neither of those individual AAs knows the composite g 1 A = p o w e r M u l t i p o w e r M u l t i p o w e r M u l t i p o w e r M u l t i g 1 A 1 , A 2 , A 3 , A n , and no participant learns the secrets of others unless one colludes with every other participant under Assumption 5.

Another potential security vulnerability arises from inconsistencies in the published sets V i , θ V i , V i or W i , θ W i , W i that, i.e., an adversary AA with index i can strategically choose different A i , A i values to compute V i p o w e r M u l t i V i 1 , A i V i p o w e r M u l t i V i 1 , α A i A i , results in the final composite becoming invalid for further operations. However, given that each AA has committed and disclosed a set of group elements e = A , U , α A , α U , α A A , α U U in both 𝔾1 and 𝔾2, as described in “Commit and Reveal”, it becomes possible to ascertain that each AA’s V i , θ V i , V i is a proper multiple of previous published components:

e ˆ V i , g 2 = e ˆ V i 1 , g 2 A i e ˆ θ V i , g 2 = e ˆ θ V i 1 , g 2 α i e ˆ V i , g 2 = e ˆ V i 1 , g 2 α A i A i

Even if all the other participants have collaborated, this is still a robust and sufficient setup scheme, even if only one participant is honest and does not reveal the secrets. Hence, the greater the number of unrelated participants in a trusted setup, the less likely the possibility of invalid and unusable public parameter PPABE (Wilcox, 2016).

Receiver privacy

According to the Definition 5, the receiver must provide its attribute vector v to each attribute authority AA from which a key is requested. In consequence, AA learns not only if the user possesses the attribute that AA owns but also all of the user’s other attributes. This appears to violate the privacy of the user in a decentralized setting.

Therefore, Michalevsky and Joye propose an enhancement that provides additional privacy protection for the attribute vector v in their work Michalevsky & Joye (2018), which uses it to hide the set of receiver attributes v from authorities. This technique is called position-binding Vector Commitments, introduced by Catalano & Fiore (2013). Our access control system is based on the work Catalano & Fiore (2013), but it has been slightly modified to work with asymmetric pairings e ˆ : G 1 × G 2 G T .

Since hiding is not a critical property and can be easily achieved in the realization of vector commitments (Catalano & Fiore, 2013), only the proof of position binding is provided below:

Proof

Suppose an efficient adversary A can produce two valid openings op to different messages (mm′) at the same position i. In that case, we can build an algorithm B that uses A to break the Square Computational Diffie-Hellman assumption. For a sequence of messages m1m2, …, mn and public parameter pp = (g1g2, {oi}i∈[n], {oi,j}i,j∈[n],ij), the vector commitment is C = o 1 m 1 o 2 m 2 o n m n and the opening for position i is o p i = j = 1 , j i n o j m j z i . The efficient algorithm B takes as input a tuple g 1 , g 1 r , g 2 r and aims to compute g 1 r 2 to break Assumption 4. First, B selects a random position i $ n on which adversary A will break the position binding. Next, B chooses z j $ Z p where ∀j ∈ [n], j ≠ i and then computes: j n i : o j = g 1 z j , o i , j = g 1 r z j , o i = g 1 r k , j n i , k j : o k , j = g 1 z k z j

Second, B sets pp = (g1g2, {oi}i∈[n], {oi,j}i,j∈[n],ij) and runs A p p , that outputs a tuple (Cmm′, j

o p j , o p j such that m ≠ m′ and both opj and o p j are valid.

Finally, B computes g 1 r 2 = o p i / o p i m i m i 1

Since openings verify the two messages m i , m i correctly at position i, then it holds: e ˆ C , g 2 r = e ˆ o i m i , g 2 r e ˆ o p i , g 2 = e ˆ o i m i , g 2 r e ˆ o p i , g 2 which means that e ˆ o i , g 2 r m i m i = e ˆ o p i / o p i , g 2 Since o i = g 1 r , o p i / o p i = g 1 r 2 m i m i , we have: e ˆ o i , g 2 r m i m i = e ˆ g 1 , g 2 r 2 m i m i e ˆ o p i / o p i , g 2 = e ˆ g 1 r 2 m i m i , g 2 = e ˆ g 1 , g 2 r 2 m i m i , which justifies the correctness of B ’s output. Therefore, if the Square Computational Diffie-Hellan assumption holds, the scheme satisfies the position-binding property.□

Other security requirements

Policy-hiding

Policy-hiding means that the ciphertext policy is hidden from inspection. In our approach, we achieve a weaker concept known as weakly attribute-hiding, which ensures that the policy remains unknown to all parties except those who can decrypt the ciphertext. Our access control system is constructed on top of the decentralized inner-product predicate encryption scheme in Michalevsky & Joye (2018). It provides detailed proof that, in the existence of corrupted authorities, the advantage of a PPT adversary A in winning a sequence of games is negligible in the security parameter λ.

Trustability

Most existing solutions require an intermediary entity to ensure reliable and secure data management, resulting in expensive costs to prevent a single point of failure and privacy leakage. To overcome these obstacles, our approach employs the characteristics of blockchain distribution, decentralization, transparency, and immutability. By publishing the encrypted metadata, which consists of the AES key AK and file location loc, to the blockchain, we can maintain the integrity of access control management without requiring any intermediaries.

Traceability

Our system can track and validate access control data on the blockchain. Any activities, including setup, registration, key generation, encryption, and data uploading, are recorded as immutable transactions.

Performance Analysis

In this section, we present a comparative analysis of our proposed Blockchain-enabled data governance system against existing related works Wang, Zhang & Zhang (2018), Qin et al. (2021), Nishide, Yoneyama & Ohta (2008), Gao et al. (2020), Cui et al. (2018), Zhang, Zheng & Deng (2018), Yang et al. (2018), Zhao et al. (2022), Tseng & Gao (2022) in terms of performance and security. In Table 5, we position these aforementioned works that are closely related to our work, providing comprehensive comparisons in the bilinear mapping group, security model, and time complexity of Auth Setup, Encryption, and Decryption.

Table 5:
Summary of system using attribute-based encryption.
Approach Group Security Auth setup Encryption Decryption
Wang, Zhang & Zhang (2018) Prime S-Rom 1 pair + 2 exp 3 exp 2 pair
Cui et al. (2018) Prime S-STM (16I + 3) exp + (12I + 9) pm (8I + 2)exp (6I + 1)pair + Iexp
Zhang, Zheng & Deng (2018) Composite F-STM 5I exp + 6I pm (6I + 4)exp* (I + 2)pair + 2Iexp*
Yang et al. (2018) Composite F-ROM 1 pair + 2 exp 2 pm (7I + 1)exp 2Ipair + 4Iexp
Gao et al. (2020) Composite F-STM 1 pair + 2 exp + 2 pm (l + 2)exp (l + 1)pair
Qin et al. (2021) Composite F-Rom 1 pair + (2n + 2)exp + 2n pm (5I + 1) exp+pair 2Ipair+ Iexp
Zhao et al. (2022) Prime S-STM 2 exp 5Ipair + 4exp + 2pm 2Ipair + 3Iexp
Tseng & Gao (2022) Prime S-ROM 1 pair + (l + 2) exp (l + 2)exp + (ln + 2n + l + 1)pm 2 pair + (l − 1) exp + l(n + 1) pm
This work Prime F-ROM** 2pair + 23exp + 16 pm (2n + 1)exp 2 pair + 2n exp
DOI: 10.7717/peerjcs.2581/table-5

Notes:

Several works did not present the complexity information. Therefore, we have either extrapolated the complexity on our own or referenced results presented in the survey (Zhang et al., 2020b).
This is not entirely accurate. We primarily address the rogue-key attack under the fully adaptive security framework. Thus, the actual security of our scheme is slightly stronger than selective security but does not fully achieve fully adaptive security.

It is important to note that real execution times, a critical aspect of performance evaluation, are often inconsistently reported in the literature. Among the works previously discussed, only (Gao et al., 2020; Cui et al., 2018; Zhang, Zheng & Deng, 2018; Zhao et al., 2022; Tseng & Gao, 2022) provide real execution times, but these are based on diverse platforms. Furthermore, the lack of a shared code base for these works precludes the replication of experiments to verify and compare execution times in a uniform environment.

As a result, we have selected a few works (Michalevsky & Joye, 2018; Tseng & Gao, 2022) for implementation. These works were chosen because both are IPPE-based schemes, and Tseng and Gao claimed that their work outperforms MJ’s scheme, upon which our construction is built, in the four algorithms: Setup, Auth Setup, Encryption, and Decryption.

It is important to note that we did not include the trusted setup in the comparison for the following reasons:

  1. A malicious central authority is not the main concern of this work.

  2. Traffic delays, such as transactions not being mined, are quite common in blockchain networks. Therefore, the complexity cost of the trusted setup may not accurately represent real-time execution. In contrast, proof generation and verification in Auth Setup for the attribute secret keys can be done offline, which is not impacted by network delays.

Asymptotic comparisons

The notations used are: exp for exponentiation operation, pair for bilinear pair operation, pm for point multiplication operation, and I for access policy complexity for LSSS.

  1. Group: There are two types of groups used in CP-ABE: prime-order and composite-order groups. It is noted that the design of prime-order CP-ABE is more efficient than composite-order CP-ABE but is more challenging to achieve full security.

  2. Security model: Standard model (STM) and random oracle model (ROM) are two typical types of security models considered in the CP-ABE scheme. And adversaries are categorized into selective adversaries and adaptive adversaries. If a CP-ABE scheme is secure against adaptive adversaries under the standard model, we denote this scheme as F-STM achieving full security. Likewise, S-ROM represents a CP-ABE scheme robust against selective adversaries under the random oracle model, and F-ROM if it is secure against adaptive adversaries under the random oracle model.

  3. Computation cost: This assessment considers both the encryption and decryption costs in terms of their complexity, measured in terms of certain standard (cryptographic) operations. The following notations are used:

    1. exp: exponentiation operation

    2. pair: bilinear pair operation

    3. pm: point multiplication operation

    4. I: the access policy complexity for LSSS

    5. l: the size of attributes

    6. n: the size of attribute authorities

In terms of computational costs, bilinear pairing (pair) is the most expensive operation compared to exponentiation (exp) and point multiplication (pm), and the LSSS is a special matrix whose rows are labeled by attributes such that the cost of I might be similar as n or l. Note that, each attribute authority is responsible for at least 1 attribute, which means that n ≤ l. Consequently, our scheme is superior to most of these works with respect to encryption and decryption cost, as shown in Table 5, but it is constrained in terms of the conjunction access policy.

Experimental result

In this section, we present the experimental results of two IPPE-based schemes (Michalevsky & Joye, 2018; Tseng & Gao, 2022) and our enhanced construction, implemented in Python. We analyze the execution time in terms of all five algorithms defined for IPPE (Definition 5). The experiments were conducted on a platform featuring an i5-13600KF 20-Core processor with 128GB of RAM, running Ubuntu version 22.04.1 LTS. These implementations were developed using Python and the [email protected] cryptography library (Akinyele et al., 2013), utilizing the ‘MNT-159’ elliptic curve for asymmetric bilinear mapping and the ‘SS512’ elliptic curve for symmetric bilinear mapping. According to Cui et al. (2018), both curves provide an 80-bit security level. We set k = 2 as a standard value for the security parameter, which is widely adopted in similar works.

In our performance evaluation, we use the abbreviations MJ18, TG22, and Enhd to represent the three schemes from Michalevsky & Joye (2018), Tseng & Gao (2022), and our proposed enhanced IPPE-based scheme, respectively, as depicted in the following figures.

Using Michalevsky and Joye’s work (Michalevsky & Joye, 2018) as the baseline (represented by the blue line in Fig. 2), we observe that our enhanced construction requires significantly more computation time, as indicated by the green dashed line. In contrast, Tseng & Gao (2022), depicted by the orange dash-dotted line, outperforms the baseline in efficiency. Meanwhile, we note that as the number of attribute authorities increases, the performance differences—both in terms of average increase and decrease—shrink from around 40%, as seen in Fig. 2A to 10%, as shown in Fig. 2B. We note that these relative computational cost overheads align with our expectations qualitatively, specifically, the enhanced security achieved with our approach incurs more computation.

Comparision of total cost of schemes with varied numbers of attribute authorities.

Figure 2: Comparision of total cost of schemes with varied numbers of attribute authorities.

To further investigate the factors contributing to these performance differences quantitatively, we analyzed the time cost of each algorithm, focusing initially on the Auth Setup phase in Fig. 3.

Comparison of auth setup with varied numbers of attribute authorities.

Figure 3: Comparison of auth setup with varied numbers of attribute authorities.

Instead of using the work of Michalevsky & Joye (2018) as the baseline for total cost comparison, we have selected Tseng & Gao (2022) as the baseline for evaluating the performance of the Auth Setup algorithm. Surprisingly, although the scheme of Tseng & Gao (2022) scheme demonstrated efficiency in previous comparisons, its performance in the Auth Setup phase (represented by the blue line in Fig. 3) is not superior to Michalevsky & Joye (2018) (indicated by the orange dash-dotted line) even when the number of attribute authorities is small, as shown in Fig. 3A. Additionally, the performance gap between our proposed scheme (depicted by the green dashed line) and the scheme of Tseng & Gao (2022) narrows as the number of attribute authorities increases. When n exceeds 95, our enhanced scheme, which incorporates NIZK proofs to defend against rogue-key attacks, outperforms the scheme of Tseng & Gao (2022), as illustrated in Fig. 3B.

Since our enhanced scheme only modifies the Auth Setup, the performance results of the other algorithms—Sys Setup, Key Gen, Encryption, and Decryption—are identical to those in Michalevsky & Joye (2018). The comparison among the three schemes is summarized in Fig. 4.

Comparison of other algorithms with varied numbers of attribute authorities.

Figure 4: Comparison of other algorithms with varied numbers of attribute authorities.

As shown in Figs. 4A and 4B, the Encryption and Decryption algorithms, all schemes (with the scheme of Tseng & Gao (2022) represented by the green dash-dotted line, Michalevsky & Joye (2018) and our enhanced scheme both by the red dash-dotted line) exhibit linear growth as the number of attribute authorities increases. Specifically, the Decryption algorithm in the work of Tseng & Gao (2022) increases at a faster rate than our enhanced scheme, surpassing our scheme’s time cost when the number of attribute authorities n reaches 53. For the Key Gen algorithms, all three schemes(with TG’s scheme represented by the blue line, MJ’s work, and ours both by the orange line) exhibit exponential growth; however, the performance gap widens as the number of authorities increases. In contrast, the Sys Setup algorithm remains stable and is unaffected by the number of attribute authorities, maintaining consistent performance even as n increases from 35 to 95.

In summary, although our proposed scheme with Non-Interactive Zero-Knowledge (NIZK) proofs to defend against rogue-key attacks performs better in the Auth Setup and Decryption algorithms compared to the scheme introduced in Tseng & Gao (2022), the poor performance of the inherited Sys Setup, Encryption, and especially Key Generation algorithms from Michalevsky & Joye (2018) causes our scheme to require additional time in the total cost, as shown in Fig. 2. However, as illustrated in Figs. 3B and 4B, the gap between our scheme and the work of Tseng & Gao (2022) narrows as the number of attribute authorities n increases, and eventually our scheme outperforms theirs. This indicates that the relative cost of the additional security measures in our scheme diminishes with a larger number of attribute authorities, suggesting that our scheme is suitable for scenarios involving a large number of attribute authorities, while, when the number of authorities is small, our approach is also practical in terms of the absolute cost even though it is relatively costlier than the other schemes.

Concluding Remarks

Securing cloud data access and protecting identity privacy are legitimate concerns for many use cases, which this work addresses with a blockchain-based data governance system that is secure and privacy-preserving. A combination of attribute-based encryption (ABE) and the Advanced Encryption Standard (AES) makes the system efficient and responsive to real-world conditions. Our data-sharing system can handle multi-authority scenarios while protecting identity privacy and hiding ABE’s policy against rogue-key attacks under fully adaptive corruption.

However, because our system is built on top of Michalevsky & Joye (2018) and Bowe, Gabizon & Green (2018), it has inevitably inherited a few drawbacks: First, it only supports fixed-size attributes and authorities, which means that any changes to these may necessitate requesting a new system setup or a new key for DU from all authorities. Second, because each AA’s public key must be shared with others for the computation of masking terms μi, the system requires coordination among authorities during the setup phase. Third, the implementation of a trusted setup to protect against rogue-key attacks adds complexity to the setup process, making it less suitable for scenarios where authorities frequently join or leave. Addressing these limitations is part of our planned future work.

Our proposed system addresses the key challenges of decentralization, practicality, and security. Specifically, it provides resilience against rogue-key attacks, considers dynamic setups through fully adaptive security, and mitigates the potential risk of information leakage caused by inference attacks. Considering the immediacy of the more fundamental security needs, the current work does not explore further common real-world desirable functionalities, such as interoperability, enabling data-sharing across different cloud environments, scalability, particularly in handling large-scale data and high-concurrency access, and other desired features like trustworthy and privacy-preserving keyword search schemes in encrypted decentralized storage. Furthermore, we aim to extend our research to address specific security compliance requirements in cloud environments, such as data governance, data sovereignty, and cross-regional data transfer. Addressing these aspects would significantly enhance the applicability of our system in real-world scenarios.

Thus, our future work will focus on addressing these shortcomings while further exploring ABE-based data-sharing systems in terms of decentralization, flexibility, interoperability, scalability, and security.

The value of k in this context does not derive from the security parameter λ. Rather, it is a reference to Assumption 3.
For brevity, we will use this shorthand notation to represent the above concatenation where s takes on all value in the set e = {AUαAαUαAAαUU}.
2 Citations   Views   Downloads