Loading [MathJax]/extensions/TeX/boldsymbol.js
Enhancing IoT Security and Efficiency: A Blockchain-Assisted Multi-Keyword Searchable Encryption Scheme | IEEE Journals & Magazine | IEEE Xplore

Enhancing IoT Security and Efficiency: A Blockchain-Assisted Multi-Keyword Searchable Encryption Scheme


Detailed architecture for blockchain-assisted multi-keyword searchable encryption scheme (BAMKSE)

Abstract:

The Internet of Things (IoT) has expanded rapidly, generating vast amounts of data that require effective protection. Traditionally, the attribute-based searchable encryp...Show More

Abstract:

The Internet of Things (IoT) has expanded rapidly, generating vast amounts of data that require effective protection. Traditionally, the attribute-based searchable encryption (ABSE) as been used within IoT to maintain data privacy and integrity. However, existing ABSE approaches often rely on centralized systems that are susceptible to single-point failures and are inefficient in terms of decryption and data retrieval. Therefore, we propose a novel blockchain-assisted multi-keyword searchable encryption scheme (BAMKSE) that utilizes the decentralized nature of blockchain to overcome these limitations. This scheme integrates ciphertext policy attribute-based encryption (CP-ABE) with key policy attribute-based encryption (KP-ABE) to provide advanced access control and mutual authentication, while offloading the computational burden of decryption to cloud-based pre-decryption services. Security analyses demonstrate the resilience of BAMKSE against chosen keywords attacks (CKAs) and chosen-plaintext attacks (CPAs), offering an effective solution for secure and efficient IoT data handling.
Detailed architecture for blockchain-assisted multi-keyword searchable encryption scheme (BAMKSE)
Published in: IEEE Access ( Volume: 12)
Page(s): 148677 - 148692
Date of Publication: 02 October 2024
Electronic ISSN: 2169-3536

Funding Agency:


SECTION I.

Introduction

In the digital era, the Internet of Things (IoT) has become a pivotal technology for connecting everything. The widespread adoption and extensive application of IoT have brought significant conveniences, yet they also pose substantial challenges to data security and privacy protection. The vast amount of data generated by IoT includes personal information of users (such as gender and age), sensitive business data (such as financial statements and specific revenues), and communication content between devices. The leakage or malicious use of this data could lead to severe consequences. Cloud storage technologies, known for their high performance and low cost, are extensively employed to manage the massive data from IoT. However, the security and privacy of data cannot be overlooked, as cloud servers might expose private information to third parties or tamper with outsourced data (indicating that the cloud servers are not fully trustworthy). To ensure the security of private data, it is commonly stored in an encrypted form within cloud services. Nevertheless, traditional public-key encryption technologies no longer meet the current needs for protecting privacy in cloud data. Against this backdrop, addressing the issues of rapid retrieval of encrypted data and secure access control in a cloud storage environment has become a pressing concern.

To address the issue of searching over encrypted data, Song et al. [1] introduced the technology of searchable encryption (SE), which allows for the retrieval of encrypted data without revealing the contents of the files, effectively protecting user privacy. Compared to other encrypted search solutions such as secure multi-party computation and homomorphic encryption, searchable encryption technology offers a lower computational cost. It balances search efficiency with security, thus presenting more significant advantages and has consequently received extensive research and application. The application framework of searchable encryption in IoT is shown in Fig. 1.

FIGURE 1. - Framework diagram of searchable encryption for IoT applications.
FIGURE 1.

Framework diagram of searchable encryption for IoT applications.

Another critical issue in cloud storage is access control. Shamir and Waters [2] introduced attribute-based encryption (ABE), which achieves the sharing of secrets with users possessing specific attributes, thus implementing fine-grained access control. Researchers have extensively studied ciphertext retrieval and access control for user-encrypted data stored on cloud servers. The attribute-based searchable encryption (ABSE) scheme, combining ABE and SE technologies, was proposed to facilitate search and access control over shared data in the cloud. This data sharing and retrieval process generates a large number of keys, and traditional centralized key management faces challenges such as single points of failure, performance bottlenecks, and lack of flexibility. Blockchain, as a distributed ledger, is managed collaboratively by the nodes within the network. These nodes utilize consensus mechanisms to coordinate, employing hash chains and Merkle trees to maintain the ledger’s integrity and immutability, thereby preventing alterations by the nodes. Blockchain [3] technology is applied in many fields, such as finance, supply chain management, healthcare, real estate, and voting systems.

As a common application of IoT, smart homes often face the challenge of limited device resources. To address this issue, offloading complex ABE computations to edge servers (ES) is an effective solution. However, in practice, both ES and CSP may be vulnerable to attacks, necessitating the verification of the correctness of ES and cloud data. Zhang et al. [4] proposed a lightweight dual-audit scheme for smart home applications, which utilizes zero-knowledge proofs to verify the correctness of ES data and aggregates data blocks and signatures to ensure the correctness of cloud data. Nevertheless, this scheme does not fully account for the impact of dynamic environments, where frequent joining or leaving of devices can lead to frequent updates of the auditing mechanism proposed in the paper, thereby increasing system complexity. Wang et al. [5] proposed an improved CP-ABE scheme that supports policy hiding functionality. By separating attributes into attribute names and attribute values, and concealing sensitive attribute values within the ciphertext, this scheme effectively prevents access policy leakage, thereby enhancing the privacy protection capabilities of the system. Additionally, a third-party auditing mechanism was introduced to verify the integrity of data stored in the cloud.

In the context of healthcare and industrial IoT, researchers have also conducted extensive studies.

Das and Namasudra [6] proposed a multi-authority CP-ABE (MACPABE) for healthcare, which enhances system security through multiple authorities and an efficient attribute revocation mechanism. The scheme is particularly effective in handling lightweight computations and mitigating the key escrow problem. However, the handling of user revocation remains insufficient. Mishra and Mohapatra [7] combined blockchain with an optimized CP-ABE to propose a hybrid blockchain architecture for secure medical data sharing. The “Replicated Attribute Amendment” (RAA) method optimizes attribute sharing, reducing communication and computational costs, thereby improving encryption efficiency. While security is enhanced, interoperability among different healthcare institutions remains a challenge. Niu et al. [8] proposed an electronic health record sharing scheme based on permissioned blockchains (EHR-ABSE). Under premise of ensuring patient identity privacy, a polynomial equation is used to achieve an arbitrary connection of keywords, and then blockchain technology is combined.

Luo et al. [9] combined fully outsourced computation with policy-hiding CP-ABE to enhance data sharing security in industrial IoT. Fog computing nodes reduce the computational burden on devices and hide access policies to protect sensitive information. However, the user revocation mechanism relies on fog nodes, which could fail if the nodes are attacked or compromised. Yin et al. [10] proposed a scheme combining attribute-based encryption with searchable encryption for cloud-assisted industrial IoT. The scheme improves data access flexibility and security through access policy-based security indexes and search tokens, achieving O (1) search complexity. However, it is limited to static datasets and does not account for dynamic data updates. Xu et al. [11] proposed a blockchain-aided searchable encryption-based two-way attribute access control research (STW-ABE). The scheme elaborates the application of access control in IoT and introduces a federation blockchain to solve the single point of failure problem. In addition STW-ABE also provides users with fine-grained search and lightweight decryption of ciphertext. However, the above solutions applied in smart home, health care and industrial IoT do not solve the problem of mutual authentication between data and users and the excessive cost of user decryption.

A. Contribution

Based on the issues discussed, we propose a blockchain-assisted multi-keyword searchable encryption scheme in the IoT environment, named BAMKSE. By leveraging blockchain, a distributed ledger, we aim to mitigate the risks associated with centralized key distribution. Additionally, we integrate CP-ABE and KP-ABE technologies to achieve more fine-grained access control. Cloud servers provide a pre-decryption feature, significantly reducing decryption overhead on the user end. Our contributions are as follows.

  • Combining CP-ABE technology with KP-ABE technology: In this paper, user access policy and revocation access policy are embedded in the ciphertext and ciphertext access policy is embedded in the key, respectively.

  • Fine-grained access control: The scheme realizes the mutual authentication between the user and the data, enhances the security of the data, and achieves more fine-grained access control. Meanwhile, this scheme uses blockchain to solve a single point of failure.

  • Supporting pre-decryption: By utilizing CSP’s powerful computing capability, it can perform pre-decryption and send the pre-decrypted ciphertext to data users, which reduces the computation and time overhead required for data users to decrypt the ciphertext locally.

  • Supporting for multi-keyword search: This paper proposes an attribute-based multi-keyword searchable encryption scheme and it is safe in the security game.

B. Organization

In Section II introduces related work. In Section III presents the cryptographic knowledge relevant to this paper. Next, we design the system model and security model in Section IV. In Section V presents the specific details for implementing this scheme. Then, in Section VI, we conduct a correctness deduction and security analysis, verifying the effectiveness and security of the scheme. In Section VII compares the performance of this scheme with other schemes through a comparative analysis. In Section VIII, we evaluate and compare the time overhead of this scheme with other schemes. Section IX summarizes the entire paper.

SECTION II.

Related Work

In this part, we will start from the four parts of SE, ABE, ABSE and Blockchain.

A. Searchable Encryption

Due to the explosive growth of IoT devices, massive amounts of data are stored on cloud servers. Quickly and accurately retrieving required data while ensuring its security has become a critical issue. Searchable encryption technology allows for the retrieval of ciphertext stored in the cloud, and is categorized into symmetric searchable encryption (SSE) [12] and asymmetric searchable encryption (ASE) [13]. Song et al. [1] first proposed a symmetric searchable encryption scheme, which encrypts a single file into a series of ciphertext words. During the search phase, the retrieval is executed through the XOR operation between the keyword trapdoor and the index. However, this scheme is inefficient in terms of search speed.

Due to the inherent inefficiencies of single-keyword searchable encryption, most researchers have shifted their focus to multi-keyword searchable encryption. The paper [14] introduced fast searchable encryption schemes using multiplication and simultaneous congruences. Liang et al. [15] presented a dynamic multi-keyword searchable encryption scheme (DMSE). This scheme, based on multi-keyword retrieval, classifies outsourced data by privacy before constructing an inverted index structure, thereby significantly enhancing retrieval efficiency. Although DMSE is strong in terms of applicability and security, it generates a large number of keys and trapdoors without distributed key management, posing a single point of failure risk. Liu et al. [16] realized that existing SE schemes lack flexibility, efficiency, and robustness, thus proposing a matrix-based multi-keyword fuzzy search scheme. In this scheme, each query is encoded into a matrix, its size linear increasing with the number of keywords. The matrix-based construction offers flexibility but results in a performance decline. Li et al. [17] noted that cloud servers return all matching files without ranking them for relevance, and the update mechanism incurs high communication and computational costs, making it insufficient for dynamic real-world scenarios. Therefore, they proposed an efficient two-server ranked dynamic searchable encryption scheme (TS-RDSE). This scheme establishes a dynamic secure index and supports dynamic updates such as inserting and deleting files.

B. Attribute-Based Encryption

Although SE allows for the retrieval of encrypted data in cloud environments, a significant limitation of this technology is that any user possessing the keywords can retrieve the data. This mechanism does not achieve the objective of sharing data with specific users, indicating a lack of effective access control.

ABE technology can meet the aforementioned requirements, achieving the objective of sharing secrets with individuals possessing specific attributes. The attribute-based encryption scheme was first introduced by Shamir and Waters [2] collaboratively. Ciphertext policy attribute-based encryption (CP-ABE) [18] and key policy attribute-based encryption (KP-ABE) [19] are two different forms of ABE. These two forms are interconnected yet distinct in their approaches. CP-ABE embeds the access policy within the ciphertext, while attributes are embedded within the user’s key. Conversely, KP-ABE incorporates the access policy within the user’s key, with attributes being embedded within the ciphertext. Irrespective of the ABE variant, decryption of the ciphertext is contingent upon a match between the policy and the user’s attributes, ensuring that only users whose attributes satisfy the policy can decrypt the information.

C. Attribute-Based Searchable Encryption

Obviously, the combination of ABE and SE technology will enhance the security and retrieval efficiency of data in the cloud environment. An increasing number of researchers are dedicating efforts towards integrating SE with ABE to meet the security requirements of cloud storage.

Yin et al. [20] proposed a ciphertext-policy attribute-based searchable encryption scheme. They point out that granting authorized data users search permissions is an effective method to enhance data access control. The main idea of the scheme is that the data owner encrypts the data and indexes under specific access policies, and only data users who meet these access policies can perform retrieval. Liu et al. [21] proposed a multiple keywords searchable encryption scheme based on the coordination of cloud servers and edge nodes (EMK-ABSE). EMK-ABSE adopts an offline/online hybrid mode for encryption and leverages edge nodes for pre-decryption in the decryption process, collectively alleviating the computational burden on the client. Zhao et al. [22] presented a new attribute-based collaborative search encryption scheme (ABCSE-MU) in a multi-user environment. This scheme realizes the function of multi-user collaborative search by introducing collaborative nodes, which solves the problem of insufficient search privileges when users need to search. Sun et al. [23] proposed a third-party auditing-based multi-keyword attribute-searchable encryption scheme with data verifiability and attribute revocation, which introduces a validation algorithm to ensure that the search results are correct. However, this scheme still incurs high computational overhead. Yan et al. [24] proposed an access control scheme based on blockchain and attribute-searchable encryption in cloud computing environment. The scheme realizes fine-grained access and secure search of cloud data while supporting policy hiding and attribute revocation. Proxy encryption and decryption are also introduced to reduce the computational cost of users. Zou et al. [25] proposed a blockchain-assisted multi-keyword fuzzy search encryption (BCFSE) scheme for secure data sharing. BCFSE supports ciphertext search while realizing fine-grained access control. In addition, the security features of blockchain are utilized to ensure the correctness of search results.

However, while utilizing blockchain to achieve attribute management and maintenance, it also exposes the user’s attribute information to a certain extent. Xiang and Zhao [26] designed a blockchain-assisted searchable attribute encryption scheme for eHealth systems. The scheme not only provides secure outsourcing and fast search services for medical data stored in CSPs, but also enables lightweight decryption of data for users, and data owners can achieve fine-grained authorization of data users under specified access policies. However, this scheme does not consider authentication between data and users and is inefficient in searching. Liang et al. [15] proposed a dynamic multi-keyword searchable encryption scheme using inverted index. This approach improves the retrieval efficiency of ciphertexts on cloud servers by leveraging the inverted index. However, the scheme does not address authentication between data and users. Wang et al. [27] proposed a blockchain-based pairing-free publicly verifiable searchable encryption scheme. They started with linear pairing operations to reduce the computational overhead. Guo et al. [28] has designed a secure and efficient range query scheme specifically designed to handle outsourced cryptographically indeterminate data, such as those originating from IoT systems.

D. Blockchain

The decentralized nature of blockchain means that it can distribute a large number of keys without the risk of a single point of failure. Additionally, each transaction record in the blockchain requires verification by multiple nodes within the network, and once recorded, it is almost immutable.

An increasing number of researchers are exploring the integration of blockchain with access control technologies. Qin et al. [29] proposed a lightweight access control solution for the IoT that leverages attribute-based encryption and blockchain technology, utilizing smart contracts to verify the accuracy of outsourced decrypted data within the IoT environment. Li et al. [30] proposed an access control scheme for Smart Home (S-home) environments. This approach employs multiple smart contracts to facilitate fine-grained access control over data, while concurrently recording transactions in a distributed ledger for auditing purposes. Ding et al. [31] and Chaudhry et al. [32] introduced the access control scheme based on Iot system. Zhonghua et al. [33] proposed a blockchain-based access control model for the IoT. Leveraging blockchain technology, the model designs an access control mechanism for terminal devices and resources through IoT edge nodes. It aims to provide a novel solution to the shortcomings in current research on access control within edge computing and blockchain in IoT security systems. However, the scheme focuses solely on the access control of edge data in IoT and does not address the data in the existing environment. Han et al. [34] proposed an auditable access control model based on attributes, utilizing blockchain to manage private data access via logs and records. Additionally, a blockchain-based system ensures the security and auditable access of private data in IoT environments. Cui et al. [35] introduced a novel data sharing framework that integrates both cloud and edge computing paradigms. Positioned centrally, the edge server oversees all communications, enforcing predefined access policies to detect and prevent unauthorized data exchanges. Zhang et al. [36] proposed an attribute-based access control scheme aimed at furnishing IoT devices with decentralized, flexible, and fine-grained authorization capabilities.

Based on the above discussion, we compare several different searchable encryption schemes with ours scheme. The Table 1 for specific comparison details.

TABLE 1 Comparison of Different Searchable Encryption Schemes
Table 1- Comparison of Different Searchable Encryption Schemes

SECTION III.

Preliminaries

In this part, the relevant cryptographic background are introduced. The symbols used in this scheme and their related representations are shown in Table 2.

TABLE 2 Symbols and Descriptions
Table 2- Symbols and Descriptions

A. Bilinear Mapping

Suppose there are two multiplicative cyclic groups G_{1} and G_{T} of prime order p. The bilinear map e: G_{1} \times G_{1} \rightarrow G_{T} simultaneously satisfies the following properties:

  • Bilinear: \forall x,y\in G_{1} and a,b\in \mathbb {Z}_{p} , e(x^{a},y^{b})=e(x,y)^{ab} .

  • Non-degeneracy: \exists x,y\in G_{1} , e(x,y)\neq 1 .

  • Computability: \forall x,y\in G_{1} , e(x,y) can be computed efficiently.

B. Access Structure

Consider an entity set P = \{P_{1}, P_{2}, \ldots , P_{n}\} comprising n participants, where A is a subset of the power set 2^{P} . If for any subsets B and C, such that if B \in A and B \subseteq C , have C \in A , then A is deemed monotonic. Furthermore, if A is non-empty and A \in 2^{P} , it constitutes an access structure. The sets contained within A are referred to as authorized sets, while those not included in A are labeled as unauthorized sets.

C. Linear Secret Sharing Scheme

Linear secret sharing scheme (LSSS) is utilized to divide a secret into multiple shares, where only specific combinations of shares can reconstruct the original secret. The secret is represented as a vector of coefficients, while each share is computed as a linear combination of these coefficients. Let \Pi denote a linear secret sharing scheme.

There is a matrix P, comprising r rows and c columns, is designated as the shared matrix on \Pi . The column vector v=(s,l_{2},l_{3},\ldots ,l_{c})^{T} comprises a secret s\in \mathbb {Z}_{p} and l_{2},l_{3},\ldots ,l_{c}\in \mathbb {Z}_{p} . l_{2},l_{3},\ldots ,l_{c} are used to encrypt s. The mapping function \rho :\{1,2,\ldots ,r\}\rightarrow ~(P\vec {v}) be mapped to the vector (P\vec {v})_{i} , where i\in \ (1,2,3,\ldots ,r) represents the row index of P. When \lambda _{i}=(P\vec {v})_{i} represents a participant in the r-th row association, holding one of the fragments of the secret. Q is an authorized collection, and I \subseteq (1,2,3,\ldots ,r) is defined as I=\{i:\rho (i) \in Q\} . Then there is a set of constants z=\{z_{i}\in \mathbb {Z}_{p} \}_{_{i}\in \ I} such that condition \sum _{_{i}\in \ I}z_{i}{P_{i}}=(1,0,0,\ldots 0) holds. If \lambda _{i} is the set of valid secret fragments on \Pi , then The following equation is satisfied:\begin{align*} \sum _{i\in I}z_{i}\lambda _{i} & = \sum _{i\in I}z_{i}(P\vec {v})_{i} \\ & = (1,0,\ldots ,0) \cdot (s,l_{2},l_{3},\ldots ,l_{c})^{T} \\ & = s. \tag {1}\end{align*} View SourceRight-click on figure for MathML and additional features.

D. Difficult Assumption

The problem known as Decisional Linear (DL) can be stated in the following manner. Given multiplicative cyclic group G_{0} of prime order p. The generating element \ g\in G_{0} and five numbers a, b, c_{1}, c_{2}, Z\in \mathbb {Z}_{p}^{*} are randomly selected. Given tuples X=(g, g^{a}, g^{b}, g^{ac_{1}}, g^{bc_{2}}, Q=g^{c_{1}+c_{2}}) and Y=(g, g^{a}, g^{b}, g^{ac_{1}}, g^{bc_{2}}, Q=g^{Z}) . Arbitrary polynomial time attacker \mathcal {A} has to distinguish random elements g^{Z} and g^{c_{1}+c_{2}} in G_{0} after obtaining (g,g^{a},g^{b},g^{ac_{1}},g^{bc_{2}}) . Define the advantage of attacker \mathcal {A} in breaching the DLP to be \boldsymbol {\varepsilon } . If the following equation holds, then we have Definition 1.\begin{align*} & \left |{{ \Pr \left [{{ \mathcal {A}(g,g^{a},g^{b},g^{ac_{1}},g^{bc_{2}},Q=g^{c_{1}+c_{2}})=1 }}\right ] }}\right . \\ & \quad - \left .{{ \Pr \left [{{ \mathcal {A}(g,g^{a},g^{b},g^{ac_{1}},g^{bc_{2}},Q=g^{Z})=1 }}\right ] }}\right | \geq \varepsilon . \tag {2}\end{align*} View SourceRight-click on figure for MathML and additional features.

Definition 1:

If there is no PPT adversary that can solve the DL problem with an non-negligible advantage, then the DL problem is considered difficult.

Decisional Bilinear Diffie-Hellman (DBDH) assumptions for prime-order bilinear groups. The bilinear map e: G_{0} \times G_{0} \rightarrow G_{1} . Given multiplicative cyclic group G_{0} of prime order p. The generating element \ g\in G_{0} and five numbers a, b, c, Z\in \mathbb {Z}_{p}^{*} are randomly selected. Given tuples X=(g, g^{a}, g^{b}, g^{c}, Z) and Y=(g, g^{a}, g^{b}, g^{c}, e(g,g)^{abc}) . Arbitrary polynomial time attacker \mathcal {A} has to distinguish random elements Z and e(g,g)^{abc} in G_{0} after obtaining (g,g^{a},g^{b},g^{c}) . Define the advantage of attacker \mathcal {A} in breaching the DBDH to be \boldsymbol {\varepsilon } . If the following equation holds, then we have Definition 2.\begin{align*} & \left |{{ \Pr \left [{{ \mathcal {A}(g,g^{a},g^{b},g^{c},Z)=1 }}\right ] }}\right . \\ & \quad - \left .{{ \Pr \left [{{ \mathcal {A}(g,g^{a},g^{b},g^{c},e(g,g)^{abc})=1 }}\right ] }}\right | \geq \varepsilon . \tag {3}\end{align*} View SourceRight-click on figure for MathML and additional features.

Definition 2:

If there is no PPT adversary that can solve the DBDH problem with an non-negligible advantage, then the DBDH problem is considered difficult.

SECTION IV.

Formal Definition

A. System Model

The BAMKSE includes four participants. The system model is shown in Fig. 2.

  • DO: The data owner sets the user access policy and the revocation access policy for the data, encrypts the shared data and multi-keyword indexes, and uploads them to the CSP.

  • DU: In instances where a DU exhibits interest in specific datasets provided by a DO, the DU is enabled to generate a search trapdoor, subsequently uploading it to the CSP for the purpose of data retrieval. The CSP plays a pivotal role in facilitating this process by executing pre-decryption techniques to derive an intermediate form of ciphertext, which is then transmitted to the DU. Crucially, if the attributes of the DU are in alignment with the user access structure embedded within the ciphertext by the DO, the DU’s attribute-based private key can effectively be utilized to decrypt the intermediate ciphertext, culminating in the acquisition of the plaintext.

  • CSP: The CSP is responsible for storing encrypted data and indexing multi-keyword ciphertext for DO, and providing search and revocation services for ciphertext. It also provides pre-decryption service for DU that meet the privileges and returns the pre-decrypted ciphertext to the DU. The cloud server is honest and curious, meaning that it faithfully executes tasks submitted by users but also exhibits curiosity towards encrypted data.

  • BC: The BC is comprised of trustworthy nodes. The current leader node of the blockchain receives the attributes of DU to be added to the system and generates the user’s private key on the chain based on its attributes.The leader node returns the user’s private key to the user through a secure channel. This is shown in Fig. 3.

FIGURE 2. - System model.
FIGURE 2.

System model.

FIGURE 3. - Blockchain-based key generation and distribution process.
FIGURE 3.

Blockchain-based key generation and distribution process.

B. Scheme Definition

Our scheme is mainly divided into ten algorithms, including Setup, KeyGen, Encrypt, IndexGen, Trapdoor, Search, Predecrypt, Decrypt, TokenGen and Revoke. The workflow diagram of this scheme is shown in Fig. 4. The definitions of these algorithms are as follows.

FIGURE 4. - The workflow diagram of this scheme.
FIGURE 4.

The workflow diagram of this scheme.

Setup(1^{\lambda } ) \rightarrow (GP, MSK): The algorithm is executed by the current blockchain leader node, which inputs safety parameter \lambda and outputs global parameters and main key of system.

KeyGen(GP, UID) \rightarrow ~\boldsymbol {K} : The algorithm inputs the global parameters GP, user identity UID and outputs the key components K.

Encrypt(GP, UID, USK, M, (\mathbb {P},\rho) , (\mathbb {A},\pi) , \boldsymbol {\Lambda } ) \rightarrow ~\boldsymbol {C} : The algorithm inputs the global parameters GP, the user private key USK, user identity UID, plaintext M, user access policy (\mathbb {P},\rho) , revocation access policy (\mathbb {A},\pi) , ciphertext attribute set \boldsymbol {\Lambda } and outputs the ciphertext components C.

IndexGen(GP, USK, W) \rightarrow KI: The algorithm inputs the global parameters GP, the user private key USK, multiple keywords set W and outputs keywords index KI.

Trapdoor(GP, USK, W^{\prime } ) \rightarrow ~\boldsymbol {D} : The algorithm inputs the global parameters GP, the user private key USK, set of multiple keywords W^{\prime } to be searched and outputs trapdoor D, where W^{\prime } contains n^{\prime } keywords.

Search(KI, D) \rightarrow CT or \perp : The algorithm inputs the keyword index KI and trapdoor D, and outputs the search results. After receiving the search request from DU, the CSP matches D with KI. If the match is successful, the corresponding ciphertext CT is returned to the DU. If the search fails, \perp .

Predecrypt(GP, USK, K, CT) \rightarrow ICT: The algorithm inputs the global parameters GP, the user private key USK, the key components K and ciphertext CT. If the attributes of the DU meet the user access policy in the ciphertext and the ciphertext attributes meet the ciphertext access policy, the CSP predecrypts the ciphertext to obtain the intermediate ciphertext ICT and sends the ICT to the DU.

Decrypt(GP, C, K, ICT) \rightarrow ~\boldsymbol {M} : The algorithm inputs the global parameters GP, the ciphertext components C, the key components K and the intermediate ciphertext ICT. DU decrypts the ciphertext locally and obtains the plaintext M.

TokenGen(GP, C, K, USK) \rightarrow RT: The algorithm inputs the global parameters GP, the ciphertext components C, the key components K and the user private key USK. If the revocation attribute of DU meets the revoke access policy in ciphertext and the ciphertext attribute meets the ciphertext access policy, the revoke token RT is generated for DU.

Revoke(C, K, RT) \rightarrow 1 or 0: The algorithm inputs the ciphertext components C, the key components K and ciphertext revocation token RT. If RK=RT , it is successfully revoked, output 1, otherwise output 0.

C. Security Model

In a secure ABSE scheme, the keywords index must satisfy indistinguishability security under a CKA. According to this criterion, the security model of this scheme is described as a game between attacker \mathcal {A} and challenger \mathcal {C} , where \mathcal {C} attempts to compromise security through the outputs of \mathcal {A} .

Definition:

If adversary \mathcal {A} cannot achieve a significant advantage within polynomial time, then the BAMKSE proposed in this paper provides IND-CKA security.

Initialization: \mathcal {A} sets a challenge user access policy (\mathbb {P}^{\prime },\boldsymbol {\rho }^{\prime }) and a set of challenge ciphertext attributes \boldsymbol {\Lambda }^{\prime } . \mathcal {C} runs the Setup algorithm and sends GP and USK to \mathcal {A} .

Query Phase 1: Adversary \mathcal {A} queries the following queries adaptively.

  • KeyGen Query: Adversary \mathcal {A} submits UID to challenger \mathcal {C} . \mathcal {C} runs KeyGen algorithm to generate key component K and sends them to \mathcal {A} .

  • Index Query: In this process, the adversary \mathcal {A} sends the key component K and a set of keywords collections W to the challenger \mathcal {C} . Subsequently, \mathcal {C} executes the IndexGen algorithm to generate the keywords index KI.

  • Trapdoor Query: Challenger \mathcal {C} randomly choose v \in \mathbb {Z}_{p}^{*} and executes the Trapdoor algorithm to generate the trapdoor D.

  • Challenge: Adversary \mathcal {A} chooses two unchallenged keywords sets W_{0}=w_{i_{0}},i\in [1,n] and W_{1}=w_{i_{1}},i\in [1,n] of the same length as a challenge and sends them to challenger \mathcal {C} . In the subsequent phase, \mathcal {C} randomly selects b \in \{0,1\} and executes the IndexGen algorithm to generate a challenge index I_{w_{i_{b}}}^{*}=\prod _{i=1}^{n}I_{w_{i_{b}}} with a challenge user access structure (\mathbb {P}^{\prime },\boldsymbol {\rho }^{\prime }) and a set of challenge ciphertext attributes \boldsymbol {\Lambda }^{\prime } . Finally, send the challenge index I_{w_{i_{b}}}^{*} to the adversary \mathcal {A} .

Query Phase 2: Adversary \mathcal {A} adaptively repeats the Query Phase 1, querying the trapdoor for the set of keywords other than W_{0} and W_{1} .

  • Guess: Finally, \mathcal {A} outputs b as the guessed bits b' . If b = b' , then \mathcal {A} wins the game. The advantage of winning is defined as Adv_{\mathcal {A}} = \left |{{Pr[b' = b] - \frac {1}{2}}}\right | .

SECTION V.

Concrete Scheme

The details of our scheme are described as follows.

Setup(1^{\lambda } ) \rightarrow (GP, MSK): G_{1} and G_{T} are multiplicative cyclic groups of prime order p, where g is a generator of G_{1} . Given a bilinear mapping e: G_{1} \times G_{1} \rightarrow G_{T} and two conflict-resistant hash functions H_{1}:\{0,1\}^{*} \rightarrow G_{1} ; H_{2}:\{0,1\}^{*} \rightarrow \mathbb {Z}_{p}^{*} . Then, the current leader node of blockchain randomly selects \alpha ,\beta ,\gamma \in \mathbb {Z}_{p}^{*} and computes e(g,g)^{\alpha } ,g^{\beta } ,g^{\gamma } respectively. Next, it randomly chooses three parameters \alpha _{a},\beta _{b},\gamma _{c} and generates the user private key USK=\{\alpha _{a},\beta _{b},\gamma _{c}\} , where a \in \boldsymbol {\Psi },b \in \boldsymbol {\Lambda },c \in \boldsymbol {\Omega } represent user attribute set, ciphertext attribute set and revocation attribute set respectively. Finally, the system main key MSK=\{\alpha ,\beta ,\gamma \} is kept secret by it and the global parameters GP=\{e(g,g)^{\alpha } ,g^{\beta } ,g^{\gamma } ,e,g,H_{1},H_{2}\} is made public.

KeyGen(GP, UID) \rightarrow ~\boldsymbol {K} : It embeds the ciphertext access structure (\mathbb {F},\eta) in the key. First, \mathbb {F} is a matrix with l_{1} rows and n_{1} columns. It randomly chooses a secret value to be shared and set the vector \vec {v_{1}}=(s,z_{2},z_{3},\ldots ,z_{n_{1}}) , where s,z_{2},z_{3},\cdots ,z_{n_{1}} \in \mathbb {Z}_{p}^{*} . They are used to hide the shared secret value s. Next, denote row j of the matrix by \mathbb {F}_{j} , and let \lambda _{j}=\mathbb {F}_{j} \times \vec {v_{1}} , with \lambda _{j} denoting the secret slice that each attribute is partitioned into, where j \in [{1,l_{1}}] . Finally, \mu _{j} is then chosen for each row of the matrix \mathbb {F} , where \mu _{j} \in \mathbb {Z}_{p}^{*} . The following computations are performed respectively:\begin{align*} K_{0} & = e(g,g)^{s}. \\ K_{j}^{1} & = e(g,g)^{\lambda _{j}}e(g,g)^{\beta _{\eta (j)}\mu _{j}}, K_{j}^{2} = g^{\mu _{j}}, K_{j}^{3} = g^{\beta _{\eta (j)}\mu _{j}}. \\ RK & = e(g,g)^{\chi } \cdot e(g,g)^{s}. \tag {4}\end{align*} View SourceRight-click on figure for MathML and additional features.

Create a user attribute key for the user and perform the following calculations:\begin{equation*} K_{q}=g^{\alpha _{q}} \cdot H_{1}(\textit {UID})^{\alpha _{q}}. \tag {5}\end{equation*} View SourceRight-click on figure for MathML and additional features.

Finally, the key components K=\{K_{0},\{K_{j}^{1},K_{j}^{2},K_{j}^{3}\}_{j\in [{1,l_{1}}]}, \{K_{q}\}_{q\in \boldsymbol {\Psi }},RK\} are generated and sent to the DU.

SECTION Algorithm 1

KeyGen

Input:

The global parameters GP, the user identity UID and user attribute set

Output:

The key components K DU:

1:

Send user attributes to BC BC:

2:

z \leftarrow ~\mathbb {Z}_{p}^{*}

3:

\vec {v_{1}}=(s,z_{2},z_{3},\ldots ,z_{n_{1}})

4:

K_{0} = e(g,g)^{s}

5:

for j \in [{1,l_{1}}] do

6:

\lambda _{j}=\mathbb {F}_{j} \times \vec {v_{1}}, \mu _{j}

7:

K_{j}^{1} = e(g,g)^{\lambda _{j}}e(g,g)^{\beta _{\eta (j)}\mu _{j}}

8:

K_{j}^{2} = g^{\mu _{j}} , K_{j}^{3} = g^{\beta _{\eta (j)}\mu _{j}}

9:

end for

10:

K_{q}=g^{\alpha _{q}} \cdot H_{1}(\textit {UID})^{\alpha _{q}}

11:

return K

12:

Send K to DU

Encrypt(GP, UID, USK, M, (\mathbb {P},\rho) , (\mathbb {A},\pi) , \boldsymbol {\Lambda } ) \rightarrow ~\boldsymbol {C} : It embeds the user access policy (\mathbb {P},\rho) and revocation access policy (\mathbb {A},\pi) in the ciphertext. First, \mathbb {P} is a matrix with l_{2} rows and n_{2} columns. It randomly chooses a secret value to be shared and set the vector \vec {v_{2}}=(\varphi ,x_{2},x_{3},\ldots ,x_{n_{2}})^{T} , where \varphi ,x_{2},x_{3},\cdots ,x_{n_{2}} \in \mathbb {Z}_{p}^{*} . They are used to hide the shared secret value \varphi . Next, denote row i of the matrix by \mathbb {P}_{i} , and let \vartheta _{i}=\mathbb {P}_{i} \times \vec {v_{2}} , with \vartheta _{i} denoting the secret slice that each attribute is partitioned into, where i \in [{1,l_{2}}] . Finally, \delta _{i} is then chosen for each row of the matrix \mathbb {P} , where \delta _{i} \in \mathbb {Z}_{p}^{*} . The following computations are performed respectively:\begin{align*} C_{0} & = M \cdot e(g,g)^{\varphi }. \\ C_{i}^{1} & = e(g,g)^{\vartheta _{i}}e(g,g)^{\alpha _{\rho (i)}\delta _{i}}, C_{i}^{2} = g^{\delta _{i}}, C_{i}^{3} = g^{\alpha _{\rho (i)}\delta _{i}}. \tag {6}\end{align*} View SourceRight-click on figure for MathML and additional features.

Create a ciphertext attribute key for the ciphertext and perform the following calculations:\begin{equation*} C_{t} = g^{\beta _{t}} \cdot H_{1}(\textit {UID})^{\beta _{t}}. \tag {7}\end{equation*} View SourceRight-click on figure for MathML and additional features.

The next step is to embed the revocation access policy (\mathbb {A},\pi) into the ciphertext. First, \mathbb {A} is a matrix with l_{3} rows and n_{3} columns. It randomly chooses a secret value to be shared and set the vector \vec {v_{3}}=(\chi ,y_{2},y_{3},\ldots ,y_{n_{3}})^{T} , where \chi ,y_{2},y_{3},\cdots ,x_{n_{3}} \in \mathbb {Z}_{p}^{*} . They are used to hide the shared secret value \chi . Next, denote row m of the matrix by \mathbb {A}_{m} , and let \psi _{m}=\mathbb {A}_{m} \times \vec {v_{3}} , with \psi _{m} denoting the secret slice that each attribute is partitioned into, where m \in [{1,l_{3}}] . Finally, \omega _{m} is then chosen for each row of the matrix \mathbb {A} , where \omega _{m} \in \mathbb {Z}_{p}^{*} . The following computations are performed respectively:\begin{align*} C_{m}^{1} & = e(g,g)^{\psi _{m}} e(g,g)^{\gamma _{\pi (m)}\omega _{m}}, \\ C_{m}^{2} & = g^{\omega _{m}},C_{m}^{3} = g^{\gamma _{\pi (m)}\omega _{m}}. \tag {8}\end{align*} View SourceRight-click on figure for MathML and additional features.

Create a ciphertext revocation key for the ciphertext and perform the following calculations:\begin{equation*} C_{u} = g^{\gamma _{u}} \cdot H_{1}(\textit {UID})^{\gamma _{u}}. \tag {9}\end{equation*} View SourceRight-click on figure for MathML and additional features.

Finally, the ciphertext components C=\{C_{0},\{C_{i}^{1},C_{i}^{2}, C _{i}^{3}\}_{i\in [{1,l_{2}}]},\{C_{m}^{1},C_{m}^{2},C_{m}^{3}\}_{m\in [{1,l_{3}}]},\{C_{t}\}_{t\in \boldsymbol {\Lambda }},\{C_{u}\}_{u\in \boldsymbol {\Omega }}\} are generated and uploaded to the CSP.

SECTION Algorithm 2

Encrypt

Input:

The global parameters GP, the user identity UID, plaintext M, user access policy (\mathbb {P},\rho) , revocation access policy (\mathbb {A},\pi) and the user private key USK

Output:

The ciphertext components C DO:

1:

C_{0} = M \cdot e(g,g)^{\varphi }

2:

x \leftarrow ~\mathbb {Z}_{p}^{*} , y \leftarrow ~\mathbb {Z}_{p}^{*}

3:

\vec {v_{2}}=(\varphi ,x_{2},x_{3},\ldots ,x_{n_{2}})^{T} , \vec {v_{3}}=(\chi ,y_{2},y_{3},\ldots ,y_{n_{3}})^{T}

4:

C_{0} = M \cdot e(g,g)^{\varphi }

5:

for i \in [{1,l_{2}}] do

6:

\vartheta _{i}=\mathbb {P}_{i} \times \vec {v_{2}}, \delta _{i}

7:

C_{i}^{1} = e(g,g)^{\vartheta _{i}}e(g,g)^{\alpha _{\rho (i)}\delta _{i}}

8:

C_{i}^{2} = g^{\delta _{i}}, C_{i}^{3} = g^{\alpha _{\rho (i)}\delta _{i}}

9:

end for

10:

for m \in [{1,l_{3}}] do

11:

\psi _{m}=\mathbb {A}_{m} \times \vec {v_{3}}, \omega _{m}

12:

C_{m}^{1} = e(g,g)^{\psi _{m}} e(g,g)^{\beta _{\pi (m)}\omega _{m}}

13:

C_{m}^{2} = g^{\omega _{m}},{\mathcal {C}}_{m}^{3} = g^{\beta _{\pi (m)}\omega _{m}}

14:

end for

15:

C_{t} = g^{\beta _{t}} \cdot H_{1}(\textit {UID})^{\beta _{t}} , C_{u} = g^{\gamma _{u}} \cdot H_{1}(\textit {UID})^{\gamma _{u}}

16:

return C

17:

Send C to CSP

IndexGen(GP, USK, W) \rightarrow KI: For \forall w_{i} \in W , the DO randomly selects r,r_{1} \in \mathbb {Z}_{p}^{*} , where i \in [1,n] , w_{i} is the ith keywords in W. The following computations are performed:\begin{equation*} I_{1} = g^{r_{1}}, I_{2} = g^{\beta r_{1}}, I_{3} = g^{\mu r}, I_{w_{i}} = g^{H_{2}(w_{i})\beta r}. \tag {10}\end{equation*} View SourceRight-click on figure for MathML and additional features.

Finally, the ciphertext keywords index KI=\{I_{1},I_{2},I_{3}, \{I_{w_{i}}\}_{i\in [1,n]}\} are generated and uploaded to the CSP.

SECTION Algorithm 3

IndexGen

Input:

The global parameters GP, multiple keywords set W and the user private key USK

Output:

The ciphertext keywords index KI DO:

1:

C_{0} = M \cdot e(g,g)^{\varphi }

2:

r,r_{1} \leftarrow ~\mathbb {Z}_{p}^{*}

3:

I_{1} = g^{r_{1}}, I_{2} = g^{\beta r_{1}}, I_{3} = g^{\mu r}

4:

for \forall w_{i} \in W do

5:

I_{w_{i}} = g^{H_{2}(w_{i})\beta r}

6:

end for

7:

return KI

8:

Send KI to CSP

Trapdoor(GP, USK, W^{\prime } ) \rightarrow ~\boldsymbol {D} : For \forall w_{i^{\prime }}\in W^{\prime } , the DU randomly selects v \in \mathbb {Z}_{p}^{*} , where i^{\prime } \in [1,n^{\prime }] , w_{i^{\prime }} is the ith keywords in W^{\prime } . The following computations are performed:\begin{equation*} D_{1} = g^{\beta v},D_{2} = g^{v},D_{3} = \prod _{i^{\prime }=1}^{n^{\prime }}g^{H_{2}(w_{i^{\prime }})\beta },D_{4} = g^{\mu }. \tag {11}\end{equation*} View SourceRight-click on figure for MathML and additional features.

Finally, the drapdoor D=\{D_{1},D_{2},D_{3},D_{4}\} is generated and uploaded to the CSP.

SECTION Algorithm 4

Trapdoor

Input:

The global parameters GP, set of multiple keywords W^{\prime } and the user private key USK

Output:

Drapdoor D DU:

1:

v \leftarrow ~\mathbb {Z}_{p}^{*}

2:

D_{1} = g^{\beta v},D_{2} = g^{v}

3:

I_{1} = g^{r_{1}}, I_{2} = g^{\beta r_{1}}, I_{3} = g^{\mu r}, D_{4} = g^{\mu }

4:

for \forall w_{i^{\prime }}\in W^{\prime } do

5:

D_{3} = \prod _{i^{\prime }=1}^{n^{\prime }}g^{H_{2}(w_{i^{\prime }})\beta }

6:

end for

7:

return D

Search(KI, D) \rightarrow CT or \perp : The algorithm inputs keywords index KI, trapdoor D. Upon receiving the trapdoor D from the DU, the CSP compares it with the KI that was previously saved. The keywords index encompasses n keywords, and the search trapdoor includes n^{\prime } keywords, capable of aligning with the keywords within the index, where n^{\prime } is less than n. Successful matching clearly indicates a successful search outcome. At the same time, CSP will save the corresponding ciphertext CT, otherwise returns \perp . CSP checks whether the following equation holds:\begin{equation*} e(D_{1},I_{1}) e(D_{3},I_{3}) = e(D_{2},I_{2}) e\left ({{\prod _{i=1}^{n^{\prime }}I_{w_{i}},D_{4}}}\right ). \tag {12}\end{equation*} View SourceRight-click on figure for MathML and additional features.

SECTION Algorithm 5

Search

Input:

The keywords index KI and trapdoor D

Output:

Ciphertext CT or \perp DU:

1:

Send D to CSP CSP:

2:

if e(D_{1},I_{1}) e(D_{3},I_{3}) = e(D_{2},I_{2}) e\left ({{\prod _{i=1}^{n^{\prime }}I_{w_{i}},D_{4}}}\right) then

3:

return CT

4:

else

5:

return \perp

6:

end if

Predecrypt(GP, USK, K, CT) \rightarrow ICT: If the set of ciphertext attributes \boldsymbol {\Lambda } complies with the ciphertext access policy (\mathbb {F},\eta) , and if the set of user attributes \boldsymbol {\Psi } fulfills the requirements of the user access policy (\mathbb {P},\rho) . If both are satisfied, mutual authentication between the data and the user is achieved and the CSP will pre-decrypt the ciphertext to generate the intermediate ciphertext ICT. If one is not satisfied, it cannot be decrypted.

The authentication process is as follows:

The CSP chooses h_{i} and f_{j} such that \sum h_{i}\theta _{i}=\varphi ,\sum f_{j}\lambda _{j}=s is satisfied, where i \in [{1,l_{2}}] ,j \in [{1,l_{1}}] . If such a set of h_{i} and f_{j} exists, the certification is successful. If there exist no h_{i} and f_{j} that make the above equation true, then there is no successful authentication and no pre-decryption will be performed.

The pre-decryption process is as follows:\begin{align*} ICT & = \prod _{i\in \boldsymbol {\Psi }}\left [{{\frac {C_{i}^{1}\cdot e\left ({{H_{1}(\textit {UID}),C_{i}^{3}}}\right )}{e(K_{\rho (i)},C_{i}^{2})}}}\right ]^{h_{i}} \cdot \\ & \quad \prod _{j\in \boldsymbol {\Lambda }}\left [{{\frac {K_{j}^{1}\cdot e\left ({{H_{1}(\textit {UID}),K_{j}^{3}}}\right )}{e(C_{\eta (j)},K_{j}^{2})}}}\right ]^{f_{j}} \\ & = e(g,g)^{\varphi }\cdot e(g,g)^{s}. \tag {13}\end{align*} View SourceRight-click on figure for MathML and additional features.

Finally, the CSP output the intermediate ciphertext ICT and send the ICT to the DU.

SECTION Algorithm 6

Predecrypt

Input:

The global parameters GP, the user private key USK, the key components K and ciphertext CT

Output:

The intermediate ciphertext ICT DU:

1:

Send D to CSP CSP:

2:

h_{i},f_{j} \leftarrow ~\mathbb {Z}_{p}^{*}

3:

if exist h_{i},f_{j} make \sum h_{i}\theta _{i}=\varphi ,\sum f_{j}\lambda _{j}=s then

4:

return ICT

5:

else

6:

return Unauthorized

7:

end if

Decrypt(GP, C, K, ICT) \rightarrow ~\boldsymbol {M} : The algorithm inputs the global parameters GP, the ciphertext components C, the key components K and the intermediate ciphertext ICT.

The decryption process is as follows:\begin{equation*} M=\frac {C_{0} \cdot K_{0}}{ICT}=\frac {M \cdot e(g,g)^{\varphi } e(g,g)^{s}}{e(g,g)^{\varphi }\cdot e(g,g)^{s}} \tag {14}\end{equation*} View SourceRight-click on figure for MathML and additional features.

SECTION Algorithm 7

Decrypt

Input:

The global parameters GP, the ciphertext components C, the key components K and the intermediate ciphertext ICT

Output:

The plaintext M DU:

1:

Receive ICT from CSP

2:

M=\frac {C_{0} \cdot K_{0}}{ICT}

3:

return M

TokenGen(GP, C, K, USK) \rightarrow RT: If the user attributes meet the criteria for file revoke permission. If the set of ciphertext attributes \Lambda complies with the ciphertext access policy (\mathbb {F},\eta) , and if the revocation attribute set \boldsymbol {\Omega } fulfills satisfies revocation access policy (\mathbb {A},\pi) . If both are satisfied, mutual authentication between the data and the user is achieved and the CSP will create the corresponding revocation token RT. If one is not satisfied, it cannot be decrypted. If one is not satisfied, the token cannot be generated.

The authentication process is as follows:

The CSP chooses l_{m} and f_{j} such that \sum l_{m}\psi _{m}=\chi , \sum f_{j}\lambda _{j}=s is satisfied, where m \in [{1,l_{3}}] , j \in [{1,l_{1}}] . If such a set of l_{m} and f_{j} exists, the certification is successful. If there exist no l_{m} and f_{j} that make the above equation true, then there is no successful authentication and the token cannot be generated.

The token generation process is as follows:\begin{align*} RT & = \prod _{m\in \boldsymbol {\Omega }}\left [{{\frac {C_{m}^{1}\cdot e\left ({{H_{1}(\textit {UID}),C_{m}^{3}}}\right )}{e(K_{\pi (m)},C_{m}^{2})}}}\right ]^{l_{m}} \\ & \quad \cdot \prod _{j\in \boldsymbol {\Lambda }}\left [{{\frac {K_{j}^{1}\cdot e\left ({{H_{1}(\textit {UID}),K_{j}^{3}}}\right )}{e(C_{\eta (j)},K_{j}^{2})}}}\right ]^{f_{j}} \\ & = e(g,g)^{\chi }\cdot e(g,g)^{s}. \tag {15}\end{align*} View SourceRight-click on figure for MathML and additional features.

Finally, the ciphertext revocation token RT is generated and sent to the DO.

SECTION Algorithm 8

TokenGen

Input:

The global parameters GP, the ciphertext components C, ciphertext access policy (\mathbb {F},\eta) , revocation access policy (\mathbb {A},\pi) , the key components K and the user private key USK

Output:

The revocation token RT CSP:

1:

l_{m},f_{j} \leftarrow ~\mathbb {Z}_{p}^{*}

2:

if exist l_{m},f_{j} make \sum l_{m}\psi _{m}=\chi ,\sum f_{j}\lambda _{j}=s then

3:

return RT

4:

else

5:

return Unauthorized

6:

end if

Revoke(C, K, RT) \rightarrow 1 or 0: Determine if the revocation was successful by determining if the following equation holds true:\begin{align*} RT = RK \begin{cases} 1, & \text {yes} \\ 0, & \text {otherwise} \end{cases} \tag {16}\end{align*} View SourceRight-click on figure for MathML and additional features.

After a successful revocation, the revocation ciphertext is stored in the revocation list RL.

SECTION VI.

Correctness Deduction and Security Analysis

A. Correctness Deduction

  • Correctness Deduction of Searching keywords

    The CSP assesses the match of a query ciphertext by checking if a specific equation is satisfied.\begin{equation*} e(D_{1},I_{1})e(D_{3},I_{3}) = e(D_{2},I_{2})e\left ({{\prod _{i=1}^{n^{\prime }}I_{w_{i}},D_{4}}}\right ).\end{equation*} View SourceRight-click on figure for MathML and additional features.

    Initially, one can compute the left side of the equation as described below:\begin{equation*} e(D_{1},I_{1})e(D_{3},I_{3}) = e(g^{\beta v},g^{r_{1}})e\left ({{\prod _{i^{\prime }=1}^{n^{\prime }}g^{H_{2}\left ({{w_{i^{\prime }}}}\right )\beta },g^{\mu r}}}\right ).\end{equation*} View SourceRight-click on figure for MathML and additional features.

    Subsequently, the right side of the equation can be determined through the calculation outlined next:\begin{equation*} e(D_{2},I_{2})e\left ({{\prod _{i=1}^{n^{\prime }}I_{w_{i}},D_{4}}}\right )\!=\!e(g^{v},g^{\beta r_{1}})e\left ({{\prod _{i=1}^{n^{\prime }}g^{H_{2}(w_{i})\beta r},g^{\mu }}}\right ).\end{equation*} View SourceRight-click on figure for MathML and additional features.It can be verified that the equation holds.

  • Correctness Deduction of Pre-descryption\begin{align*} ICT & = \prod _{i\in \boldsymbol {\Psi }}\left [{{\frac {C_{i}^{1}\cdot e\left ({{H_{1}(\textit {UID}),C_{i}^{3}}}\right )}{e(K_{\rho (i)},C_{i}^{2})}}}\right ]^{h_{i}} \cdot \\ & \quad \prod _{j\in \boldsymbol {\Lambda }}\left [{{\frac {K_{j}^{1}\cdot e\left ({{H_{1}(\textit {UID}),K_{j}^{3}}}\right )}{e(C_{\eta (j)},K_{j}^{2})}}}\right ]^{f_{j}} \\ & = e(g,g)^{\varphi }\cdot e(g,g)^{s}. \tag {17}\end{align*} View SourceRight-click on figure for MathML and additional features.

    Substituting C_{i}^{1} = e(g,g)^{\vartheta _{i}}e(g,g)^{\alpha _{\rho (i)}\delta _{i}} , C_{i}^{2} = g^{\delta _{i}} , C_{i}^{3} = g^{\alpha _{\rho (i)}\delta _{i}} , K_{j}^{1}=e(g,g)^{\lambda _{j}}e(g,g)^{\beta _{\eta (j)}\mu _{j}} , K_{\rho (i)}=g^{\alpha _{\rho (i)}} \cdot H_{1}(\textit {UID})^{\alpha _{\rho (i)}} , K_{j}^{3} = g^{\beta _{\eta (j)}\mu _{j}} , K_{j}^{2} = g^{\mu _{j}} and C_{\eta (j)} = g^{\beta _{\eta (j)}} \cdot H_{1}(\textit {UID})^{\beta _{\eta (j)}} into equation (17) yields the final result e(g,g)^{\varphi } \cdot e(g,g)^{s} .

  • Correctness Deduction of Revocation\begin{align*} RT & = \prod _{m\in \boldsymbol {\Omega }}\left [{{\frac {C_{m}^{1}\cdot e\left ({{H_{1}(\textit {UID}),C_{m}^{3}}}\right )}{e(K_{\pi (m)},C_{m}^{2})}}}\right ]^{l_{m}} \cdot \\ & \quad \prod _{j\in \boldsymbol {\Lambda }}\left [{{\frac {K_{j}^{1}\cdot e\left ({{H_{1}(\textit {UID}),K_{j}^{3}}}\right )}{e(C_{\eta (j)},K_{j}^{2})}}}\right ]^{f_{j}} \\ & = e(g,g)^{\chi }\cdot e(g,g)^{s}. \tag {18}\end{align*} View SourceRight-click on figure for MathML and additional features.

Substituting C_{m}^{1} = e(g,g)^{\psi _{m}} e(g,g)^{\gamma _{\pi (m)}\omega _{m}} , C_{m}^{2} = g^{\omega _{m}} , C_{m}^{3} = g^{\gamma _{\pi (m)}\omega _{m}} , C_{\pi (m)} = g^{\gamma _{\pi (m)}} \cdot H_{1}(\textit {UID})^{\gamma _{\pi (m)}} , K_{j}^{1} = e(g,g)^{\lambda _{j}}e(g,g)^{\beta _{\eta (j)}\mu _{j}} , K_{j}^{2} = g^{\mu _{j}} , K_{j}^{3} = g^{\beta _{\eta (j)}\mu _{j}} and C_{\eta (j)} = g^{\beta _{\eta (j)}} \cdot H_{1}(\textit {UID})^{\beta _{\eta (j)}} into equation (18) yields the final result e(g,g)^{\chi } \cdot e(g,g)^{s} .

B. Security Analysis

Definition 3:

If the DL problem proves to be challenging, the index keywords in the scheme of this paper meets the security criteria for IND-CKA.

Proof:

Adversary \mathcal {A} aims to compromise the security of keywords ciphertext, while the challenger \mathcal {C} addresses the DL problem by building the algorithms. Suppose that \mathcal {A} can win the safety game with a non-negligible advantage \varepsilon . Then, \mathcal {C} has a non-negligible advantage \varepsilon /2 to solve the DL problem. Given an instance of a DL problem (g,g^{a},g^{b},g^{ac_{1}},g^{bc_{2}},Q=g^{c_{1}+c_{2}}) , where a,b,c_{1},c_{2},Z\in \mathbb {Z}_{p}^{*} . When \varpi =0 , Q=g^{c_{1}+c_{2}} . When \varpi =1 , Q=g^{Z} .

Initialization: \mathcal {A} defines a challenge user access policy (\mathbb {P}^{\prime },\boldsymbol {\rho }^{\prime }) and a set of challenge ciphertext attributes \boldsymbol {\Lambda }^{\prime } . Challenger \mathcal {C} runs the Setup algorithm in this scheme and sends the global parameters GP and the user private key USK to \mathcal {A} .

Query Phase 1: The adversary \mathcal {A} queries the following queries adaptively.

KeyGen Query: The adversary \mathcal {A} submits UID to challenger \mathcal {C} . \mathcal {C} runs KeyGen algorithm to generate key components K and sends K to \mathcal {A} .

Index Query: In this process, the adversary \mathcal {A} sends the key components K and a set of keywords collections W to the challenger \mathcal {C} . Subsequently, \mathcal {C} executes the IndexGen algorithm to generate the keywords index KI.

Trapdoor Query: The challenger \mathcal {C} randomly chooses v \in \mathbb {Z}_{p}^{*} and executes the Trapdoor algorithm to generate the trapdoor D. \mathcal {C} sends D to \mathcal {A} .

Challenge: The adversary \mathcal {A} chooses two unchallenged keywords sets W_{0}=w_{i_{0}} and W_{1}=w_{i_{1}} , i \in [1,n] of the same length as a challenge and sends them to challenger \mathcal {C} . In the subsequent phase, \mathcal {C} randomly selects b \in \{0,1\} and executes the IndexGen algorithm to generate a challenge index {I_{w_{i_{b}}}}^{*}=\prod _{i=1}^{n}{I_{w_{i_{b}}}}= g^{(H_{2}(w_{1_{b}}+w_{2_{b}}+\ldots +w_{n_{b}}))\beta r} with a challenge user access policy (\mathbb {P}^{\prime },\boldsymbol {\rho }^{\prime }) and a set of challenge ciphertext attributes \boldsymbol {\Lambda }^{\prime } . Finally, send the challenge index I_{w_{i_{b}}}^{*} to the adversary \mathcal {A} .

The strengths of \mathcal {A} are analyzed as follows:

When \varpi =0 , Q=g^{c_{1}+c_{2}} . We define a=\beta r , b=\beta , c_{1}=H_{2}(w_{1})+H_{2}(w_{2})+\cdots +H_{2}(w_{n}) and c_{2}=H_{2}(w_{1})+H_{2}(w_{2})+\cdots +H_{2}(w_{n^{\prime }}) . Then, I_{w_{i_{b}}}^{*}=g^{c_{1}a} , D_{3}=g^{c_{2}b} . When \varpi =1 , Q=g^{Z} . As a result of the randomness of Z, the index remains unpredictable to the adversary \mathcal {A} and does not reveal any information about b.

Query Phase 2: The dversary \mathcal {A} adaptively repeats the Query Phase 1, querying the trapdoor for the set of keywords other than W_{0} and W_{1}

Guess: Finally, \mathcal {A} outputs b of the guess bits b^{\prime } . In the game, let the advantage of winning be defined as Adv_{\mathcal {A}}=|Pr[b^{\prime }=b]-1/2|=\varepsilon . If this advantage \varepsilon is negligible, then this program is considered CKA safe.

The advantage of \mathcal {C} in the security game to successfully crack the DL problem is:\begin{align*} Adv& =1/2(\Pr [\mathcal {C}(g,g^{a},g^{b},g^{ac_{1}},g^{bc_{2}},Q=g^{c_{1}+c_{2}})=0]) \\ & \quad +\Pr [\mathcal {C}(g,g^{a},g^{b},g^{ac_{1}},g^{bc_{2}},Q=g^{Z})=0]-1/2 \\ & =1/2\left ({{1/2+\varepsilon +1/2}}\right .)-1/2=\varepsilon /2. \tag {19}\end{align*} View SourceRight-click on figure for MathML and additional features.

Given the difficult nature of the DL problem, it is reasonable to infer that any \mathcal {A} has a negligible advantage \varepsilon /2 in breaking our scheme. In other words, the probability of an adversary \mathcal {A} realizing a keywords security attack in the face of our scheme is extremely low, ensuring the robustness of our scheme with respect to selected security metrics.

Definition 4:

If the DBDH problem is hard, then the BAMKSE scheme is secure under CPA.

Proof:

Suppose that adversary \mathcal {A} can win the safety game with a non-negligible advantage \varepsilon . Then, challenger \mathcal {C} has a non-negligible advantage \varepsilon /2 to solve the DBDH. Given an instance of a DBDH (g,g^{a},g^{b},g^{c},Z) , where a,b,c,Z\in \mathbb {Z}_{p}^{*} . When \varpi =0 , Q=e(g,g)^{abc} . When \varpi =1 , Q=Z .

Query Phase 1: The adversary \mathcal {A} queries the following queries adaptively.

Encrypt Query: The adversary \mathcal {A} submits plaintext M to challenger \mathcal {C} . \mathcal {C} runs Encrypt algorithm to generate ciphertext components C and sends C to \mathcal {A} . The challenge attributes used for encryption do not satisfy the access policy.

Challenge: The adversary \mathcal {A} chooses two plaintext of equal length M_{0} and M_{1} . M_{b} is sent to challenger \mathcal {C} . \mathcal {C} randomly selects b \in \{0,1\} and executes the Encrypt algorithm to generate a challenge ciphertext C^{*} with a challenge user access policy (\mathbb {P}^{\prime },\boldsymbol {\rho }^{\prime }) and a set of challenge ciphertext attributes \boldsymbol {\Lambda }^{\prime } . Finally, send the challenge ciphertext C^{*} to the adversary \mathcal {A} .

Query Phase 2: The adversary \mathcal {A} adaptively repeats the Query Phase 1, querying the plaintext other than M_{0} and M_{1} . Similarly, \mathcal {A} cannot query the ciphertext encrypted with attributes that meet the access policy.

Guess: Finally, \mathcal {A} outputs b of the guess bits b^{\prime } . If b^{\prime }=b , \varpi =0 , then Q=e(g,g)^{abc} . The tuple received by \mathcal {C} is (g,g^{a},g^{b},g^{c},Q=e(g,g)^{abc}) . Otherwise, \varpi =1 , the tuple received by \mathcal {C} is (g,g^{a},g^{b},g^{c},Q=Z) . When b^{\prime }=b , Adv_{\mathcal {A}}=|Pr[b^{\prime }=b]-1/2|=\varepsilon . When b=0 , let the advantage of winning be defined as Adv_{\mathcal {A}}=Pr[b^{\prime }=b| b=0]=1/2+\varepsilon . When b=1 , Adv_{\mathcal {A}}=Pr[b^{\prime }=b| b=1]=1/2 .

The advantage of \mathcal {C} in the security game to successfully crack the DBDH is:\begin{align*} Adv & = \Pr [\mathcal {C}(b^{\prime }=b)] - \frac {1}{2} \\ & = \frac {1}{2} \left ({{ \Pr [\mathcal {C}(b^{\prime }=b \mid b=1)] }}\right ) \\ & \quad + \frac {1}{2} \left ({{ \Pr [\mathcal {C}(b^{\prime }=b \mid b=0)] }}\right ) - \frac {1}{2} \\ & = \frac {\varepsilon }{2} \tag {20}\end{align*} View SourceRight-click on figure for MathML and additional features.

If \mathcal {A} can solve the proposed scheme with a non-negligible advantage \varepsilon in PPT, then \mathcal {C} can solve the DBDH problem with a non-negligible advantage \varepsilon /2 . However, DBDH is difficult, so this scheme can be backderived as IND-CPA safe.

SECTION VII.

Performance Analysis

A. Theoretical Storage Costs Comparison

The length of the element in G_{1} can be defined as \lvert G \rvert . Total number of keywords can be defined as d. \lvert G_{T} \rvert indicates the length of the element in G_{T} . \lvert S \rvert represents the number of attributes owned by a user in the system. The number of search terms submitted by the user can be defined as t. Table 3 gives the theoretical storage costs comparison.

TABLE 3 Theoretical Storage Costs Comparison
Table 3- Theoretical Storage Costs Comparison

B. Theoretical Computation Costs Comparison

Let T_{e} represents the time taken for the exponential operation in the group, and T_{p} denote the computation time for bilinear pairing. The encryption, index generation, trapdoor generation, search and decryption phase algorithm primarily incur theoretical computational costs, as detailed in Table 4.

TABLE 4 Theoretical Computation Costs Comparison
Table 4- Theoretical Computation Costs Comparison

C. Comparison of Time Complexity

In Table 5, we compare and analyze the time complexity of BAMKSE against other schemes. Here, n represents the number of attributes, k denotes the number of keywords, and k' indicates the number of keywords to be searched by the DU. As observed from Table 5, the overall time complexity of our BAMKSE algorithm is relatively low.

TABLE 5 Comparison of Time Complexity
Table 5- Comparison of Time Complexity

SECTION VIII.

Experiments

To evaluate the effectiveness of the scheme introduced in this study and to compare it with existing approaches from the literature, we performed a range of simulation tests. These tests were carried out using the Charm-Crypto library within the Python environment, Hyperledger Fabric 22.5.0. The simulations ran on the PyCharm, operating on an Ubuntu 16 OS. In the experiment, the bilinear pairing library utilized is based on a 512-bit elliptic curve group of Type A.

We compare our scheme with three others in terms of encryption, index generation, trapdoor generation, and decryption. Meanwhile, we also specifically compare the time cost of the phase of token generation with scheme [11], as the other schemes do not involve this phase. Since the other three schemes do not mention revocation processes, we only provide a performance analysis of revocation for our scheme.

Fig. 5a illustrates the encryption time as a function of the number of attributes for four different schemes. As shown in Fig. 5a, the encryption time for all four schemes is directly proportional to the number of attributes. However, the schemes in [8] and [11] are directly related to the number of pairing operations T_{p} , whereas our scheme is associated with the exponential operation T_{e} . Since our scheme incorporates two secret values in the ciphertext, this results in a slightly higher time cost during the encryption phase. Nonetheless, it is still lower than that of [8] and [11].

FIGURE 5. - Comparison of time overhead of different schemes.
FIGURE 5.

Comparison of time overhead of different schemes.

Fig. 5b depicts the variation in index generation time for four different schemes as the number of attributes increases. The performance of schemes [8] and [11] is notably inferior in this area. As detailed in Table 4, the index generation time for these schemes is directly proportional to the number of attributes. Both scheme [21] and our scheme show improved performance. However, our scheme benefits from a relatively mild increase in time cost with the addition of more attributes, suggesting that it offers superior efficiency.

Fig. 5c illustrates the variation in trapdoor generation times as a function of the number of attributes, while the number of keywords remains constant. In schemes [8] and [11], the generation time for trapdoors is directly linked to the number of attributes, which results in a significantly faster increase in time costs as attributes accumulate. In contrast, schemes [21] and our scheme demonstrate more efficient performance in this metric. According to Table 4, the process of generating trapdoors in both our scheme and [21] is not influenced by the number of attributes but depends solely on the number of keywords. Hence, with the number of keywords held steady, our scheme shows superior efficiency in this area.

Fig. 5d showcases the decryption performance of four schemes during the decryption phase. Although scheme [21] utilizes edge nodes to assist with decryption, the time cost of decryption still increases with the number of attributes. Similarly, the decryption time for schemes [8] and [11] also escalates as the number of attributes increases, imposing a significant computational burden on the user’s end for decryption. Despite the fact that the decryption time in our scheme also rises with an increase in attribute numbers when performed in the cloud, the time cost remains essentially unchanged when decrypting intermediate ciphertexts at the user end. This is because the decryption process at the user end is independent of the number of attributes and complex pairing operations, significantly reducing the decryption load on the user.

Fig. 6a demonstrates the performance comparison of the token generation algorithms between our scheme and [11]. The figure clearly shows that the time cost of generating revocation tokens in our scheme is lower than that of generating decryption tokens in scheme [11]. Fig. 6b reveals the time cost for the CSP to match the RT with the RK upon receiving the RT. The generation of tokens is dependent on the number of attributes, and as the number of attributes increases, so does the time cost. Both of these processes are executed by the CSP, and the computational stress is manageable. The time expenditure is also acceptable for typical DUs and can significantly enhance the security of the scheme. Fig. 6c illustrates the total on-chain time overhead of the BAMKSE. We define the total time overhead as comprising two parts. The first part is the time taken for the blockchain to generate attribute keys for DU when the DU joins the system and sends its attributes to the blockchain. The second part is the time required for the blockchain to return the generated keys to the DU via a secure channel. It can be observed that the increase in time overhead is not linear. After the number of nodes exceeds 140, the total on-chain time overhead starts to increase at a faster rate. This is due to the additional burden required to maintain synchronization across a large number of nodes.

FIGURE 6. - Comparison of time overhead.
FIGURE 6.

Comparison of time overhead.

SECTION IX.

Discussion and Conclusion

In this paper, we propose BAMKSE, a blockchain-assisted multi-keyword searchable encryption scheme that seamlessly integrates ciphertext policy and key policy. BAMKSE not only facilitates multi-keyword search functionality but also ensures lightweight decryption for users. By harnessing blockchain technology, we effectively address the challenge of a single-point of failure. Considering the resource constraints of IoT devices, the bulk of computational tasks are delegated to CSP, streamlining the decryption process for end-users. Furthermore, our thorough correctness proofs and security analysis attest to the robustness of BAMKSE in a cloud environment. Comparative experiments validate the efficiency and viability of our approach. At the same time, the introduction of blockchain also brings some undesirable tradeoffs, such as the trade-off between security and decentralization, privacy and transparency. Decentralized blockchains can improve system security and reduce the risk of a single point of failure. But decentralization also means that there is no central authority, which greatly increases the complexity of system security management. In our solution, we introduce blockchain to generate and distribute keys, and a large number of other computing tasks are placed in the cloud, which greatly reduces the burden on the blockchain. The parameters generated by the blockchain need to be directly uploaded to the chain transparently and openly, and the user’s private key is returned to the user through a secure channel. Looking ahead, our focus will be on enhancing keyword search capabilities and implementing faster retrieval features, such as fuzzy keyword search and encrypted search using inverted indexing, to meet the evolving needs of practical applications.

References

References is not available for this document.