<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">73935</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2025.073935</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Toward Secure and Auditable Data Sharing: A Cross-Chain CP-ABE Framework</article-title>
<alt-title alt-title-type="left-running-head">Toward Secure and Auditable Data Sharing: A Cross-Chain CP-ABE Framework</alt-title>
<alt-title alt-title-type="right-running-head">Toward Secure and Auditable Data Sharing: A Cross-Chain CP-ABE Framework</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Tian</surname><given-names>Ye</given-names></name><xref ref-type="aff" rid="aff-1">1</xref><email>tianye@tynu.edu.cn</email></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western"><surname>Fan</surname><given-names>Zhuokun</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Zhang</surname><given-names>Yifeng</given-names></name><xref ref-type="aff" rid="aff-2">2</xref></contrib>
<aff id="aff-1"><label>1</label><institution>College of Computer Science and Technology, Taiyuan Normal University</institution>, <addr-line>Jinzhong, 030619</addr-line>, <country>China</country></aff>
<aff id="aff-2"><label>2</label><institution>State Grid Shanxi Electric Power Research Institute</institution>, <addr-line>Taiyuan, 030001</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Ye Tian. Email: <email>tianye@tynu.edu.cn</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2026</year>
</pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>10</day><month>2</month><year>2026</year>
</pub-date>
<volume>87</volume>
<issue>1</issue>
<elocation-id>62</elocation-id>
<history>
<date date-type="received">
<day>28</day>
<month>09</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>26</day>
<month>11</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2026 The Authors.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Published by Tech Science Press.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_73935.pdf"></self-uri>
<abstract>
<p>Amid the increasing demand for data sharing, the need for flexible, secure, and auditable access control mechanisms has garnered significant attention in the academic community. However, blockchain-based ciphertext-policy attribute-based encryption (CP-ABE) schemes still face cumbersome ciphertext re-encryption and insufficient oversight when handling dynamic attribute changes and cross-chain collaboration. To address these issues, we propose a dynamic permission attribute-encryption scheme for multi-chain collaboration. This scheme incorporates a multi-authority architecture for distributed attribute management and integrates an attribute revocation and granting mechanism that eliminates the need for ciphertext re-encryption, effectively reducing both computational and communication overhead. It leverages the InterPlanetary File System (IPFS) for off-chain data storage and constructs a cross-chain regulatory framework&#x2014;comprising a Hyperledger Fabric business chain and a FISCO BCOS regulatory chain&#x2014;to record changes in decryption privileges and access behaviors in an auditable manner. Security analysis shows selective indistinguishability under chosen-plaintext attack (sIND-CPA) security under the decisional q-Parallel Bilinear Diffie-Hellman Exponent Assumption (q-PBDHE). In the performance and experimental evaluations, we compared the proposed scheme with several advanced schemes. The results show that, while preserving security, the proposed scheme achieves higher encryption/decryption efficiency and lower storage overhead for ciphertexts and keys.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Data sharing</kwd>
<kwd>blockchain</kwd>
<kwd>attribute-based encryption</kwd>
<kwd>dynamic permissions</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>With the advent of the digital era, data sharing has emerged as a crucial driver of cross-industry collaboration and efficiency enhancement, particularly in sectors such as healthcare, finance, and the Internet of Things, where cross-organizational data exchange has become routine [<xref ref-type="bibr" rid="ref-1">1</xref>]. The frequent circulation of sensitive information necessitates stricter security. In privacy protection, users expect fine-grained control over access rights to prevent unauthorized access and abuse [<xref ref-type="bibr" rid="ref-2">2</xref>]. Traditional centralized storage, although convenient to manage, faces single-point failures, susceptibility to attack, and risks of tampering, making it unsuitable for complex, high-sensitivity sharing scenarios [<xref ref-type="bibr" rid="ref-3">3</xref>].</p>
<p>Against this backdrop, blockchain&#x2014;a decentralized, immutable, and traceable ledger&#x2014;is widely recognized as an emerging solution for securing data sharing [<xref ref-type="bibr" rid="ref-4">4</xref>,<xref ref-type="bibr" rid="ref-5">5</xref>]. When combined with distributed storage systems (e.g., InterPlanetary File System IPFS), it improves availability while strengthening integrity and trustworthiness [<xref ref-type="bibr" rid="ref-6">6</xref>,<xref ref-type="bibr" rid="ref-7">7</xref>]. In terms of access control, attribute-based encryption (ABE) has become a key encryption technology for ensuring data privacy because it supports flexible encryption mechanisms based on user attributes [<xref ref-type="bibr" rid="ref-8">8</xref>]. In particular, ciphertext-policy attribute-based encryption (CP-ABE) allows data owners to embed access policies directly into ciphertext, ensuring that only authorized users can decrypt the data [<xref ref-type="bibr" rid="ref-9">9</xref>]. This mechanism has been widely applied to fine-grained access control and privacy protection. With the rise of blockchain, blockchain-based CP-ABE schemes have attracted increasing attention and become an important research direction for constructing trustworthy data-sharing mechanisms.</p>
<p>Nevertheless, current blockchain-based CP-ABE schemes still have several limitations. First, many schemes rely on centralized Attribute Authorities (AAs), which create single points of failure and abuse of authority. Second, existing solutions lack an effective combination of attribute revocation and granting mechanisms and generally rely on ciphertext re-encryption, resulting in high computational and communication costs that are difficult to meet in blockchain environments with limited resources. Furthermore, most solutions adopt a single-chain architecture [<xref ref-type="bibr" rid="ref-10">10</xref>] and lack on-chain and off-chain coordination, making it difficult to support complex scenarios where data circulation and regulation oversight exist simultaneously.</p>
<p>In response to these shortcomings, we propose a dynamic permission attribute encryption scheme under multi-chain collaboration, which supports multi-institution attribute management and dynamic permission updates. The main contributions include:
<list list-type="bullet">
<list-item>
<p>We designed a dynamic attribute revocation and granting mechanism without ciphertext updates, eliminating the computational burden of frequent re-encryption in traditional solutions and enabling more fine-grained and dynamic permission management.</p></list-item>
<list-item>
<p>We constructed a multi-authority collaborative key-generation mechanism that allows multiple AAs to distribute and manage user keys independently, enhancing security and flexibility while mitigating single-authority concentration risk.</p></list-item>
<list-item>
<p>We designed a multi-chain CP-ABE access-control framework based on Hyperledger Fabric, FISCO BCOS, and IPFS in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>, supporting structured auditing and traceability of user decryption behavior and dynamic attribute management operations.</p>
</list-item>
</list></p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Multi-chain collaborative CP-ABE access control scheme</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-1.tif"/>
</fig>
</sec>
<sec id="s2">
<label>2</label>
<title>Related Work</title>
<p>CP-ABE has become a key technology for safeguarding data privacy, owing to its unique advantages in data access control. However, traditional CP-ABE schemes typically rely on centralized authorities, leading to over-centralized privilege management in large-scale systems. To overcome this limitation, researchers have proposed Multi-Authority CP-ABE (MA-CP-ABE) [<xref ref-type="bibr" rid="ref-11">11</xref>&#x2013;<xref ref-type="bibr" rid="ref-15">15</xref>], which distributes attribute management across multiple Attribute Authorities (AA) to avoid single-point failures. As user privileges evolve, attribute revocation becomes essential for fine-grained access control. Revocation mechanisms can be categorized into user-level and attribute-level revocation. User-level revocation [<xref ref-type="bibr" rid="ref-16">16</xref>] revokes all attribute authorizations once a user loses access rights. Although this approach is simple and direct, it can result in over-restriction of permissions. By contrast, attribute-level revocation [<xref ref-type="bibr" rid="ref-17">17</xref>&#x2013;<xref ref-type="bibr" rid="ref-19">19</xref>] targets only specific attributes affected by privilege changes. This method improves fine-grained access control but introduces higher computational complexity.</p>
<p>To further enhance security and decentralization, blockchain has been integrated with CP-ABE. Ren et al. [<xref ref-type="bibr" rid="ref-20">20</xref>] developed a blockchain-based distributed key management system combined with Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs), which eliminates single points of failure while protecting access policy privacy, though it does not address attribute revocation. Guo et al. [<xref ref-type="bibr" rid="ref-21">21</xref>] proposed blockchain-aided ABE with escrow-free (BC-ABE-EF) in a consortium chain setting, achieving no key escrow and immediate user revocation. Despite solving key-escrow issues, it still relies on periodic group-key updates and ciphertext re-encryption, incurring significant computation and communication overhead. To reduce update overhead, Li and Qi [<xref ref-type="bibr" rid="ref-22">22</xref>] introduced a pre-decryption mechanism combined with an attribute revocation list, enabling real-time on-chain revocation. However, their approach imposes a fixed upper limit on attribute sets, limiting its scalability in large-scale environments. More recently, Thakur et al. [<xref ref-type="bibr" rid="ref-23">23</xref>] presented the Blockchain-based CP-ABE (BloCPABE) scheme, embedding revocation tags into attribute keys to achieve immediate revocation and anonymous key generation within a blockchain framework.</p>
<p>In addition to security, researchers have sought to improve data-sharing efficiency by reducing blockchain&#x2019;s high storage costs. One approach integrates IPFS with blockchain [<xref ref-type="bibr" rid="ref-24">24</xref>&#x2013;<xref ref-type="bibr" rid="ref-26">26</xref>]. In such designs, where blockchain stores only data indexes and audit records, while the actual data are stored on IPFS, reducing on-chain storage demands without compromising immutability. However, as application scenarios expand and requirements grow more complex, single blockchain networks increasingly face challenges in scalability, performance, and cross-organizational collaboration [<xref ref-type="bibr" rid="ref-27">27</xref>]. Consortium blockchains, such as Hyperledger Fabric, have emerged as important solutions owing to their advantages in channel management, chaincode control, and private data collection [<xref ref-type="bibr" rid="ref-28">28</xref>]. Meanwhile, the &#x201C;Data islands&#x201D; phenomenon across heterogeneous blockchains has become more pronounced. To address this, cross-chain technologies have emerged: Cosmos [<xref ref-type="bibr" rid="ref-29">29</xref>] and Polkadot [<xref ref-type="bibr" rid="ref-30">30</xref>] enable efficient interoperability via heterogeneous-chain protocols, in parallel, domestic research efforts such as WeCross are drawing growing attention from the academic community.</p>
<p>Despite notable progress in access control and privacy protection, important gaps remain. First, most CP-ABE revocation approaches still rely on key updates and ciphertext re-encryption, imposing heavy computational and storage burdens. Moreover, they do not fully integrate dynamic attribute revocation and granting without ciphertext updates. Second, most blockchain-based CP-ABE schemes use single-chain architectures and provide limited support for multi-chain environments, cross-chain data sharing and coordinated auditing remain unresolved.</p>
<p>In order to tackle these problems, we design a dynamic permission attribute-encryption scheme under multi-chain collaboration, integrating a multi-authority mechanism to improve security, flexibility, and scalability.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>Preliminaries</title>
<sec id="s3_1">
<label>3.1</label>
<title>Blockchain Technology and Cross-Chain Communication</title>
<p>Blockchain is a type of distributed ledger technology (DLT) that operates as a decentralized, jointly maintained database where network participants contribute to and manage records. The blockchain system uses digital signatures and encryption algorithms to generate blocks containing data and relies on a consensus mechanism to ensure the majority approval of the participating nodes, making the data secure, safe, and unforgeable. Depending on node access permissions, blockchains are categorized as public, consortium, or private. Constrained by their architectural design, single blockchain systems cannot efficiently exchange data and value with other chains, leading to the so-called &#x201C;data-island&#x201D; effect. In order to solve this problem, cross-chain technology has emerged, providing a chain-to-chain communication protocol to enable secure, trustworthy, and efficient data and asset interaction across different chains.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>CP-ABE</title>
<p>CP-ABE, embeds an access policy directly into the ciphertext, allowing data owners to define flexible access control rules. Unlike traditional identity-based encryption, CP-ABE determines decryption eligibility by matching a user&#x2019;s attribute set against the embedded policy, plaintext can only be successfully restored when the user attributes meet the policy. This scheme typically comprises four fundamental algorithms:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mi>S</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>: A trusted authority defines the <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> and generates the <italic>PP</italic> and <italic>MK</italic>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>K</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>S</mml:mi><mml:mi>K</mml:mi></mml:math></inline-formula>: Given <italic>PP</italic>, <italic>MK</italic>, and <italic>S</italic>, this algorithm outputs the corresponding <italic>SK</italic>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula>: With <italic>PP</italic>, an access policy <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula>, and plaintext data as inputs, this algorithm outputs the ciphertext (<italic>CT</italic>).</p></list-item>
<list-item>
<p><inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>D</mml:mi><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>a</mml:mi></mml:math></inline-formula>: Given <italic>PP</italic> and <italic>SK</italic>, this algorithm attempts to recover the plaintext from <italic>CT</italic>, successful decryption occurs only if the user&#x2019;s attributes satisfy the policy.</p></list-item>
</list></p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Bilinear Pairings</title>
<p><list list-type="bullet">
<list-item>
<p>Define <inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> as multiplicative cyclic groups, they are all prime order <italic>p</italic>, <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> are the generators. We define: <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi>e</mml:mi><mml:mo>&#x003A;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, which satisfies the following properties:</p></list-item>
<list-item>
<p>Bilinearity: <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mtext>g</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mtext>G</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>b</mml:mtext></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula><inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mrow><mml:mtext>g</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>a</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msubsup><mml:mrow><mml:mtext>g</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>b</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mrow><mml:mtext>g</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mrow><mml:mtext>g</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mtext>ab</mml:mtext></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>Non-degeneracy: <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2260;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>Computability: <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:msub><mml:mrow><mml:mtext>g</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mtext>g</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>,there exists an efficient polynomial-time algorithm to compute <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list></p>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>Linear Secret Sharing Schemes (LSSS)</title>
<p>Assume that an access structure <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula> converts an <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:mi>l</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula> matrix <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>M</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and a mapping function <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:mrow><mml:mi mathvariant="normal">&#x03C1;</mml:mi></mml:mrow><mml:mo>&#x003A;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo></mml:mrow><mml:mo>&#x2026;</mml:mo><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mrow><mml:mtext>l</mml:mtext></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula>, where each row of the <italic>M</italic> is mapped to an attribute, <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:mrow><mml:mi mathvariant="normal">&#x03C1;</mml:mi></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>i</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula>. A random vector <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msubsup><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> is chosen, <italic>s</italic> represents the value of the shared secret. The share of row <italic>i</italic> is computed as <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mi>l</mml:mi><mml:mo>}</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>. During decryption, if the user&#x2019;s attribute set <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mi>S</mml:mi><mml:mo>&#x2286;</mml:mo><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula> satisfies <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula>, a set of reconstruction coefficients <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> exists, making <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mn>0</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x003A;</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mi>S</mml:mi><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. Thus, the user can recover the secret by computing <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>s</mml:mi></mml:math></inline-formula>.</p>
</sec>
<sec id="s3_5">
<label>3.5</label>
<title>Decisional q-Parallel Bilinear Diffie-Hellman Exponent Assumption(q-PBDHE)</title>
<p>Define <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> as multiplicative cyclic groups, they are all prime order <italic>P</italic>. <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> be the generators. <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:mi>e</mml:mi><mml:mo>&#x003A;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is bilinear mapping. Define <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:mover><mml:mi>Y</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>q</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The challenge is to distinguish whether <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mi>Z</mml:mi><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> or <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mi>Z</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. The advantage of an adversary <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> is given by:
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:msubsup><mml:mrow><mml:mtext>Adv</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>PBDHE</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mover><mml:mi>Y</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>Z</mml:mi><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msup><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x2212;</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mover><mml:mi>Y</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>Z</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>|</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>If for all probabilistic polynomial-time (PPT) <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:msubsup><mml:mrow><mml:mtext>Adv</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mtext>BDHE</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>&#x2264;</mml:mo><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow></mml:math></inline-formula> is negligible, then the <italic>q</italic>-PBDHE is said to hold in group <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>System Model</title>
<sec id="s4_1">
<label>4.1</label>
<title>System Architecture</title>
<p>To enable dynamic access control for data sharing and regulatory auditing, we propose an integrated architecture that combines on-chain and off-chain collaboration with dynamic attribute-based encryption, as shown in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>. The architecture is composed of the Hyperledger Fabric business chain, the FISCO BCOS regulatory chain, IPFS, and an off-chain encryption module. These components provide secure data storage, flexible authorization, auditable record-keeping, and fine-grained access control. The system model involves six core participant categories:</p>
<p><list list-type="bullet">
<list-item>
<p>Central Authority (CA): Initializes the system and generates global public parameters.</p></list-item>
<list-item>
<p>Attribute Authority (AA): Independently manages attributes by category. Each AA issues user attributes with private keys for its managed attributes and supports attribute revocation and granting.</p></list-item>
<list-item>
<p>Data Owner (DO): Responsible for processing raw data, setting access policies, uploading attribute ciphertexts, etc. to the business chain after hybrid encryption.</p></list-item>
<list-item>
<p>Data User (DU): Holds a set of attributes and obtains attribute private keys from the relevant AAs. Using these keys, the DUs decrypt and access data stored on the regulatory chain.</p></list-item>
<list-item>
<p>Regulator Node (RN): Participates in the regulatory chain, receives summaries of regulatory data uploaded from the business chain, and audits user activity records.</p></list-item>
<list-item>
<p>Cross-Chain Network:</p></list-item>
<list-item>
<p>Business Chain: Built on the Hyperledger Fabric Consortium blockchain, it stores IPFS content identifiers (CID), attribute ciphertexts, and other business-related data.</p></list-item>
<list-item>
<p>Regulatory Chain: Implemented on the FISCO BCOS blockchain, it stores structured audit information, including regulatory logs, decryption records, and attribute revocation or granting events.</p></list-item>
</list></p>

<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>System architecture</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-2.tif"/>
</fig>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Algorithm Description</title>
<p>The algorithms of this system operate between different participants and collaborate to achieve key generation, data encryption and decryption, access control and audit operations. The notation used is listed in <xref ref-type="table" rid="table-1">Table 1</xref>. The core algorithms are defined as follows:</p>

<p><list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mi>S</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>: Executed by the CA, initializes with <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula>, outputs <italic>PP</italic>, <italic>MK</italic>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:mi>K</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>S</mml:mi><mml:mi>K</mml:mi></mml:math></inline-formula>: User Autonomous Generation <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mrow><mml:mo>(</mml:mo><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, generate attribute private key components for their managed attributes separately and jointly <italic>SK</italic>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula>: Executed by the DO, takes <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula> as input, outputs <italic>CT</italic>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mtext mathvariant="bold">/</mml:mtext></mml:mrow><mml:mi mathvariant="bold">&#x22A5;</mml:mi></mml:math></inline-formula>: Executed by the RN, takes (<italic>SK</italic>, <italic>CT</italic>) as input, outputs <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> if attributes satisfy the access policy, otherwise &#x22A5;.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Executed locally by the user with <italic>k</italic>, outputs the <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>v</mml:mi><mml:mi>o</mml:mi><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;SK</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>S</mml:mi><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>: Executed by the AA, Given <italic>SK</italic> and a target attribute <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:mrow><mml:mtext>att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> to be revoked, outputs updated <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:mi>S</mml:mi><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:mi>G</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>S</mml:mi><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>: Executed by the AA, Given <italic>SK</italic>, it assigns a new attribute <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:mrow><mml:mtext>att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> to the user and outputs the updated secret key <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mi>S</mml:mi><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>.</p></list-item>
</list></p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Notation</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Notation</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula></td>
<td>Security parameter</td>
</tr>
<tr>
<td>PP</td>
<td>Public parameter</td>
</tr>
<tr>
<td>MK</td>
<td>Master key</td>
</tr>
<tr>
<td>K, k</td>
<td>User&#x2019;s private key</td>
</tr>
<tr>
<td>e</td>
<td>Bilinear map function</td>
</tr>
<tr>
<td>H</td>
<td>Hash function</td>
</tr>
<tr>
<td><inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula></td>
<td>Attribute set</td>
</tr>
<tr>
<td>S</td>
<td>User attribute set</td>
</tr>
<tr>
<td>SK</td>
<td>User&#x2019;s attribute private key</td>
</tr>
<tr>
<td><inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula></td>
<td>Access structure</td>
</tr>
<tr>
<td>CT</td>
<td>Attribute ciphertext</td>
</tr>
<tr>
<td><inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Intermediate ciphertext</td>
</tr>
<tr>
<td><inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mi>M</mml:mi></mml:math></inline-formula></td>
<td>Access matrix</td>
</tr>
<tr>
<td><inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mi>&#x03C1;</mml:mi></mml:math></inline-formula></td>
<td>Attribute map function</td>
</tr>
<tr>
<td><inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover></mml:math></inline-formula></td>
<td>Constructive vector</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Security Objectives</title>
<p><list list-type="bullet">
<list-item>
<p><bold>Confidentiality:</bold> Unauthorized users, even if they possess partial attributes and key information, cannot recover the original plaintext from the ciphertext, thereby ensuring the confidentiality of the data.</p></list-item>
<list-item>
<p><bold>Pre-Decryption Correctness:</bold> Users whose attributes satisfy the access policy can correctly compute the intermediate ciphertext using their private keys and ciphertext. This intermediate ciphertext is then used for subsequent symmetric key recovery and plaintext decryption, thereby ensuring the functionality of the system.</p></list-item>
<list-item>
<p><bold>Forward Security:</bold> When a user&#x2019;s attribute is revoked, the system ensures that even if they previously held a valid key, they are unable to decrypt subsequent ciphertext, thus providing forward security.</p></list-item>
<list-item>
<p><bold>Anti-Collusion:</bold> Users who do not satisfy the access policy, even when combining their respective attributes and private key components, cannot bypass the policy to recover the plaintext, effectively preventing illegal collusion attacks.</p></list-item>
</list></p>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Attack Model</title>
<p>To formally describe the confidentiality security of this scheme under the off-chain pre-decryption structure, we define a game-based security model to simulate the interaction between an attacker <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> and a challenger <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> under the selective indistinguishability under chosen-plaintext attack (sIND-CPA):
<list list-type="bullet">
<list-item>
<p><bold>Initialization.</bold> <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> commits to a target access policy <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> to be challenged. The goal of <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mrow><mml:mtext>A</mml:mtext></mml:mrow></mml:math></inline-formula> is to gather sufficient information via adaptive queries to obtain a non-negligible advantage in distinguishing which of two challenge ciphertexts is encrypted.</p></list-item>
<list-item>
<p><bold>System setup.</bold> <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> runs the system initialization algorithm <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:mi>S</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and sends <italic>PP</italic> to <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><bold>Stage 1: Attribute private key query.</bold> <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> can adaptively initiate private key queries multiple times on any attribute set <italic>S</italic>, but none of these attribute sets satisfy <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> runs algorithm <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:mi>K</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mi>G</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> to generate the <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and returns it to <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><bold>Challenge.</bold> <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> submits two equal-length symmetric keys <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> randomly selects a bit <inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:mi>b</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, performs the algorithm <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow><mml:mi>b</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and returns the challenge ciphertexts <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> to <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><bold>Stage 2: Pre-decryption query.</bold> <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> can again adaptively query <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> for any attributes set <italic>S</italic> that does not satisfy the <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>, requesting its attribute private key or pre-decrypted value. If the attribute private key is queried, <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> returns the corresponding <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> (same as in stage 1). If the pre-decrypted value is queried, <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> executes <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and returns <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:mi mathvariant="bold">&#x22A5;</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><bold>Guess.</bold> <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs a guess <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, if <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>b</mml:mi></mml:math></inline-formula> the attack is considered successful. The advantage of an attacker is defined as</p></list-item>
</list>
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:msubsup><mml:mrow><mml:mtext>Adv</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>IND</mml:mtext></mml:mrow><mml:mo>&#x2013;</mml:mo><mml:mrow><mml:mtext>CPA</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>b</mml:mi><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac><mml:mo>|</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>For any probabilistic polynomial time (PPT) <inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>, if its advantage over the security parameter <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> is a negligible function, then the scheme is considered secure under sIND-CPA.</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Dynamic Permission Attribute-Encryption Scheme under Multi-Chain Coordination</title>
<sec id="s5_1">
<label>5.1</label>
<title>System Initialization</title>
<sec id="s5_1_1">
<label>5.1.1</label>
<title>Public Parameter Generation</title>
<p>The system generates public parameters through <inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:mi>S</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, CA defines <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:mi>e</mml:mi><mml:mo>&#x003A;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, randomly select the system master secret <inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:mi>&#x03B1;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>, calculates <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and defines <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:mi>H</mml:mi><mml:mo>&#x003A;</mml:mo><mml:msup><mml:mrow><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>. The public parameters <italic>PP</italic> and master key <italic>MK</italic> are generated as follows:
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>H</mml:mi><mml:mo>}</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>M</mml:mi><mml:mi>K</mml:mi><mml:mo>=</mml:mo><mml:mi>&#x03B1;</mml:mi></mml:math></disp-formula></p>
</sec>
<sec id="s5_1_2">
<label>5.1.2</label>
<title>Attribute Authority Configuration</title>
<p><inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:mi>A</mml:mi><mml:mi>A</mml:mi><mml:mi>S</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi><mml:mi>u</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>: A certain type of attribute in the system is managed by a unique attribute authority <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:mi>A</mml:mi><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, which initializes and registers the jurisdiction attribute domain <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4B3;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula>. For each user requesting access to a set of attributes <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:mi>S</mml:mi><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4B3;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, the corresponding attribute authority AA performs a per-attribute check of the request.</p>
</sec>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Multi-Authority Secret Key Generation</title>
<sec id="s5_2_1">
<label>5.2.1</label>
<title>User&#x2019;s Private Key Generation</title>
<p>The user DU randomly selects <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and computes <inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:mi>K</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:math></inline-formula>, generating the private key <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:mrow><mml:mo>(</mml:mo><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="s5_2_2">
<label>5.2.2</label>
<title>Attribute Secret Key Generation</title>
<p>Let <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:mi>S</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mo>&#x2286;</mml:mo><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula>, CA issues dynamic factors <inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> during the registration phase and coordinates with each AA to calculate the corresponding attribute private key component and master key component for each attribute <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mi>S</mml:mi><mml:mo>&#x2229;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi>&#x1D4B3;</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> under its responsibility:
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>K</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Finally, the complete attribute private key is output:
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:mi>S</mml:mi><mml:mi>K</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
</sec>
<sec id="s5_3">
<label>5.3</label>
<title>Design of Encryption Storage and Blockchain Synchronization</title>
<sec id="s5_3_1">
<label>5.3.1</label>
<title>Off-Chain Encryption and Storage Design</title>
<p>DO locally generates a symmetric key for encrypting the original plaintext data M, computes the ciphertext <italic>C</italic>, and uploads it to the IPFS network, retrieving the unique content identifier CID.
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mtext>Enc</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mtext>M</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="s5_3_2">
<label>5.3.2</label>
<title>Symmetric Encryption and Strategy Packaging</title>
<p>DO executes <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula> performing the access policy encryption, as follows:
<list list-type="bullet">
<list-item>
<p>Strategy matrix generation: DO sets <inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula> and generates an access matrix <italic>M</italic> of size <inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:mi>l</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula> based on its threshold structure, where the <italic>i</italic>-th row corresponds to the attribute <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>Linear secret sharing: DO randomly selects a secret value <italic>s</italic> and constructs a vector <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msubsup><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>, based on the linear secret sharing scheme, the corresponding secret share for each attribute is calculated as: <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo><mml:mi>l</mml:mi><mml:mo>}</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>Attribute ciphertext component</p></list-item>
</list>
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:mtable columnalign="left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>g</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>]</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="s5_3_3">
<label>5.3.3</label>
<title>Fabric Blockchain Evidence Storage and FISCO Chain Synchronization</title>
<p>To ensure data storage and regulatory audit capabilities, we deployed the Business Data.go smart contract on the Hyperledger Fabric business chain. This contract stores the CID and attribute ciphertext uploaded by DO. In the implementation, RN on the chain invoke the smart contract&#x2019;s RecordMetadata function, which first checks whether a record with the same recordID exists. If it does, an error is returned. Next, the current system timestamp is obtained, and the FileCID structure is created, serialized into JSON format and attaches signature. Finally, the function checks if the record is regulatory data and, if so, triggers the NewRegulatoryRecord event. The core algorithm for RecordMetadata is shown in Algorithm 1.</p>
<fig id="fig-5">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-5.tif"/>
</fig>
<p>When the NewRegulatoryRecord event is triggered on the Fabric chain, the WeCross routing module extracts data such as recordID, cid, attrCipher, and the current system timestamp. These data are then encapsulated into a cross-chain invocation request and synchronized to the FISCO BCOS regulatory chain via the WeCross routing module. On the regulatory chain, the RN nodes first verify the signature of the cross-chain transmitted data and, if the verification is successful, store the regulatory data on the chain. If the cross-chain invocation fails, the system logs the error and returns the corresponding error message. The core algorithm is shown in Algorithm 2.</p>
<fig id="fig-6">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-6.tif"/>
</fig>
</sec>
</sec>
<sec id="s5_4">
<label>5.4</label>
<title>Decrypting Behavior Auditing Mechanism</title>
<sec id="s5_4_1">
<label>5.4.1</label>
<title>Attribute Verification and Intermediate Ciphertext Recovery</title>
<p>The off-chain RN executes the algorithm <inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mi>K</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi mathvariant="bold">&#x22A5;</mml:mi></mml:math></inline-formula>. <italic>M</italic> are retrieved from the ciphertext, and can find the set of row indices that match the policy <inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:mi>I</mml:mi><mml:mo>&#x2286;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula>, if the set <italic>S</italic> satisfies the access policy, it makes <inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:msub><mml:mrow><mml:mo>{</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2286;</mml:mo><mml:mi>S</mml:mi></mml:math></inline-formula>. The corresponding Lagrange reconstruction coefficients <inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:msub><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are computed, and the intermediate ciphertext is calculated as follows:
<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:munderover><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munderover><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>]</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:math></disp-formula></p>
<p>If the user&#x2019;s attribute set does not satisfy the policy, return <inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:mi mathvariant="bold">&#x22A5;</mml:mi></mml:math></inline-formula>.</p>
</sec>
<sec id="s5_4_2">
<label>5.4.2</label>
<title>Symmetric Key Recovery</title>
<p>DU locally executes the final decryption algorithm <inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mtext>k</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> to recover the symmetric key <inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="s5_4_3">
<label>5.4.3</label>
<title>On-Chain Decryption Behavior Auditing</title>
<p>After RN completes the pre-decryption of the ciphertext, it triggers the RecordDecryption interface in the AccessAudit smart contract. The system first retrieves the current user identifier, decryption success flag, and timestamp, and packages this information into a request to log the data on the blockchain. Regardless of whether the decryption is successful, this ensures the traceability and regulatory compliance of each decryption operation. The core algorithm is shown in Algorithm 3.</p>
<fig id="fig-7">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-7.tif"/>
</fig>
</sec>
</sec>
<sec id="s5_5">
<label>5.5</label>
<title>Dynamic Permission Management</title>
<p>To support fine-grained access control in a blockchain environment, this study designs a set of on-chain operable dynamic attribute management mechanisms that do not require the ciphertext re-encryption. Specifically, it includes three steps: attribute revocation, attribute granting, and on-chain audit records.</p>
<sec id="s5_5_1">
<label>5.5.1</label>
<title>Attribute Revocation</title>
<p>When the attribute <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mrow><mml:mtext>att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula> of a user DU is revoked, AA execute the <inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>v</mml:mi><mml:mi>o</mml:mi><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;SK</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mtext>&#xA0;att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>S</mml:mi><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> algorithm. It first computes new dynamic factor <inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mover><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mi>R</mml:mi></mml:mover><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>, based on the updated dynamic factor, the secret key is recalculated as: <inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>K</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msubsup></mml:math></inline-formula>, <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:math></inline-formula>. Finally, the new private key is reconstructed:
<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:mi>S</mml:mi><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="s5_5_2">
<label>5.5.2</label>
<title>Attribute Granting</title>
<p>When a new attribute is assigned to a user DU, the existing encryption structure does not need to be modified. Only the private key component corresponding to the new attribute needs to be recalculated, and updated the user&#x2019;s private key:
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:mi>S</mml:mi><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:msub><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>]</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
</sec>
<sec id="s5_5_3">
<label>5.5.3</label>
<title>On-Chain Permission Auditing</title>
<p>After completing the attribute revocation operation, the RN calls the RevokeAttribute interface in the AccessAudit smart contract. The system first retrieves the attribute to be revoked <inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:mrow><mml:mtext>att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, the user identifier, and the current timestamp. Then, it iterates through the target user&#x2019;s attribute list and removes <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:mrow><mml:mtext>att</mml:mtext></mml:mrow><mml:msup><mml:mrow><mml:mtext>r</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. Once the operation is completed, a unique logId is generated, and the attribute revocation is logged on the regulatory chain. Unlike revocation, the attribute granting operation adds the attribute to the target user&#x2019;s attribute list. A unique logId is also generated, and the attribute grant is recorded on the regulatory chain. The core algorithm is shown in Algorithms 4 and 5.</p>
<fig id="fig-8">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-8.tif"/>
</fig>
<fig id="fig-9">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-9.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Scheme Analysis</title>
<sec id="s6_1">
<label>6.1</label>
<title>Decryption Correctness Analysis</title>
<p><disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>C</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>mid</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mtd><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:munderover><mml:mo movablelimits="false">&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munderover><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>]</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:munderover><mml:mo movablelimits="false">&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munderover><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:munderover><mml:mo movablelimits="false">&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munderover><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>The user finally restores the symmetric key:
<disp-formula id="eqn-13"><label>(13)</label><mml:math id="mml-eqn-13" display="block"><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mrow><mml:mtext>mid</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mfrac></mml:math></disp-formula></p>
</sec>
<sec id="s6_2">
<label>6.2</label>
<title>sIND-CPA Security Proof</title>
<p>This section proves the confidentiality of the proposed scheme under the selective IND-CPA model defined in <xref ref-type="sec" rid="s4_4">Section 4.4</xref>.</p>
<p><bold>Theorem.</bold> <italic>If the q-PBDHE assumption in <xref ref-type="sec" rid="s3_5">Section 3.5</xref> holds for the group <inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> for any PPT adversary the advantage in the sIND-CPA game, <inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>sIND</mml:mtext></mml:mrow><mml:mo>&#x2013;</mml:mo><mml:mrow><mml:mtext>CPA</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, is negligible in <inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> hence the scheme is secure in the sIND-CPA model.</italic></p>
<p><bold>Proof.</bold> We constructed a PPT simulator <inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> that interacts with <inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> to solve the q-PBDHE problem. The group setting and notation are described in <xref ref-type="sec" rid="s3_5">Section 3.5</xref>. Throughout the interaction, <inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> perfectly simulates the <inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:mrow><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> in the game described in <xref ref-type="sec" rid="s4_4">Section 4.4</xref>.</p>
<p><bold>Initialization.</bold> <inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> first outputs a target access policy <inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> receives a q-PBDHE instance.
<disp-formula id="eqn-14"><label>(14)</label><mml:math id="mml-eqn-14" display="block"><mml:mrow><mml:mo>(</mml:mo><mml:mover><mml:mi>Y</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mover><mml:mi>X</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>a</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>q</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>Z</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p><bold>Setup.</bold> <inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> embeds the components of <inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:mover><mml:mi>Y</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover></mml:math></inline-formula> into public parameters and publishes <italic>PP</italic> to <inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>, <italic>MK</italic> is implicitly kept for simulation. <inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:mi>H</mml:mi><mml:mo>&#x003A;</mml:mo><mml:mi>a</mml:mi><mml:mrow><mml:mtext>ttr</mml:mtext></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> is programmed as a random oracle: on the first query for an attribute <inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi><mml:mi>r</mml:mi></mml:math></inline-formula>, pick <inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and set <inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><bold>Step 1: Attribute private key query.</bold> <inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> can adaptively request attribute private key queries for any attribute set <italic>S</italic> that does not satisfy <inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>, let <inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x003A;</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mi>S</mml:mi><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>. By the <italic>LSSS</italic> property there exist zero-reconstruction coefficients <inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:msub><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mi>&#x03B3;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, such that <inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>&#x03B3;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03B7;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>&#x03B7;</mml:mi><mml:mrow><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and define a polynomial <inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> of degree at most 2<italic>q</italic> whose coefficient of <inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> is zero. Then <inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> can compute <inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>a</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:math></inline-formula> using only <inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:msub><mml:mrow><mml:mo>{</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msubsup><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>, without knowing <inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msubsup></mml:math></inline-formula>, return a secret key with the same distribution as in the real system:
<disp-formula id="eqn-15"><label>(15)</label><mml:math id="mml-eqn-15" display="block"><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mi>a</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>attr</mml:mtext></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msup></mml:math></disp-formula></p>
<p><bold>Challenge phase.</bold> <inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> submits two equal-length symmetric keys <inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:mi>b</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>}</mml:mo></mml:mrow></mml:math></inline-formula>, constructs the challenge ciphertext <inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> as follows and returns <inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.
<disp-formula id="eqn-16"><label>(16)</label><mml:math id="mml-eqn-16" display="block"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mi>sym</mml:mi></mml:mrow><mml:mo>&#x2062;</mml:mo><mml:mi>b</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mi>Z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mover accent="true"><mml:mi>X</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mn>0</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mi>i</mml:mi><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x3BB;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mrow></mml:math></disp-formula></p>
<p><bold>Distribution claim.</bold> If <inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:mi>Z</mml:mi><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> is distributed identically to the real encryption <inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mtext>sym</mml:mtext></mml:mrow><mml:mi>b</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. If <inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:mi>Z</mml:mi><mml:mover><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mi>R</mml:mi></mml:mover><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula> is independent of the message and leaks no information about <italic>b</italic>.</p>
<p><bold>Stage 2: Pre-decryption query.</bold> <inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> continues to query the attribute set <italic>S</italic> that does not satisfy <inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>:
<list list-type="bullet">
<list-item>
<p>attribute private key queries, answered as in Phase 1.</p></list-item>
<list-item>
<p>pre-decryption queries on any ciphertext, including <inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> returns an invalid output <inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:mi mathvariant="normal">&#x22A5;</mml:mi></mml:math></inline-formula>, consistent with the real system for non-satisfying sets:</p></list-item>
</list>
<disp-formula id="eqn-17"><label>(17)</label><mml:math id="mml-eqn-17" display="block"><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>P</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x22A5;</mml:mi></mml:math></disp-formula></p>
<p><bold>Conclusion</bold>. If <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> can distinguish challenge ciphertexts with a non-negligible advantage <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mi mathvariant="bold-italic">&#x03B5;</mml:mi></mml:math></inline-formula>, then <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mi mathvariant="bold-italic">&#x03B2;</mml:mi></mml:math></inline-formula> would determine the q-PBDHE instance with an advantage of at least <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mi mathvariant="bold-italic">&#x03B5;</mml:mi></mml:math></inline-formula>, contradicting the q-PBDHE assumption in <xref ref-type="sec" rid="s3_5">Section 3.5</xref>. Therefore <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:msubsup><mml:mrow><mml:mtext>Adv</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mtext>sIND-CPA</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is negligible, and the scheme is secure under sIND-CPA.&#x25A1;</p>
</sec>
<sec id="s6_3">
<label>6.3</label>
<title>Forward Security Analysis</title>
<p>In this scheme, each user&#x2019;s attribute private key is bound to a unified dynamic factor <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>. When an attribute is revoked, a new dynamic factor <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>p</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mo mathvariant="bold">&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> is generated for the user, and the new attribute private key is recomputed. If the user does not update the corresponding SK, the pairing check will fail to match the ciphertext, resulting in a decryption failure. Therefore, the system ensures that users with revoked attributes cannot successfully decrypt the ciphertext without updating their keys, thus satisfying the forward security requirement.</p>
</sec>
<sec id="s6_4">
<label>6.4</label>
<title>Anti-Collusion Analysis</title>
<p>In this scheme, the user&#x2019;s attribute private key components, <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>K</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> including the user&#x2019;s local public key <italic>K</italic> and dynamic factor <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>, are private parameters. Even if multiple users exchange the attribute keys they hold, the different dynamic factors for each user prevent the pairing check in the decryption process from correctly canceling out the exponent terms. As a result, even if multiple users hold the complete set of attributes, their private keys being non-homogeneous ensures that they cannot successfully decrypt the ciphertext. This satisfies the anti-collusion requirement.</p>
</sec>
<sec id="s6_5">
<label>6.5</label>
<title>Real-World Threat Model</title>
<p>To enhance the security and robustness of the proposed cross-chain architecture, we expand on the theoretical security model by incorporating practical threat models such as cross-chain replay attacks and man-in-the-middle (MITM) attacks.</p>
<sec id="s6_5_1">
<label>6.5.1</label>
<title>Cross-Chain Replay Attacks</title>
<p>Replay attacks occur when an attacker intercepts and replays a legitimate request, thereby executing unauthorized actions, such as resubmitting data or operations. As shown in Algorithm 2, to effectively prevent cross-chain replay attacks, our scheme incorporates the current system timestamp when the WeCross routing module extracts regulatory data. This ensures that each cross-chain transaction request contains a unique, time-stamped entry. Moreover, the use of a unique regulatorId further strengthens the integrity of the cross-chain request, ensuring that only requests with the correct regulatorId are accepted. If the system detects a replayed request, it will reject it. This mechanism ensures that even if an attacker intercepts and replays a request, no duplicate actions will be executed, thereby preserving the integrity of the data synchronization process.</p>
</sec>
<sec id="s6_5_2">
<label>6.5.2</label>
<title>Man-in-the-Middle Attacks</title>
<p>MITM attacks occur when an attacker intercepts, alters, or injects malicious data into the communication between two parties, without their knowledge. In the context of cross-chain data exchange, MITM attacks can compromise data integrity, enabling the attacker to manipulate the contents of the request. To effectively prevent MITM attacks, our scheme employs a digital signature mechanism. As shown in Algorithm 1, we first compute the hash of the serialized data and sign it with a private key, ensuring that the data remains tamper-proof. When the data is cross-chain transmitted to the regulatory chain, the RN node on the chain verifies the validity of the request using the corresponding public key. As shown in Algorithm 2, if the signature verification fails, the request will be rejected. By incorporating the signature verification mechanism, we ensure that the data transmitted across chains remains unaltered during the process. Even if an attacker intercepts and modifies the request, the system will reject it due to the signature mismatch. This mechanism effectively prevents MITM attacks and ensures the integrity and authenticity of the cross-chain data.</p>
</sec>
</sec>
</sec>
<sec id="s7">
<label>7</label>
<title>Theoretical Analysis</title>
<sec id="s7_1">
<label>7.1</label>
<title>Performance Analysis</title>
<p>In this chapter, we compare the proposed scheme with other similar schemes and analyze their performance in detail. As shown in <xref ref-type="table" rid="table-2">Table 2</xref>, we evaluate various aspects such as the granularity of encryption, attribute granting, ciphertext re-encryption, free-key management, multi-authority attributes, blockchain structure, encryption for external/public requests, and anti-collusion.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Feature comparison</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Schemes</th>
<th>[<xref ref-type="bibr" rid="ref-11">11</xref>]</th>
<th>[<xref ref-type="bibr" rid="ref-14">14</xref>]</th>
<th>[<xref ref-type="bibr" rid="ref-21">21</xref>]</th>
<th>[<xref ref-type="bibr" rid="ref-23">23</xref>]</th>
<th>[Ours]</th>
</tr>
</thead>
<tbody>
<tr>
<td>Revocation granularity</td>
<td>Attribute</td>
<td>User</td>
<td>User</td>
<td>Attribute</td>
<td>Attribute</td>
</tr>
<tr>
<td>Attribute granting</td>
<td>&#x00D7;</td>
<td>&#x00D7;</td>
<td>&#x00D7;</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
</tr>
<tr>
<td>Ciphertext re-encryption</td>
<td>&#x221A;</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
<td>&#x00D7;</td>
</tr>
<tr>
<td>Free-key management</td>
<td>&#x00D7;</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
</tr>
<tr>
<td>Multi-authority attributes</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
</tr>
<tr>
<td>Blockchain integration</td>
<td>&#x00D7;</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
</tr>
<tr>
<td>Pre-decryption</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
</tr>
<tr>
<td>Anti-collusion</td>
<td>&#x00D7;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
<td>&#x221A;</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We define <inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> as the number of attributes held by the user, <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> as the number of rows of attributes in access policy, <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> as the size of elements in the source group, <inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> as the size of elements in the target group, <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is an exponential operation on <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is an exponential operation on <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>, P is a linear pairing operation, and H is a hash-to-group operation.</p>
<p>From the storage comparison results shown in <xref ref-type="table" rid="table-3">Table 3</xref>, it can be seen that the proposed scheme reduces the storage overhead effectively, with fewer elements to store. The ciphertext size is only <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>, and the attribute private key size is only <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>, which is significantly smaller than the other four schemes.</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Storage overhead</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Schemes</th>
<th>CT size</th>
<th>SK size</th>
</tr>
</thead>
<tbody>
<tr>
<td>[<xref ref-type="bibr" rid="ref-11">11</xref>]</td>
<td><inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:mrow><mml:mo>(</mml:mo><mml:mn>4</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:mrow><mml:mo>(</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-14">14</xref>]</td>
<td><inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:mrow><mml:mo>(</mml:mo><mml:mn>5</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mn>3</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-21">21</xref>]</td>
<td><inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-23">23</xref>]</td>
<td><inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>Ours</td>
<td><inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>G</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We focus on evaluating the computational overhead of the schemes involved in terms of key generation, encryption, and decryption processes in <xref ref-type="table" rid="table-4">Table 4</xref>. In the key generation phase, the proposed scheme requires only <inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> exponentiation operations, resulting in lower computational overhead compared to other schemes. Regarding encryption costs, the encryption complexity of schemes [<xref ref-type="bibr" rid="ref-11">11</xref>,<xref ref-type="bibr" rid="ref-23">23</xref>] is relatively high, especially in scheme [<xref ref-type="bibr" rid="ref-14">14</xref>], which involves a large number of attribute-level pairing operations. In contrast, the proposed scheme only requires one bilinear pairing operation, significantly reducing encryption computational overhead. For decryption, the proposed scheme adopts a separated architecture with off-chain pre-decryption by regulatory nodes and final decryption by the user. The off-chain regulatory node needs to perform <inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> computational operations, which is still much lower than the scheme [<xref ref-type="bibr" rid="ref-21">21</xref>]. The user&#x2019;s side has a very low computational burden, requiring only one <inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> operation, significantly lower than other schemes.</p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Computation overhead</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Schemes</th>
<th>Key generation</th>
<th>Encryption</th>
<th>Decryption</th>
</tr>
</thead>
<tbody>
<tr>
<td>[<xref ref-type="bibr" rid="ref-11">11</xref>]</td>
<td><inline-formula id="ieqn-215"><mml:math id="mml-ieqn-215"><mml:mrow><mml:mo>(</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-216"><mml:math id="mml-ieqn-216"><mml:mrow><mml:mo>(</mml:mo><mml:mn>5</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-217"><mml:math id="mml-ieqn-217"><mml:mn>4</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-14">14</xref>]</td>
<td><inline-formula id="ieqn-218"><mml:math id="mml-ieqn-218"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-219"><mml:math id="mml-ieqn-219"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-220"><mml:math id="mml-ieqn-220"><mml:mn>5</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-21">21</xref>]</td>
<td><inline-formula id="ieqn-221"><mml:math id="mml-ieqn-221"><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>4</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>User: <inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, RN: <inline-formula id="ieqn-224"><mml:math id="mml-ieqn-224"><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>5</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>[<xref ref-type="bibr" rid="ref-23">23</xref>]</td>
<td><inline-formula id="ieqn-225"><mml:math id="mml-ieqn-225"><mml:mrow><mml:mo>(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-226"><mml:math id="mml-ieqn-226"><mml:mrow><mml:mo>(</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-227"><mml:math id="mml-ieqn-227"><mml:mn>3</mml:mn><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>Ours</td>
<td><inline-formula id="ieqn-228"><mml:math id="mml-ieqn-228"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-229"><mml:math id="mml-ieqn-229"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi>P</mml:mi></mml:math></inline-formula></td>
<td>User: <inline-formula id="ieqn-230"><mml:math id="mml-ieqn-230"><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, RN: <inline-formula id="ieqn-231"><mml:math id="mml-ieqn-231"><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>)</mml:mo></mml:mrow><mml:mi>P</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mrow><mml:mi>U</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s7_2">
<label>7.2</label>
<title>Experimental Analysis</title>
<p>This section presents the experimental environment used to evaluate the proposed scheme. The experimental platform is built on an Intel Core (TM) i9-12900H processor, with 16 GB of RAM and a 512 GB SSD, running on Ubuntu operating system. The cryptographic environment utilizes the Charm-Crypto library, combined with GNU Multiple Precision Arithmetic (GMP) and Pairing-Based Cryptography (PBC), running in a Conda environment. Bilinear pairings are implemented using the SS512 elliptic curve over a 160-bit prime order, ensuring the security and efficiency of the cryptographic operations. The detailed configuration is as <xref ref-type="table" rid="table-5">Table 5</xref>:</p>
<table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Cryptographic configuration</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Item</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr>
<td>Operating system</td>
<td>Ubuntu 22.04 LTS</td>
</tr>
<tr>
<td>Runtime environment</td>
<td>Conda (Python 3.8.20)</td>
</tr>
<tr>
<td>Cryptographic libraries</td>
<td>Charm-Crypto, GMP-5.1.3, PBC-0.5.14</td>
</tr>
<tr>
<td>Bilinear pairing</td>
<td>SS512 (160-bit prime order)</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In addition to the cryptographic environment, the experiment also simulates a realistic cross-chain regulatory framework, with Hyperledger Fabric deployed as the business chain and FISCO BCOS as the regulatory chain. Specifically, the Fabric network consists of 4 orderer nodes and 2 peer nodes, while FISCO BCOS is deployed with 4 nodes, ensuring high availability and scalability of the network. The cross-chain routing and communication mechanism established through the WeCross platform guarantees secure and real-time data interaction between the two blockchain networks. The detailed configuration of the blockchain network is shown in the <xref ref-type="table" rid="table-6">Table 6</xref>:</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Blockchain configuration</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Item</th>
<th>Version</th>
</tr>
</thead>
<tbody>
<tr>
<td>Blockchain platforms</td>
<td>Hyperledger Fabric 2.5.9, FISCO BCOS 2.7.1</td>
</tr>
<tr>
<td>Node count (Fabric)</td>
<td>4 orderer nodes(Raft Consensus), 2 peer nodes</td>
</tr>
<tr>
<td>Node count (FISCO BCOS)</td>
<td>4 nodes (GM-based Consensus)</td>
</tr>
<tr>
<td>Cross-chain interaction tool</td>
<td>WeCross 1.3.1</td>
</tr>
<tr>
<td>Docker</td>
<td>28.0.1</td>
</tr>
<tr>
<td>Go</td>
<td>1.23.6</td>
</tr>
<tr>
<td>IPFS</td>
<td>0.22.0</td>
</tr>
<tr>
<td>Jmeter</td>
<td>5.6.3</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To validate the cross-chain transaction performance of our scheme, we conducted a comparative analysis of the cross-chain transaction latency with Dong et al. [<xref ref-type="bibr" rid="ref-31">31</xref>] their paper proposes a hierarchical attribute-based encryption algorithm (MSC-CP-ABE) based on the main-sidechain architecture, where the sidechain stores the addresses and keys of encrypted data, while the mainchain is responsible for storing the data indices of the sidechain. Cross-chain data transmission is achieved through the P-TL smart contract, ensuring data interaction between the mainchain and sidechain. In our experiment, we used the JMeter performance testing tool to evaluate the maximum latency, minimum latency, and average latency of cross-chain transactions under different transaction volumes (ranging from 50 to 250 transactions), as shown in the <xref ref-type="fig" rid="fig-3">Fig. 3</xref>. The experimental results demonstrate that under high concurrency, our scheme maintains relatively low latency, showing a performance advantage, especially under higher transaction volumes, where the latency increases at a slower rate, indicating good scalability.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Cross-chain performance comparison</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-3.tif"/>
</fig>
<p>In the cryptographic scheme comparison, to enhance the consistency and reliability of the experiment, all ciphertexts uniformly adopt the &#x2018;AND&#x2019; access strategy, and each attribute-scale scenario is repeated 30 times, with the average value calculated. Since other schemes do not involve pre-decryption algorithms, this experiment selects only Scheme [<xref ref-type="bibr" rid="ref-14">14</xref>] and Scheme [<xref ref-type="bibr" rid="ref-21">21</xref>] for comparison. It is important to note that the experimental data for the comparison schemes are based on Java Pairing-Based Cryptography (JPBC) 2.0.0, while this paper uses Charm-Crypto with GMP/PBC. However, both use Type-A and SS512 parameter sets, which are symmetric supersingular pairings (Embedding degree k &#x003D; 2, subgroup order 160-bit), with consistent security strength (80-bit), making their comparison valid in terms of algorithm complexity and growth trend with attribute size.</p>
<p><xref ref-type="fig" rid="fig-4">Fig. 4a</xref>,<xref ref-type="fig" rid="fig-4">b</xref> shows the comparative results of different schemes in terms of key generation and encryption overheads with respect to the number of attributes. As the number of attributes increases, the overheads of the proposed scheme in both encryption and key generation are significantly lower than those of the compared schemes. Especially in the encryption phase, it remains almost at a very low level, due to the scheme requiring only one bilinear pairing operation. In the comparison of decryption overhead (as shown in <xref ref-type="fig" rid="fig-4">Fig. 4c</xref>), the scheme [<xref ref-type="bibr" rid="ref-21">21</xref>] transfers a large amount of pre-decryption computation to cloud servers with the help of outsourced decryption technology, which is better than this scheme in terms of pre-decryption. However, it is worth noting that our scheme only requires one exponential operation for final decryption, greatly reducing the computational burden. This makes our scheme especially suitable for devices with constrained computing resources, such as mobile terminals. Additionally, we analyzed the overhead of each phase of our scheme with varying attribute sizes. As shown in <xref ref-type="fig" rid="fig-4">Fig. 4d</xref>, the costs increased approximately linearly with the number of attributes. Encryption remained consistently low, while key generation and granting increased moderately. Revocation required more time due to the need to generate and disseminate update information to affected attributes, an inherent cost of policy updates. However, even with 100 attributes, all operations remained sub-second, indicating good scalability.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>The comparison between several schemes: (<bold>a</bold>) Key gen cost (<bold>b</bold>) Encrypt cost (<bold>c</bold>) Decrypt cost (<bold>d</bold>) Cost of ours scheme</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_73935-fig-4.tif"/>
</fig>
</sec>
</sec>
<sec id="s8">
<label>8</label>
<title>Conclusion</title>
<p>The dynamic authority attribute encryption scheme under multi-chain collaboration proposed in this research has achieved some success in solving the problems of attribute revocation and granting without ciphertext update, cross-chain supervisory collaboration, and multi-authority key distribution. Through functional analysis, comparative evaluation of storage and computation overheads, and simulation experiments, we demonstrate that the scheme significantly reduces key generation and encryption/decryption delays while maintaining high security, especially suitable for cross-organization and high-frequency authority change application scenarios. In addition, the current design is mainly oriented to the consortium chain, and future work could explore aspects such as authority management strategies in open networks and incentive/reward mechanisms for multi-authority nodes, to enhance the scalability and robustness in a wider range of application scenarios.</p>
</sec>
</body>
<back>
<ack>
<p>We are grateful to the Shanxi Key Laboratory of Intelligent Optimization Computing and Blockchain Technology for its vibrant intellectual environment and stimulating discussions.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>The authors received no specific funding for this study.</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: Investigation, study conception and design, methodology, experimental simulation and draft manuscript preparation: Ye Tian, Zhuokun Fan. Data curation, resources, funding acquisition and review and editing: Ye Tian, Yifeng Zhang. All authors reviewed the results and approved the final version of the manuscript.</p>
</sec>
<sec sec-type="data-availability">
<title>Availability of Data and Materials</title>
<p>No new data were created or analyzed in this study. Data sharing is not applicable to this article.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>Not applicable.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest to report regarding the present study.</p>
</sec>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Chhetri</surname> <given-names>TR</given-names></string-name>, <string-name><surname>Dehury</surname> <given-names>CK</given-names></string-name>, <string-name><surname>Varghese</surname> <given-names>B</given-names></string-name>, <string-name><surname>Fensel</surname> <given-names>A</given-names></string-name>, <string-name><surname>Srirama</surname> <given-names>SN</given-names></string-name>, <string-name><surname>DeLong</surname> <given-names>RJ</given-names></string-name></person-group>. <article-title>Enabling privacy-aware interoperable and quality IoT data sharing with context</article-title>. <source>Future Gener Comput Syst</source>. <year>2024</year>;<volume>157</volume>:<fpage>164</fpage>&#x2013;<lpage>79</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.future.2024.03.039</pub-id>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>G</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Han</surname> <given-names>L</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>W</given-names></string-name>, <string-name><surname>Li</surname> <given-names>R</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Efficient and fine-grained access control with fully-hidden policies for cloud-enabled IoT</article-title>. <source>Digit Commun Netw</source>. <year>2025</year>;<volume>11</volume>(<issue>2</issue>):<fpage>473</fpage>&#x2013;<lpage>81</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.dcan.2024.05.007</pub-id>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Islam</surname> <given-names>S</given-names></string-name>, <string-name><surname>Apu</surname> <given-names>KU</given-names></string-name></person-group>. <article-title>Decentralized vs. centralized database solutions in blockchain: advantages, challenges, and use cases</article-title>. <source>Glob Mainstream J Innov Eng Emerg Technol</source>. <year>2024</year>;<volume>3</volume>(<issue>4</issue>):<fpage>58</fpage>&#x2013;<lpage>68</lpage>. doi:<pub-id pub-id-type="doi">10.62304/jieet.v3i04.195</pub-id>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zheng</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Xie</surname> <given-names>S</given-names></string-name>, <string-name><surname>Dai</surname> <given-names>HN</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>X</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>H</given-names></string-name></person-group>. <article-title>Blockchain challenges and opportunities: a survey</article-title>. <source>Int J Web Grid Serv</source>. <year>2018</year>;<volume>14</volume>(<issue>4</issue>):<fpage>352</fpage>. doi:<pub-id pub-id-type="doi">10.1504/ijwgs.2018.095647</pub-id>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liang</surname> <given-names>B</given-names></string-name>, <string-name><surname>Yuan</surname> <given-names>F</given-names></string-name>, <string-name><surname>Deng</surname> <given-names>J</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Cs-pbft: a comprehensive scoring-based practical Byzantine fault tolerance consensus algorithm</article-title>. <source>J Supercomput</source>. <year>2025</year>;<volume>81</volume>(<issue>7</issue>):<fpage>859</fpage>. doi:<pub-id pub-id-type="doi">10.1007/s11227-025-07342-3</pub-id>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Chen</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name>, <string-name><surname>Li</surname> <given-names>K</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>J</given-names></string-name></person-group>. <article-title>An improved P2P file system scheme based on IPFS and blockchain</article-title>. In: <conf-name>Proceedings of the 2017 IEEE International Conference on Big Data (Big Data); 2017 Dec 11&#x2013;14</conf-name>; <publisher-loc>Boston, MA, USA. Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2018</year>. p. <fpage>2652</fpage>&#x2013;<lpage>7</lpage>. doi:<pub-id pub-id-type="doi">10.1109/BigData.2017.8258226</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Azbeg</surname> <given-names>K</given-names></string-name>, <string-name><surname>Ouchetto</surname> <given-names>O</given-names></string-name>, <string-name><surname>Jai Andaloussi</surname> <given-names>S</given-names></string-name></person-group>. <article-title>BlockMedCare: a healthcare system based on IoT, blockchain and IPFS for data management security</article-title>. <source>Egypt Inform J</source>. <year>2022</year>;<volume>23</volume>(<issue>2</issue>):<fpage>329</fpage>&#x2013;<lpage>43</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.eij.2022.02.004</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Sahai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Fuzzy identity-based encryption</article-title>. In: <conf-name>Proceedings of the 24th Annual International Conference on the Theory and Applications of Cryptographic Techniques; 2005 May 22&#x2013;26</conf-name>; <publisher-loc>Aarhus, Denmark. Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2005</year>. p. <fpage>457</fpage>&#x2013;<lpage>73</lpage>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Bethencourt</surname> <given-names>J</given-names></string-name>, <string-name><surname>Sahai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Ciphertext-policy attribute-based encryption</article-title>. In: <conf-name>Proceedings of the 2007 IEEE Symposium on Security and Privacy (SP &#x2019;07); 2007 May 20&#x2013;23</conf-name>; <publisher-loc>Berkeley, CA, USA. Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2007</year>. p. <fpage>321</fpage>&#x2013;<lpage>34</lpage>. doi:<pub-id pub-id-type="doi">10.1109/SP.2007.11</pub-id>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mao</surname> <given-names>H</given-names></string-name>, <string-name><surname>Nie</surname> <given-names>T</given-names></string-name>, <string-name><surname>Sun</surname> <given-names>H</given-names></string-name>, <string-name><surname>Shen</surname> <given-names>D</given-names></string-name>, <string-name><surname>Yu</surname> <given-names>G</given-names></string-name></person-group>. <article-title>A survey on cross-chain technology: challenges, development, and prospect</article-title>. <source>IEEE Access</source>. <year>2023</year>;<volume>11</volume>:<fpage>45527</fpage>&#x2013;<lpage>46</lpage>. doi:<pub-id pub-id-type="doi">10.1109/ACCESS.2022.3228535</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Huang</surname> <given-names>K</given-names></string-name></person-group>. <article-title>Accountable and revocable large universe decentralized multi-authority attribute-based encryption for cloud-aided IoT</article-title>. <source>IEEE Access</source>. <year>2021</year>;<volume>9</volume>:<fpage>123786</fpage>&#x2013;<lpage>804</lpage>. doi:<pub-id pub-id-type="doi">10.1109/ACCESS.2021.3110824</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Sandhia</surname> <given-names>GK</given-names></string-name>, <string-name><surname>Kasmir Raja</surname> <given-names>SV</given-names></string-name>, <string-name><surname>Jansi</surname> <given-names>KR</given-names></string-name></person-group>. <article-title>Multi-authority-based file hierarchy hidden CP-ABE scheme for cloud security</article-title>. <source>Serv Oriented Comput Appl</source>. <year>2018</year>;<volume>12</volume>(<issue>3</issue>):<fpage>295</fpage>&#x2013;<lpage>303</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11761-018-0240-6</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Sethi</surname> <given-names>K</given-names></string-name>, <string-name><surname>Pradhan</surname> <given-names>A</given-names></string-name>, <string-name><surname>Bera</surname> <given-names>P</given-names></string-name></person-group>. <article-title>PMTER-ABE: a practical multi-authority CP-ABE with traceability, revocation and outsourcing decryption for secure access control in cloud systems</article-title>. <source>Clust Comput</source>. <year>2021</year>;<volume>24</volume>(<issue>2</issue>):<fpage>1525</fpage>&#x2013;<lpage>50</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s10586-020-03202-2</pub-id>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Yang</surname> <given-names>K</given-names></string-name>, <string-name><surname>Jia</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Expressive, efficient, and revocable data access control for multi-authority cloud storage</article-title>. <source>IEEE Trans Parallel Distrib Syst</source>. <year>2014</year>;<volume>25</volume>(<issue>7</issue>):<fpage>1735</fpage>&#x2013;<lpage>44</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TPDS.2013.253</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xie</surname> <given-names>M</given-names></string-name>, <string-name><surname>Ruan</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Hong</surname> <given-names>H</given-names></string-name>, <string-name><surname>Shao</surname> <given-names>J</given-names></string-name></person-group>. <article-title>A CP-ABE scheme based on multi-authority in hybrid clouds for mobile devices</article-title>. <source>Future Gener Comput Syst</source>. <year>2021</year>;<volume>121</volume>:<fpage>114</fpage>&#x2013;<lpage>22</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.future.2021.03.021</pub-id>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>R</given-names></string-name>, <string-name><surname>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Han</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Key escrow-free attribute based encryption with user revocation</article-title>. <source>Inf Sci</source>. <year>2022</year>;<volume>600</volume>:<fpage>59</fpage>&#x2013;<lpage>72</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.ins.2022.03.081</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wei</surname> <given-names>J</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>X</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Susilo</surname> <given-names>W</given-names></string-name></person-group>. <article-title>RS-HABE: revocable-storage and hierarchical attribute-based access scheme for secure sharing of e-health records in public cloud</article-title>. <source>IEEE Trans Dependable Secure Comput</source>. <year>2021</year>;<volume>18</volume>(<issue>5</issue>):<fpage>2301</fpage>&#x2013;<lpage>15</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TDSC.2019.2947920</pub-id>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Deng</surname> <given-names>S</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>G</given-names></string-name>, <string-name><surname>Dong</surname> <given-names>W</given-names></string-name>, <string-name><surname>Xia</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Flexible revocation in ciphertext-policy attribute-based encryption with verifiable ciphertext delegation</article-title>. <source>Multimed Tools Appl</source>. <year>2023</year>;<volume>82</volume>(<issue>14</issue>):<fpage>22251</fpage>&#x2013;<lpage>74</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11042-022-13537-0</pub-id>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lan</surname> <given-names>C</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>L</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name></person-group>. <article-title>An efficient and revocable attribute-based data sharing scheme with rich expression and escrow freedom</article-title>. <source>Inf Sci</source>. <year>2023</year>;<volume>624</volume>:<fpage>435</fpage>&#x2013;<lpage>50</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.ins.2022.12.052</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ren</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Yan</surname> <given-names>E</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>T</given-names></string-name>, <string-name><surname>Yu</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Blockchain-based CP-ABE data sharing and privacy-preserving scheme using distributed KMS and zero-knowledge proof</article-title>. <source>J King Saud Univ Comput Inf Sci</source>. <year>2024</year>;<volume>36</volume>(<issue>3</issue>):<fpage>101969</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jksuci.2024.101969</pub-id>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Guo</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Ge</surname> <given-names>H</given-names></string-name>, <string-name><surname>Li</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Revocable blockchain-aided attribute-based encryption with escrow-free in cloud storage</article-title>. <source>IEEE Trans Comput</source>. <year>2023</year>;<volume>72</volume>(<issue>7</issue>):<fpage>1901</fpage>&#x2013;<lpage>12</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TC.2023.3234210</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Qi</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Blockchain data access control method with revocable attribute encryption</article-title>. <source>Comput Eng Des</source>. <year>2024</year>;<volume>45</volume>(<issue>2</issue>):<fpage>348</fpage>&#x2013;<lpage>55</lpage>. (In Chinese). doi:<pub-id pub-id-type="doi">10.16208/j.issn1000-7024.2024.02.004</pub-id>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Thakur</surname> <given-names>A</given-names></string-name>, <string-name><surname>Ranga</surname> <given-names>V</given-names></string-name>, <string-name><surname>Agarwal</surname> <given-names>R</given-names></string-name></person-group>. <article-title>Revocable and privacy-preserving CP-ABE scheme for secure mHealth data access in blockchain</article-title>. <source>Concurr Comput Pract Exp</source>. <year>2025</year>;<volume>37</volume>(<issue>9&#x2013;11</issue>):<fpage>e70064</fpage>. doi:<pub-id pub-id-type="doi">10.1002/cpe.70064</pub-id>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mishra</surname> <given-names>RK</given-names></string-name>, <string-name><surname>Yadav</surname> <given-names>RK</given-names></string-name>, <string-name><surname>Nath</surname> <given-names>P</given-names></string-name></person-group>. <article-title>Integration of blockchain and IPFS: healthcare data management &#x0026; sharing for IoT environment</article-title>. <source>Multimed Tools Appl</source>. <year>2025</year>;<volume>84</volume>(<issue>23</issue>):<fpage>27229</fpage>&#x2013;<lpage>50</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11042-024-20092-3</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Mahmud</surname> <given-names>M</given-names></string-name>, <string-name><surname>Sohan</surname> <given-names>MSH</given-names></string-name>, <string-name><surname>Reno</surname> <given-names>S</given-names></string-name>, <string-name><surname>Baten Sikder</surname> <given-names>MA</given-names></string-name>, <string-name><surname>Hossain</surname> <given-names>FS</given-names></string-name></person-group>. <article-title>Advancements in scalability of blockchain infrastructure through IPFS and dual blockchain methodology</article-title>. <source>J Supercomput</source>. <year>2024</year>;<volume>80</volume>(<issue>6</issue>):<fpage>8383</fpage>&#x2013;<lpage>405</lpage>. doi:<pub-id pub-id-type="doi">10.1007/s11227-023-05734-x</pub-id>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Sun</surname> <given-names>J</given-names></string-name>, <string-name><surname>Yao</surname> <given-names>X</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Blockchain-based secure storage and access scheme for electronic medical records in IPFS</article-title>. <source>IEEE Access</source>. <year>2020</year>;<volume>8</volume>:<fpage>59389</fpage>&#x2013;<lpage>401</lpage>. doi:<pub-id pub-id-type="doi">10.1109/ACCESS.2020.2982964</pub-id>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Yuan</surname> <given-names>F</given-names></string-name>, <string-name><surname>Zuo</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Jiang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Shu</surname> <given-names>W</given-names></string-name>, <string-name><surname>Tian</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Ye</surname> <given-names>C</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>AI-driven optimization of blockchain scalability, security, and privacy protection</article-title>. <source>Algorithms</source>. <year>2025</year>;<volume>18</volume>(<issue>5</issue>):<fpage>263</fpage>. doi:<pub-id pub-id-type="doi">10.3390/a18050263</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Cachin</surname> <given-names>C</given-names></string-name></person-group>. <article-title>Architecture of the Hyperledger blockchain fabric</article-title>. In: <conf-name>Workshop on distributed cryptocurrencies and consensus ledgers</conf-name>. <publisher-loc>Zurich, Switzerland</publisher-loc>: <publisher-name>IBM Research</publisher-name>; <year>2016</year>. p. <fpage>1</fpage>&#x2013;<lpage>4</lpage>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Kwon</surname> <given-names>J</given-names></string-name>, <string-name><surname>Buchman</surname> <given-names>E</given-names></string-name></person-group>. <article-title>A network of distributed ledgers</article-title>. <source>Cosm White Pap</source>. <year>2018</year>;<fpage>1</fpage>&#x2013;<lpage>41</lpage>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wood</surname> <given-names>DG</given-names></string-name></person-group>. <article-title>Polkadot: vision for a heterogeneous multi-chain framework</article-title>. <source>White Pap</source>. <year>2016</year>;<volume>21</volume>(<issue>2327</issue>):<fpage>4662</fpage>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Dong</surname> <given-names>J</given-names></string-name>, <string-name><surname>Jiang</surname> <given-names>R</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Tian</surname> <given-names>S</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>B</given-names></string-name></person-group>. <article-title>A hierarchical access control and sharing model for healthcare data with on-chain-off-chain collaboration</article-title>. <source>J Intell Fuzzy Syst</source>. <year>2025</year>;<volume>48</volume>(<issue>3</issue>):<fpage>215</fpage>&#x2013;<lpage>31</lpage>. doi:<pub-id pub-id-type="doi">10.3233/jifs-238935</pub-id>.</mixed-citation></ref>
</ref-list>
</back></article>