<?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">62324</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2025.062324</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Blockchain-Based Framework for Secure Sharing of Cross-Border Trade Data</article-title>
<alt-title alt-title-type="left-running-head">Blockchain-Based Framework for Secure Sharing of Cross-Border Trade Data</alt-title>
<alt-title alt-title-type="right-running-head">Blockchain-Based Framework for Secure Sharing of Cross-Border Trade Data</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Xiao</surname><given-names>Shenjian</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western"><surname>Qin</surname><given-names>Xiaoli</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-3" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Tian</surname><given-names>Yanzhao</given-names></name><xref ref-type="aff" rid="aff-1">1</xref><email>tiany2048@hainanu.edu.cn</email></contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western"><surname>Dang</surname><given-names>Zhongkai</given-names></name><xref ref-type="aff" rid="aff-2">2</xref></contrib>
<aff id="aff-1"><label>1</label><institution>School of Cyberspace Security, Hainan University</institution>, <addr-line>Haikou, 570208</addr-line>, <country>China</country></aff>
<aff id="aff-2"><label>2</label><institution>National Computer Network Emergency Response Technical Team, Coordination Center of China</institution>, <addr-line>Beijing, 100029</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Yanzhao Tian. Email: <email>tiany2048@hainanu.edu.cn</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2025</year>
</pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>16</day><month>04</month><year>2025</year>
</pub-date>
<volume>83</volume>
<issue>2</issue>
<fpage>2351</fpage>
<lpage>2373</lpage>
<history>
<date date-type="received">
<day>16</day>
<month>12</month>
<year>2024</year>
</date>
<date date-type="accepted">
<day>28</day>
<month>1</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2025 The Authors.</copyright-statement>
<copyright-year>2025</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_62324.pdf"></self-uri>
<abstract>
<p>The advent of the digital age has consistently provided impetus for facilitating global trade, as evidenced by the numerous customs clearance documents and participants involved in the international trade process, including enterprises, agents, and government departments. However, the urgent issue that requires immediate attention is how to achieve secure and efficient cross-border data sharing among these government departments and enterprises in complex trade processes. In addressing this need, this paper proposes a data exchange architecture employing Multi-Authority Attribute-Based Encryption (MA-ABE) in combination with blockchain technology. This scheme supports proxy decryption, attribute revocation, and policy update, while allowing each participating entity to manage their keys autonomously, ensuring system security and enhancing trust among participants. In order to enhance system decentralization, a mechanism has been designed in the architecture where multiple institutions interact with smart contracts and jointly participate in the generation of public parameters. Integration with the multi-party process execution engine Caterpillar has been shown to boost the transparency of cross-border information flow and cooperation between different organizations. The scheme ensures the auditability of data access control information and the visualization of on-chain data sharing. The MA-ABE scheme is statically secure under the q-Decisional Parallel Bilinear Diffie-Hellman Exponent (q-DPBDHE2) assumption in the random oracle model, and can resist ciphertext rollback attacks to achieve true backward and forward security. Theoretical analysis and experimental results demonstrate the appropriateness of the scheme for cross-border data collaboration between different institutions.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Multi-authority attribute based encryption</kwd>
<kwd>blockchain</kwd>
<kwd>data sharing</kwd>
<kwd>access control</kwd>
</kwd-group>
<funding-group>
<award-group id="awg1">
<funding-source>Hainan Provincial Natural Science Foundation of China</funding-source>
<award-id>622RC617</award-id>
<award-id>624RC485</award-id>
</award-group>
<award-group id="awg2">
<funding-source>State Key Laboratory of Networking and Switching Technology</funding-source>
<award-id>SKLNST-2023-1-07</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>With the advent of the digital era, global economic and trade activities are becoming increasingly digitized, and international cross-border trade has entered a new stage of facilitation and efficiency [<xref ref-type="bibr" rid="ref-1">1</xref>]. To effectively reduce trade costs and enhance efficiency, paperless trade has emerged as a new trend [<xref ref-type="bibr" rid="ref-2">2</xref>]. According to estimates by the WTO, the current scale of digital trade has reached approximately $4 trillion, accounting for about half of the global service exports [<xref ref-type="bibr" rid="ref-3">3</xref>]. The entire international trade process typically encompasses at least 25 participants and generates 30&#x2013;40 trade documents, with over 200 copies produced [<xref ref-type="bibr" rid="ref-3">3</xref>,<xref ref-type="bibr" rid="ref-4">4</xref>]. These documents in the international trade process must be extensively shared with various stakeholders, including importers, exporters, banks, logistics providers, government agencies, and customs [<xref ref-type="bibr" rid="ref-5">5</xref>]. Therefore, the rapid development of digital international trade urgently demands improvements in the secure and efficient sharing of cross-border data, thereby augmenting the utilization of shared data and promoting the globalization of the digital economy [<xref ref-type="bibr" rid="ref-6">6</xref>].</p>
<p>Currently, several challenges impede the effective cross-border sharing of data in international trade, including data redundancy, lack of trust, insufficient collaboration, privacy concerns, interoperability issues, and data source management [<xref ref-type="bibr" rid="ref-7">7</xref>]. In the face of these challenges, developing a technological solution that both strengthens trust mechanisms and ensures information security has become increasingly urgent. As blockchain technology matures, it is gradually emerging as an ideal solution to these issues due to its unique advantageous features. Blockchain not only provides a decentralized structure to reduce reliance on a single entity but also ensures data authenticity and persistence through its immutable ledger. Moreover, the high transparency of blockchain and the automated execution of smart contracts greatly enhance trust among all participants [<xref ref-type="bibr" rid="ref-8">8</xref>]. For example, in cross-border e-commerce, blockchain technology has wide applications in combating counterfeit goods [<xref ref-type="bibr" rid="ref-9">9</xref>], providing immutable records of transactions [<xref ref-type="bibr" rid="ref-10">10</xref>], enabling secure electronic payments [<xref ref-type="bibr" rid="ref-11">11</xref>], safeguarding the privacy of international business users [<xref ref-type="bibr" rid="ref-12">12</xref>], and integrating with the Internet of Things (IoT) [<xref ref-type="bibr" rid="ref-13">13</xref>]. Blockchain also facilitates information sharing through a distributed network, uses smart contracts to prevent data tampering [<xref ref-type="bibr" rid="ref-14">14</xref>], validates trade documents [<xref ref-type="bibr" rid="ref-15">15</xref>], and provides traceability of supply chain processes to increase transaction transparency [<xref ref-type="bibr" rid="ref-16">16</xref>]. Liu et al. introduced a blockchain-based cross-border e-commerce supply chain framework that employs a multi-chain model to store diverse data and combines RSA and Elliptic Curve Cryptography (ECC) for product information encryption and signing, targeting improved product traceability [<xref ref-type="bibr" rid="ref-17">17</xref>]. Zhao proposed a similar method using SHA-256 and ECC for file encryption and authentication via user ID [<xref ref-type="bibr" rid="ref-12">12</xref>], though lacking support for fine-grained data access control. Singapore&#x2019;s TradeTrust project integrates blockchain and digital signature technologies, significantly enhancing the authenticity and traceability of shared documents in international trade [<xref ref-type="bibr" rid="ref-15">15</xref>]. The project uses blockchain to generate a unique digital fingerprint (hash value) for each document, recording it on the blockchain to ensure that any tampering with the original document can be detected, thereby improving document authenticity. However, its limitation lies in its ability to only verify whether a document was sent by a specific signer, without ensuring the privacy of the document itself. Wu et al. constructed a model based on blockchain combined with incentives to improve the regulation and data sharing of cross-border logistics in modular construction (CLMC) [<xref ref-type="bibr" rid="ref-18">18</xref>]. This model strengthens CLMC activity supervision and promotes information flow among participants, addressing issues of unclear responsibility, weak data tracking, and insufficient incentive for information exchange. Rahman et al. designed a cross-border data exchange platform with multi-layer secure gateway features, which requires two Elliptic Curve Digital Signature Algorithm (ECDSA) signing and verification steps during each data interaction [<xref ref-type="bibr" rid="ref-19">19</xref>]. Although the platform adopts a &#x201C;relaxed trust assumption&#x201D;, meaning it does not fully trust either the data providers or receivers. It still relies on global cloud services as intermediaries, using an audit blockchain at the application layer to validate the secure gateway and enforce penalties. However, this centralized control mechanism may pose a single point of failure risk, and if the global cloud service itself is attacked or behaves maliciously, the security of the entire system will be significantly threatened.</p>
<p>In order to provide a more thorough explanation of the aforementioned scheme, the subsequent example will be employed to illustrate the process of cross-border trade. The exporter and importer establish contract terms and exchange necessary documents (contracts, orders, invoices, packing lists). Exporters prepare some documentation, including commercial invoices, packing lists, origin certificates, and inspection/quarantine certificates, which are submitted to to customs and governmental regulatory authorities for regulatory review. Often, companies struggle to track the status of document reviews, leading to information asymmetry and lack of transparency. Post-audit, the company sends transport documents and insurance policies to the carrier, who delivers the goods to the importing country via international transport. The importer then processes import declarations and collects the goods. This process involves repetitive document transmission.</p>
<p>Facing the complexities of diversified and fine-grained file-sharing among organizations, where single files may require access by multiple entities. During the document-sharing process, only policy-specified authoritative entities participate in document sharing; others may engage in different file exchanges but not in this process. We propose a decentralization MA-ABE scheme that allows each participating entity to freely join and manage the keys. Using IPFS for decentralized storage and integrated with Caterpillar, our solution enforces adherence to predefined processes and offers real-time status transparency, thereby enhancing trust and compliance in customs clearance document exchanges.</p>
<p>The main contributions are summarized as follows:
<list list-type="bullet">
<list-item>
<p>We propose a practical MA-ABE scheme that supports proxy decryption, attribute revocation, and policy update. The security proof shows that our MA-ABE scheme is statically secure in the random oracle model. Theoretical analysis and simulation experiments demonstrate that our scheme is highly efficient and practical in terms of proxy decryption and attribute revocation.</p></list-item>
<list-item>
<p>We improve the CTUpdate algorithm for the problem of ciphertext rollback attacks in general attribute revocation mechanisms. In our scheme, the update algorithms must all be operated by attribute privileges, which do not send any update cipher keys to any entity, thus achieving true backward security. While this increases the computational burden of attribute permissions, it strikes a reasonable balance between efficiency and security.</p></list-item>
<list-item>
<p>We propose a Multi-Authority Data Exchange Architecture (MADEXA), which integrates hybrid encryption, MA-ABE, smart contracts, and IPFS. To enhance system decentralization, we implemented a mechanism in the MADEXA scheme where multiple institutions interact with smart contracts and jointly participate in the generation of public parameters.</p></list-item>
<list-item>
<p>We demonstrate the integration of MADEXA with Caterpillar to provide data flow protection for business process management systems. This enables secure sharing of process-oriented data between different departments and enterprises, and enables visualization of the status of data sharing, and real-time monitoring of the clearance status by each participant.</p></list-item>
</list></p>
</sec>
<sec id="s2">
<label>2</label>
<title>Background Knowledge</title>
<sec id="s2_1">
<label>2.1</label>
<title>Complexity Assumption</title>
<p>For our security proof, we utilize the q-type assumption over prime-order bilinear groups, specifically referring to the q-DPBDHE2 [<xref ref-type="bibr" rid="ref-20">20</xref>], which is a variant of the q-decisional parallel bilinear Diffie-Hellman exponent assumption presented in [<xref ref-type="bibr" rid="ref-21">21</xref>].</p>
<p>Definition 1</p>
<p><italic>(q-DPBDHE2 Assumption) Select a bilinear group <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:math></inline-formula> of prime order p, associated with a non-degenerate bilinear map <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula>, based on the security parameter <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula>. Let <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>q</mml:mi></mml:msub></mml:math></inline-formula> be chosen uniformly at random from <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi></mml:msub></mml:math></inline-formula> and let <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mi>R</mml:mi></mml:math></inline-formula> be chosen uniformly at random from <inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula>. Let <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mi>D</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>&#x1D49F;</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>&#x0210B;</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>&#x02133;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where</italic>
<disp-formula id="ueqn-1"><mml:math id="mml-ueqn-1" display="block"><mml:mtable columnalign="left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mi>&#x0210B;</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msup><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mi>q</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2216;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi>&#x1D49F;</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mi>q</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2216;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mtd><mml:mtd><mml:mrow><mml:mi>&#x02133;</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:msup><mml:mi>a</mml:mi><mml:mi>i</mml:mi></mml:msup><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>&#x2223;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo>,</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2260;</mml:mo><mml:msup><mml:mi>j</mml:mi><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>and this assumption states that no polynomial-time distinguisher can differentiate between the distributions <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mrow><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>s</mml:mi><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:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mrow><mml:mo>(</mml:mo><mml:mi>D</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> with non-negligible advantage.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Business Process Modeling and Notation</title>
<p>Business Process Modeling and Notation (BPMN) and Decision Model and Notation (DMN) are the most widely used process and decision modeling languages [<xref ref-type="bibr" rid="ref-22">22</xref>]. BPMN defines the symbols and semantics for collaboration diagrams, flowcharts, and processes. It is intended for direct use by stakeholders involved in designing, managing, and implementing business processes, while also being precise enough to allow BPMN diagrams to be converted into software process components. It features easy-to-use, flowchart-like symbols that are independent of any specific implementation environment. In <xref ref-type="fig" rid="fig-1">Fig. 1</xref>, it shows a BPMN collaboration diagram that illustrates the customs clearance process based on a single window system.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Customs clearance process based on single window</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-1.tif"/>
</fig>
<p>Caterpillar is designed to combine the convenience of Business Process Management System (BPMS) with the security and transparency features of blockchain platforms [<xref ref-type="bibr" rid="ref-23">23</xref>]. Similar to the traditional BPMS, it supports the instantiation of process models and allows users to monitor the status of process instances and perform tasks within them. What sets it apart is the preservation of each process instance&#x2019;s state on the Ethereum, where workflow management is facilitated by smart contracts produced via a BPMN-to-Solidity compiler. It is particularly suited for cross-organizational processes and is often referred to as &#x201C;process-centric decentralized applications&#x201D;. The applications operate among untrusted participants and require ensuring that all parties adhere to predefined process model rules. Caterpillar aims to ensure design compliance, meaning that no party can execute a transaction that violates the collaborative process model.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>MA-ABE Scheme</title>
<p>This paper proposes an enhanced Ciphertext-Policy Multi-Authority Attribute-Based Encryption (CP-MA-ABE) scheme that supports proxy decryption, attribute revocation and policy updates. It builds on the MA-ABE framework by Liu et al. and addresses the inadequacy of the model in resisting user collusion attacks [<xref ref-type="bibr" rid="ref-24">24</xref>]. The proposed improvements are designed to optimise proxy decryption and attribute revocation for practical applications, particularly for users with limited resources.The policy update method is consistent with that of Liu et al.&#x2019;s scheme [<xref ref-type="bibr" rid="ref-24">24</xref>]. The key symbols utilised in the proposed scheme are listed in <xref ref-type="table" rid="table-1">Table 1</xref>. The subsequent sections provide detailed descriptions of the algorithms.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>The ABE scheme system symbol</title>
</caption>
<table>
<colgroup>
<col/>
<col width="45mm"/>
<col/>
<col width="45mm"/>
</colgroup>
<thead>
<tr>
<th>Symbol</th>
<th>Description</th>
<th>Symbol</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi>G</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula></td>
<td>The global public parameters</td>
<td><inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi>T</mml:mi></mml:math></inline-formula></td>
<td>Maps each attribute to a unique attribute authority</td>
</tr>
<tr>
<td><inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula></td>
<td>The set <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mi>B</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Binary state tree corresponding to attribute <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:mi>x</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula></td>
<td>Unique user identity</td>
<td><inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>The attribute set owned by <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> under <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:mi>&#x03B8;</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:mi>U</mml:mi></mml:math></inline-formula></td>
<td>The attribute universe</td>
<td><inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:mi>A</mml:mi><mml:mi>U</mml:mi><mml:msub><mml:mi>G</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>The attribute user group corresponding to attribute <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mi>x</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mrow><mml:mi>G</mml:mi><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow></mml:math></inline-formula></td>
<td>The global identifier universe</td>
<td><inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:msub><mml:mrow><mml:mi>A</mml:mi><mml:mi>S</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>The authority secret key/public key</td>
</tr>
<tr>
<td><inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:mi>&#x03B8;</mml:mi></mml:math></inline-formula></td>
<td>The attribute authority</td>
<td><inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Attribute group key corresponding to attribute <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mi>x</mml:mi></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x0398;</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>The system authority universe</td>
<td><inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:mi>H</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>F</mml:mi></mml:math></inline-formula></td>
<td>Maps each user identities/authority to elements of <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:math></inline-formula>.</td>
</tr>
<tr>
<td><inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mi>R</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>User <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> retrieval key</td>
<td><inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Random numbers belong to <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mi>T</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>User <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> transformation key</td>
<td><inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>User attribute key under authority <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mi>&#x03B8;</mml:mi></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p><inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mrow><mml:mtext mathvariant="sans-serif">GlobalSetup</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula>: This algorithm accepts an implicit security parameter <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula> as part of its input. It chooses a suitable bilinear group <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:math></inline-formula> of prime order <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mi>p</mml:mi></mml:math></inline-formula>, and sets <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mi>g</mml:mi></mml:math></inline-formula> as a generator of <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:math></inline-formula>. It defines a bilinear map <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>. The algorithm outputs <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>U</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x0398;</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi>G</mml:mi><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>H</mml:mi><mml:mo>,</mml:mo><mml:mi>F</mml:mi><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mrow><mml:mtext mathvariant="sans-serif">AAKeyGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: The attribute authority (AA) is responsible for executing this algorithm. For <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mi>&#x03B8;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x0398;</mml:mi></mml:msub></mml:math></inline-formula>, it selects <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula>, the final output <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:mi>A</mml:mi><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mrow><mml:mtext mathvariant="sans-serif">UserKeyGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>A</mml:mi><mml:mi>S</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mspace width="-2mm" /><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mspace width="-1mm" /><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>: For each attribute <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:mi>x</mml:mi></mml:math></inline-formula> in <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, the authority maintains <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mi>A</mml:mi><mml:mi>U</mml:mi><mml:msub><mml:mi>G</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> who possess the attribute <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:mi>x</mml:mi></mml:math></inline-formula> and selects <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula>, then <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:msub><mml:mrow><mml:mtext mathvariant="italic">KP</mml:mtext></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> are computed. Finally, The authority sends <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="italic">KP</mml:mtext></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> and publishes <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>x</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mrow><mml:mtext mathvariant="sans-serif">Encrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula>: <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow></mml:math></inline-formula> is the access structure, where <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mo>,</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. <inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow></mml:math></inline-formula> is an <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mi>l</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula> matrix, and <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mi>&#x03B4;</mml:mi></mml:math></inline-formula> maps each row <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> to an attribute <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The function <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:mi>&#x03C1;</mml:mi></mml:math></inline-formula> associates each row <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:msub><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> with the authority that grants the attribute <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, which can be represented as <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>T</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The encryption of the plaintext message <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:mi>m</mml:mi></mml:math></inline-formula> proceeds as follows: Choose random numbers <inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:msub><mml:mi>r</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>l</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula> and two random vectors <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:mrow><mml:mtext mathvariant="bold">v</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>v</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:mrow><mml:mtext mathvariant="bold">z</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:math></inline-formula>. For <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>L</mml:mi></mml:math></inline-formula>, compute <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:msub><mml:mi>&#x03B2;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="bold">v</mml:mtext></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="bold">z</mml:mtext></mml:mrow></mml:math></inline-formula>, where <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:mi>L</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. Then, calculate
<disp-formula id="ueqn-2"><mml:math id="mml-ueqn-2" 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>C</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>m</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>s</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03B2;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mspace width="1em" /><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>The ciphertext <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula> is set to be <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">B</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mrow><mml:mi mathvariant="fraktur">B</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:math></inline-formula></p>
<p><inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:mrow><mml:mtext mathvariant="sans-serif">Decrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi mathvariant="normal">&#x22A5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Assuming user possesses the <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and wants to decrypt <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula>. If <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2209;</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow></mml:math></inline-formula>, the algorithm outputs stops. Otherwise, the algorithm finds the constant set <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> for which <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:msub><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:msub><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</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:mn>0</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. Then compute:
<disp-formula id="ueqn-3"><mml:math id="mml-ueqn-3" 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: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:mi></mml:mi><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>K</mml:mi><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03B2;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>&#x03B4;</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>&#x03B4;</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mspace width="1em" /><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03B2;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Finally, the decrypted message is <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>s</mml:mi></mml:msup></mml:math></inline-formula>.</p>
<sec id="s3_1">
<label>3.1</label>
<title>Proxy Decryption</title>
<p>For decryption users with limited computational resources, proxy Decryption is an option. This phase comprises three algorithms: <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">PartDec</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula>, and <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mrow><mml:mtext mathvariant="sans-serif">FinalDec</mml:mtext></mml:mrow></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>T</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>: User <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> selects <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:mrow></mml:math></inline-formula> and calculates <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>K</mml:mi><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>t</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:math></inline-formula>. The algorithm outputs <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:msub><mml:mrow><mml:mi>T</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>K</mml:mi><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:msub><mml:mrow><mml:mi>R</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>t</mml:mi></mml:math></inline-formula>. Finally, the user sends <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:msub><mml:mrow><mml:mi>T</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to the proxy server and retains <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:msub><mml:mrow><mml:mi>R</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">PartDec</mml:mtext></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>T</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi mathvariant="normal">&#x22A5;</mml:mi></mml:mrow></mml:math></inline-formula>: The partial decryption algorithm is executed by the proxy server. If <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2209;</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow></mml:math></inline-formula>, the algorithm outputs stops. Otherwise, it calculates
<disp-formula id="ueqn-4"><mml:math id="mml-ueqn-4" 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:mi>C</mml:mi><mml:msubsup><mml:mi>T</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:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mspace width="1em" /><mml:mrow><mml:mtext>and</mml:mtext></mml:mrow><mml:mspace width="1em" /><mml:mi>C</mml:mi><mml:msubsup><mml:mi>T</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:mo>=</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>I</mml:mi></mml:mrow></mml:munder><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mi>K</mml:mi><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Finally, it generates the partially decrypted ciphertext <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:msubsup><mml:mi>T</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:mi>C</mml:mi><mml:msubsup><mml:mi>T</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:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> to be sent to the user.</p>
<p><inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:mrow><mml:mtext mathvariant="sans-serif">FinalDec</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi mathvariant="normal">&#x22A5;</mml:mi></mml:mrow></mml:math></inline-formula>: The final decryption algorithm is run by the user. If <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2209;</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow></mml:math></inline-formula>, this algorithm outputs stops. Otherwise, compute:
<disp-formula id="ueqn-5"><mml:math id="mml-ueqn-5" 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:mfrac><mml:msub><mml:mi>C</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mrow><mml:mi>C</mml:mi><mml:msubsup><mml:mi>T</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>&#x2217;</mml:mo><mml:msup><mml:mrow><mml:mi>C</mml:mi><mml:msubsup><mml:mi>T</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:mrow><mml:msub><mml:mrow><mml:mi>R</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>m</mml:mi><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>s</mml:mi></mml:msup></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>s</mml:mi></mml:msup></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mi>m</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Attribute Revocation</title>
<p>When the attribute authority revokes the user&#x2019;s attribute <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:mi>x</mml:mi></mml:math></inline-formula>, the authority should update the membership of <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:mi>A</mml:mi><mml:mi>U</mml:mi><mml:msub><mml:mi>G</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> and generate a new attribute group key <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:mi>G</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. The authority then computes the revocation update key <inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:mi>R</mml:mi><mml:mi>U</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>G</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula>. The authority sends <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:mi>R</mml:mi><mml:mi>U</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> to users and generates the update ciphertext key <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:mi>U</mml:mi><mml:mi>C</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mi>U</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>: The user executes the revocation attribute key update algorithm. <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:mi>x</mml:mi></mml:math></inline-formula> is the revoked attribute. For non-revoked attribute sets, the corresponding attribute keys remain unchanged. Otherwise, the algorithm updates <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:msubsup><mml:mrow><mml:mi>K</mml:mi><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>G</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:math></inline-formula> The revocation attribute key updated by the user is <inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>K</mml:mi><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate</mml:mtext></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo>,</mml:mo><mml:mi>U</mml:mi><mml:mi>C</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>: This algorithm is executed by AA to update the ciphertext. The algorithm updates <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo>&#x2032;</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>G</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mrow><mml:msubsup><mml:mrow><mml:mi>G</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x03B4;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2032;</mml:mo></mml:msubsup></mml:mrow></mml:mrow></mml:msup></mml:math></inline-formula> Finally, it generates the new re-encryption ciphertext <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:mi>C</mml:mi><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">A</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="fraktur">C</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:mrow><mml:mi mathvariant="fraktur">C</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>3</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo>&#x2032;</mml:mo></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>L</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Security Model</title>
<p>In this section, we extend the security model of RW15 by defining a security game between the challenger <inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> and adversary <inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> [<xref ref-type="bibr" rid="ref-20">20</xref>]. The game requires that all key-query requests from <inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> are instantly forwarded to <inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> after observing the global public parameters. Additionally, <inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> is allowed to corrupt (or manipulate) a fixed number of attribute authorities, with these corrupted entities remaining constant throughout the duration of the game.</p>
<p>The security attribute revocation in ABE should have two security requirements: forward security and backward security. Forward security means that if one or more attributes are revoked and a user&#x2019;s remaining attributes no longer satisfy the access policy, that user will not be able to access data that was previously accessible using the revoked attributes. Backward security means that if one or more attributes are revoked, then the user will not be able to access subsequent data using the revoked attributes.</p>
<p>Ciphertext rollback attack refers to a scenario where, when updating a ciphertext, a malicious user obtains ciphertext update items from the relevant AA. For example, attribute revocation or policy update. The user rolls back the updated ciphertext to a previous version by using the ciphertext update item. Finally, the malicious user can decrypt the rolled-back ciphertext using the private key of the older version.</p>
<p>The security game proceeds as follows:</p>
<p><inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:mrow><mml:mtext mathvariant="sans-serif">GlobalSetup:</mml:mtext></mml:mrow></mml:math></inline-formula> <inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> execute <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mrow><mml:mtext mathvariant="sans-serif">GlobalSetup</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm obtains the <inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:mi>G</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula> and then forwards them to <inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:mrow><mml:mtext mathvariant="sans-serif">Adversary's &#x00A0; Queries</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> establishes a set of corrupt permissions <inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi>C</mml:mi></mml:msub><mml:mo>&#x2282;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x0398;</mml:mi></mml:msub></mml:math></inline-formula> and the remaining uncorrupted permissions <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi>N</mml:mi></mml:msub><mml:mo>&#x2282;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x0398;</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi>C</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. Our query and reply is similar to RW15 regarding <inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:mrow><mml:mtext mathvariant="sans-serif">Authority&#x00A0; Public&#x00A0; Keys</mml:mtext></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:mrow><mml:mtext mathvariant="sans-serif">Secret&#x00A0; Keys</mml:mtext></mml:mrow></mml:math></inline-formula>. <inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> statically issues the following queries:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:mrow><mml:mtext mathvariant="sans-serif">Transform &#x00A0; Key &#x00A0; query</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> requests a key transformation by submitting a sequence of <inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> tuples to <inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>, also under the condition that <inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:mi>T</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2229;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi>C</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mpadded width="0"><mml:mtext>&#x29F8;</mml:mtext></mml:mpadded></mml:mrow><mml:mn>0</mml:mn></mml:math></inline-formula>. Note that it is meaningless to query the transform key for a user <inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> who has already had their secret key queried.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:mrow><mml:mtext mathvariant="sans-serif">Encryption &#x00A0; query</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> submits a challenge access structures <inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and two equal-length messages <inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:msub><mml:mi>m</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>. The requirement is that these challenge access structures cannot be met through attributes <inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> involved in previous secret key query operations, nor through attribute combinations controlled by the corrupt authorities.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUupdate &#x00A0; query</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> issues a revocation attribute key update query by submitting <inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and a revocation attribute <inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:mi>x</mml:mi></mml:math></inline-formula> to <inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<p><inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:mrow><mml:mtext mathvariant="sans-serif">UKeyGen &#x00A0; query</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> issue a update the ciphertext key query by submitting two equal-length challenge messages <inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:msub><mml:mi>m</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula> and two access policies <inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:mi>i</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:mrow><mml:mtext mathvariant="sans-serif">Challenger's &#x00A0; Replies</mml:mtext></mml:mrow></mml:math></inline-formula>: Upon receiving a query, the challenger <inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> selects a random bit <inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:mi>b</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and responds accordingly.
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:mrow><mml:mtext mathvariant="sans-serif">Transform &#x00A0; Keys&#xA0;</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> runs the <inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm to get the transformed key set <inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:msub><mml:mrow><mml:mi>T</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and send them to <inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:mrow><mml:mtext mathvariant="sans-serif">Encryption&#xA0;</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> run <inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:mrow><mml:mtext mathvariant="sans-serif">Encrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula>, where <inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> is the set of all authority public keys (corrupt and non corrupt).</p></list-item>
<list-item>
<p><inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate</mml:mtext></mml:mrow></mml:math></inline-formula>: For <inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>x</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> run <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm to get <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and subsequently send to <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mrow><mml:mtext mathvariant="sans-serif">UKeyGen&#xA0;</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> run <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mrow><mml:mtext mathvariant="sans-serif">Encrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula>. Then <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> proceeds to execute <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:mrow><mml:mtext mathvariant="sans-serif">UKeyGen</mml:mtext></mml:mrow></mml:math></inline-formula> <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:mo stretchy="false">(</mml:mo><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>U</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate2</mml:mtext></mml:mrow></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mi>U</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mover><mml:mrow><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>. At last, it sends <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:mrow><mml:mover><mml:mrow><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> to <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><bold>Guess.</bold> <italic><inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs a guess bit <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. If <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>b</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> win the game</italic>.</p>
<p><bold>Definition 2.</bold> <italic>We say that an attacker statically breaks the scheme if it has a non negligible advantage in correctly guessing the bit <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:mi>b</mml:mi></mml:math></inline-formula> in the above security game. The advantage of <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> in this game is defined as <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:msub><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>P</mml:mi><mml:mi>r</mml:mi><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></italic>.</p>

</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Our Framework</title>
<p>Throughout the paper, the scenario in <xref ref-type="fig" rid="fig-1">Fig. 1</xref> will be consistently referred to. <xref ref-type="table" rid="table-2">Table 2</xref> provides detailed information on three documents: i) the manufacturer&#x2019;s purchase order, ii) the international supplier&#x2019;s export documents&#x2013;comprising the shipping bill and commercial invoice&#x2013;which can be merged for efficiency, and iii) customs clearance data from national customs. This integrated design facilitates accessibility for multiple stakeholders, enabling all participants to validate the information&#x2019;s overall integrity while ensuring decryption access is restricted to intended recipients only.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Summary information on cross-border data sharing</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Message</th>
<th colspan="2">Metadata</th>
<th>Data</th>
<th colspan="2">Body (slices)</th>
<th>Recipients</th>
</tr>
</thead>
<tbody>
<tr>
<td>Supply purchase order</td>
<td>sender:</td>
<td>Manufacturer</td>
<td>Companyname: sigma</td>
<td></td>
<td></td>
<td>International supplier</td>
</tr>
<tr>
<td></td>
<td></td>
<td>0&#x00D7;07e<inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>A6</td>
<td>Address: 56, Sigma street</td>
<td>Key:</td>
<td>eyts<inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>tmn</td>
<td></td>
</tr>
<tr>
<td></td>
<td>processId:</td>
<td>45896228</td>
<td>E-mail: cyna.sigma@mail.com</td>
<td>Fields:</td>
<td>DStg<inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>6yu</td>
<td></td>
</tr>
<tr>
<td></td>
<td>messageId:</td>
<td>27156063</td>
<td>Price: &#x0024;<inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mn>000</mml:mn></mml:math></inline-formula></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Export document</td>
<td>sender:</td>
<td>Int supplier</td>
<td>Manufacturer-company: Beta</td>
<td>SliceId:</td>
<td>63298445</td>
<td>Manufacturer</td>
</tr>
<tr>
<td></td>
<td></td>
<td>0x510<inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>39</td>
<td>Delivery-address: 10, Beta street</td>
<td>Key:</td>
<td>eJyt<inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>YFo</td>
<td>National customs</td>
</tr>
<tr>
<td></td>
<td>processId:</td>
<td>45896228</td>
<td>E-mail: mnfctr.beta@mail.com</td>
<td>Fields:</td>
<td>rXpN<inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>8rg</td>
<td>International customs</td>
</tr>
<tr>
<td></td>
<td>messageId:</td>
<td>89562537</td>
<td>Amountpaid: &#x0024;<inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:mn>10</mml:mn><mml:mo>,</mml:mo><mml:mn>000</mml:mn></mml:math></inline-formula></td>
<td></td>
<td></td>
<td>International carrier</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>InvoiceID: 156841</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>Address: 88, Omega street</td>
<td>SliceId:</td>
<td>18695481</td>
<td>Manufacturer</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>Total: $10,000</td>
<td>Key:</td>
<td>eJyt&#x2026;S6&#x003D;</td>
<td>National customs</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>CompanyVAT: U789456123</td>
<td>Fields:</td>
<td>0bTX<inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>D2h</td>
<td>International customs</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>Issuedate: 2023-10-22</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>National customs clearance</td>
<td>sender:</td>
<td>Nat customs</td>
<td>Taxpayment: confirmed</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td>0x358<inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>23</td>
<td>Conformitycheck: passed</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>processId:</td>
<td>45896228</td>
<td>Date: 2023-10-20</td>
<td>Key:</td>
<td>eJds<inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>dju</td>
<td>Manufacturer</td>
</tr>
<tr>
<td></td>
<td>messageId:</td>
<td>21453658</td>
<td>Sender: Beta</td>
<td>Fields:</td>
<td>hRB3<inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>flj</td>
<td>International customs</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>Receiver: Sigma</td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s4_1">
<label>4.1</label>
<title>Modeling Framework</title>
<p>As shown in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>, our architecture&#x2019;s main components consist of the following seven entities:</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Interaction between the framework and components of the model</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-2.tif"/>
</fig>
<p><list list-type="bullet">
<list-item>
<p>Certifier Central: It is responsible for deploying smart contracts, assigning user roles, and generating unique global identifiers for each user and authority within the system.</p></list-item>
<list-item>
<p>Data Owner: Responsible for encrypting information, setting access policies, and maintaining a blockchain account along with an RSA key pair.</p></list-item>
<list-item>
<p>Data User: Participants who desire to obtain information, such as that of the manufacturer, customs, and the supplier. The Data user can choose whether to use proxy decryption or not.</p></list-item>
<list-item>
<p>Authority Network: Each Authority is an independent attribute authority. Each Authority can manage any number of attributes, and each attribute is only associated with an Authority.</p></list-item>
<list-item>
<p>Proxy Server: Responsible for providing robust computational support, enabling ciphertext updates and partial decryption for users.</p></list-item>
<list-item>
<p>Smart Contracts: Utilized for the secure storage of resource locators, these contracts are detailed in subsequent sections.</p></list-item>
<list-item>
<p>Data Store: This IPFS-based storage server generates a unique hash for each file based on its content. Utilizing IPFS&#x2019;s InterPlanetary Naming System (IPNS), it ensures stable and persistent content references by maintaining unaltered access links despite content updates. IPNS is used as the resource locator.</p></list-item>
</list></p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Model Process</title>
<p>In this section, a detailed introduction to the specific processes of system startup, authority initialization, key management, data sharing, proxy decryption, attribute revolution, and policy update is provided. First, it is assumed that all participants agree on the smart contract code and user roles. The Certifier Central deploys all smart contracts on the blockchain. The Certifier Central assigns participant roles to specific users identified by their blockchain accounts. Each Authority assigned the attributes to the appropriate user. Data users generate RSA key pairs and upload their public keys to the RSA smart contract, which Authorities use to verify identities and transmit attribute keys.</p>
<p>As shown in Algorithm 1, the Initialization phase involves constructing the Authorities network and establishing encryption parameters. To ensure complete decentralization, the public parameter generation procedure for MA-ABE has been redesigned as a Multi-Party Computation protocol. Specifically, a commit-then-open coin-tossing protocol is used to produce a random generator. Each Authority publishes the hash of the locally generated random pairing elements on the blockchain, then reveals these elements themselves, completing the commit-then-open protocol. Each Authority verifies that the hash of the pairing elements matches their revealed values and then processes all revealed values to compute the public parameters, which become part of the public parameters. Each Authority uses the <inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:mrow><mml:mtext mathvariant="sans-serif">AAKeyGen</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm to create its own public/private key.</p>
<fig id="fig-7">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-7.tif"/>
</fig>
<p>Key management securely distributes and assembles attribute keys, enabling authorized data users to access encrypted information. As shown in <xref ref-type="fig" rid="fig-3">Fig. 3a</xref>, it represents the steps of the key management phase, this phase involves the Certifier Central storing user attributes and records of their process participation. For instance, the manufacturer holds the address <bold>0 &#x00D7; 07e<inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:mo>&#x2026;</mml:mo></mml:math></inline-formula>A6</bold>, associated with process 45,896,228. To access message data, users request keys from Authorities using their <inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>. Each Authority retrieves relevant user information from the Attribute Certifier Contract and generates an attribute key using this information, public parameters, and its own key. The Authorities then send these keys to the user for decryption. Only after collecting keys from all Authorities can a user combine them into the complete attribute key. No single authority is capable of generating the complete attribute key independently.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Key management and proxy decryption phases</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-3.tif"/>
</fig>
<fig id="fig-8">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-8.tif"/>
</fig>
<p>The process of data sharing is divided into encryption and decryption phases, with Algorithm 2 illustrating the data owner&#x2019;s encryption procedure. Based on MA-ABE, the data owner establishes an access control policy. Considering that business processes may require encryption of plaintext data of arbitrary size, we employ a two-stage hybrid encryption strategy. The data owner encrypts a randomly generated symmetric key using the <inline-formula id="ieqn-224"><mml:math id="mml-ieqn-224"><mml:mrow><mml:mtext mathvariant="sans-serif">Encrypt</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm. The symmetric key is used to encrypt the actual business information using a symmetric key encryption algorithm. The encrypted symmetric key and data are stored in a formatted file (message). Decryption mirrors this process. Access to the original information requires the symmetric key, ensuring only policy-compliant users can decrypt the data, thus enforcing fine-grained access control.</p>
<p>As illustrated in <xref ref-type="fig" rid="fig-3">Fig. 3b</xref>, the process of proxy encryption involves several key steps. Firstly, the data user generates transformation key and a retrieval key from the attribute key, then transmits the transformation key along with the message ID to the Proxy Server. The Proxy Server retrieves the corresponding message from the Message Contract and Data Store using the message ID and applies the transformation key for partial decryption. It forwards the partially decrypted message to the data user, who completes the decryption process using the retrieval key to obtain the symmetric key, thereby gaining access to the information.</p>
<p>In Algorithm 3, it describes the process of attribute revocation in MADEXA. The policy update process in MADEXA can be obtained through the Algorithm 4. In their algorithm, &#x201C;link&#x201D; refers to the content identifier (CID) used for rebinding in IPNS.</p>
<fig id="fig-9">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-9.tif"/>
</fig>
<fig id="fig-10">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-10.tif"/>
</fig>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Data Structure</title>
<p>In <xref ref-type="table" rid="table-2">Table 2</xref>, it presents the format of messages that are encrypted and stored in the Data Store. Each storage entry is composed of one or more slices, designed to meet the access needs of different participants. Each file consists of metadata and a body. The metadata contains the sender, process id, and unique message id, while the body contains encrypted key-value pair data for easy indexing and retrieval, with each slice identified by a unique slice id. The sender corresponds to the user&#x2019;s ethereum address and is used to identify the sender of the message. The process id and message id are fixed-length random numbers generated by the entity to uniquely identify each process and message instance. Key corresponds to the symmetric key that has been encrypted using MA-ABE, and Fields indicates the JSON-formatted data encrypted by the above symmetric key. We achieve finer-grained access control management by setting access policies on message slices. The messages are stored in the Data Store, retrievable via resource locators, and their integrity and authenticity are verified through hashing.</p>

</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Security Proof</title>
<p>Our main security theorem is shown below:</p>
<p>Theorem 1</p>
<p><italic>If the architecture proposed by RW15 maintains static security under q-DPBDHE2 assumptions in the random oracle model, then all probabilistic polynomial-time (PPT) adversaries attempting to statically break our scheme within this model will have a negligible success probability</italic>.</p>
<p><bold>Proof.</bold> Suppose there exists a PPT adversary capable of compromising our scheme with a non-negligible advantage <inline-formula id="ieqn-248"><mml:math id="mml-ieqn-248"><mml:mi>&#x03F5;</mml:mi></mml:math></inline-formula>. Then, we can construct a simulator <inline-formula id="ieqn-249"><mml:math id="mml-ieqn-249"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> in the random oracle model that breaks the static security of the RW15 scheme with the same advantage <inline-formula id="ieqn-250"><mml:math id="mml-ieqn-250"><mml:mi>&#x03F5;</mml:mi></mml:math></inline-formula>. &#x025A1;</p>
<p><inline-formula id="ieqn-251"><mml:math id="mml-ieqn-251"><mml:mrow><mml:mtext mathvariant="sans-serif">GlobalSetup:</mml:mtext></mml:mrow></mml:math></inline-formula><inline-formula id="ieqn-252"><mml:math id="mml-ieqn-252"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> obtains the <inline-formula id="ieqn-253"><mml:math id="mml-ieqn-253"><mml:mi>G</mml:mi><mml:mi>P</mml:mi></mml:math></inline-formula> from the challenger <inline-formula id="ieqn-254"><mml:math id="mml-ieqn-254"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>, and then forwards them to the adversary <inline-formula id="ieqn-255"><mml:math id="mml-ieqn-255"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-256"><mml:math id="mml-ieqn-256"><mml:mrow><mml:mtext mathvariant="sans-serif">Static &#x00A0; security:</mml:mtext></mml:mrow></mml:math></inline-formula><inline-formula id="ieqn-257"><mml:math id="mml-ieqn-257"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> establishes a set of corrupt permissions <inline-formula id="ieqn-258"><mml:math id="mml-ieqn-258"><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi>C</mml:mi></mml:msub><mml:mo>&#x2282;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x0398;</mml:mi></mml:msub></mml:math></inline-formula> and the remaining uncorrupted permissions <inline-formula id="ieqn-259"><mml:math id="mml-ieqn-259"><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi>N</mml:mi></mml:msub><mml:mo>&#x2282;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi mathvariant="normal">&#x0398;</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D4B0;</mml:mi></mml:mrow><mml:mi>C</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The attacker <inline-formula id="ieqn-260"><mml:math id="mml-ieqn-260"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs the lists <inline-formula id="ieqn-261"><mml:math id="mml-ieqn-261"><mml:msub><mml:mi>m</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-262"><mml:math id="mml-ieqn-262"><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-263"><mml:math id="mml-ieqn-263"><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-264"><mml:math id="mml-ieqn-264"><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-265"><mml:math id="mml-ieqn-265"><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and a sequence of <inline-formula id="ieqn-266"><mml:math id="mml-ieqn-266"><mml:mo stretchy="false">(</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. <inline-formula id="ieqn-267"><mml:math id="mml-ieqn-267"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> obtains this information and subsequently forwards it to <inline-formula id="ieqn-268"><mml:math id="mml-ieqn-268"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>. Our proof is similar to RW15 regarding <inline-formula id="ieqn-269"><mml:math id="mml-ieqn-269"><mml:mrow><mml:mtext mathvariant="sans-serif">Authority&#x00A0; Public&#x00A0; Keys</mml:mtext></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-270"><mml:math id="mml-ieqn-270"><mml:mrow><mml:mtext mathvariant="sans-serif">Secret&#x00A0; Keys</mml:mtext></mml:mrow></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-271"><mml:math id="mml-ieqn-271"><mml:mrow><mml:mtext mathvariant="sans-serif">Transform &#x00A0; Keys</mml:mtext></mml:mrow></mml:math></inline-formula>: <inline-formula id="ieqn-272"><mml:math id="mml-ieqn-272"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> performs Secret key query to obtain the <inline-formula id="ieqn-273"><mml:math id="mml-ieqn-273"><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> from <inline-formula id="ieqn-274"><mml:math id="mml-ieqn-274"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>. <inline-formula id="ieqn-275"><mml:math id="mml-ieqn-275"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> then selects <inline-formula id="ieqn-276"><mml:math id="mml-ieqn-276"><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula> and computing <inline-formula id="ieqn-277"><mml:math id="mml-ieqn-277"><mml:msub><mml:mrow><mml:mi>T</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Subsequently, <inline-formula id="ieqn-278"><mml:math id="mml-ieqn-278"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sends <inline-formula id="ieqn-279"><mml:math id="mml-ieqn-279"><mml:msub><mml:mrow><mml:mi>T</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-280"><mml:math id="mml-ieqn-280"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-281"><mml:math id="mml-ieqn-281"><mml:mrow><mml:mtext mathvariant="sans-serif">Encryption</mml:mtext></mml:mrow></mml:math></inline-formula>: Upon receiving a ciphertext query from the adversary, <inline-formula id="ieqn-282"><mml:math id="mml-ieqn-282"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> forwards this request to <inline-formula id="ieqn-283"><mml:math id="mml-ieqn-283"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>. <inline-formula id="ieqn-284"><mml:math id="mml-ieqn-284"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-285"><mml:math id="mml-ieqn-285"><mml:mi>b</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and run <inline-formula id="ieqn-286"><mml:math id="mml-ieqn-286"><mml:mrow><mml:mtext mathvariant="sans-serif">Encrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>A</mml:mi><mml:mi>P</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>&#x03B8;</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>,</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-287"><mml:math id="mml-ieqn-287"><mml:mi>G</mml:mi><mml:mi>P</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula>. Finally, <inline-formula id="ieqn-288"><mml:math id="mml-ieqn-288"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> transmits the ciphertexts <inline-formula id="ieqn-289"><mml:math id="mml-ieqn-289"><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:math></inline-formula> to <inline-formula id="ieqn-290"><mml:math id="mml-ieqn-290"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-291"><mml:math id="mml-ieqn-291"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate &#x00A0; Keys</mml:mtext></mml:mrow></mml:math></inline-formula>: In response to a <inline-formula id="ieqn-292"><mml:math id="mml-ieqn-292"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate</mml:mtext></mml:mrow></mml:math></inline-formula> query from the adversary, <inline-formula id="ieqn-293"><mml:math id="mml-ieqn-293"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> conducts a secret key query operation to obtain <inline-formula id="ieqn-294"><mml:math id="mml-ieqn-294"><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> from <inline-formula id="ieqn-295"><mml:math id="mml-ieqn-295"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>. <inline-formula id="ieqn-296"><mml:math id="mml-ieqn-296"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> executes the <inline-formula id="ieqn-297"><mml:math id="mml-ieqn-297"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm to refresh the attribute key <inline-formula id="ieqn-298"><mml:math id="mml-ieqn-298"><mml:mi>U</mml:mi><mml:mi>A</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. This updated key is subsequently delivered to <inline-formula id="ieqn-299"><mml:math id="mml-ieqn-299"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><inline-formula id="ieqn-300"><mml:math id="mml-ieqn-300"><mml:mrow><mml:mtext mathvariant="sans-serif">UKeyGen &#x00A0; Keys</mml:mtext></mml:mrow></mml:math></inline-formula>: For a UKeyGen query, <inline-formula id="ieqn-301"><mml:math id="mml-ieqn-301"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> forwards the request to <inline-formula id="ieqn-302"><mml:math id="mml-ieqn-302"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>, which does not provide an advantage to <inline-formula id="ieqn-303"><mml:math id="mml-ieqn-303"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>. <inline-formula id="ieqn-304"><mml:math id="mml-ieqn-304"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> independently selects the challenge message <inline-formula id="ieqn-305"><mml:math id="mml-ieqn-305"><mml:msub><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:msub></mml:math></inline-formula> and generates encrypted messages EnMess (<inline-formula id="ieqn-306"><mml:math id="mml-ieqn-306"><mml:msub><mml:mi>m</mml:mi><mml:mi>b</mml:mi></mml:msub></mml:math></inline-formula>) using <inline-formula id="ieqn-307"><mml:math id="mml-ieqn-307"><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mtext mathvariant="bold">A</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x03B4;</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. Assuming identical encryption randomness for both <inline-formula id="ieqn-308"><mml:math id="mml-ieqn-308"><mml:msub><mml:mi>m</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-309"><mml:math id="mml-ieqn-309"><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula>, it follows that EnMess (<inline-formula id="ieqn-310"><mml:math id="mml-ieqn-310"><mml:msub><mml:mi>m</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula>) &#x003D; EnMess (<inline-formula id="ieqn-311"><mml:math id="mml-ieqn-311"><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula>). Thus, when <inline-formula id="ieqn-312"><mml:math id="mml-ieqn-312"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula> executes <inline-formula id="ieqn-313"><mml:math id="mml-ieqn-313"><mml:mrow><mml:mtext mathvariant="sans-serif">UKeyGen</mml:mtext></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-314"><mml:math id="mml-ieqn-314"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate2</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> to obtain the updated ciphertext <inline-formula id="ieqn-315"><mml:math id="mml-ieqn-315"><mml:mrow><mml:mover><mml:mrow><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>, no information about the chosen message is revealed. <inline-formula id="ieqn-316"><mml:math id="mml-ieqn-316"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> then relays <inline-formula id="ieqn-317"><mml:math id="mml-ieqn-317"><mml:mrow><mml:mover><mml:mrow><mml:mi>C</mml:mi><mml:mi>T</mml:mi></mml:mrow><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> to <inline-formula id="ieqn-318"><mml:math id="mml-ieqn-318"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Guess</bold> <inline-formula id="ieqn-319"><mml:math id="mml-ieqn-319"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs a guess bit <inline-formula id="ieqn-320"><mml:math id="mml-ieqn-320"><mml:mi>b</mml:mi><mml:mrow><mml:mtext>&#x00A0;</mml:mtext><mml:mo>&#x2032;</mml:mo></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, subsequently forwarding <inline-formula id="ieqn-321"><mml:math id="mml-ieqn-321"><mml:mi>b</mml:mi><mml:mrow><mml:mtext>&#x00A0;</mml:mtext><mml:mo>&#x2032;</mml:mo></mml:mrow></mml:math></inline-formula> to <inline-formula id="ieqn-322"><mml:math id="mml-ieqn-322"><mml:mrow><mml:mi>&#x1D49E;</mml:mi></mml:mrow></mml:math></inline-formula>. If <inline-formula id="ieqn-323"><mml:math id="mml-ieqn-323"><mml:mi>b</mml:mi><mml:mrow><mml:mtext>&#x00A0;</mml:mtext><mml:mo>&#x2032;</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>b</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-324"><mml:math id="mml-ieqn-324"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> win the game.</p>
<p>If the adversary <inline-formula id="ieqn-325"><mml:math id="mml-ieqn-325"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> has an advantage <inline-formula id="ieqn-326"><mml:math id="mml-ieqn-326"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msub><mml:mi>&#x03BD;</mml:mi><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x03F5;</mml:mi></mml:math></inline-formula> in destroys the scheme, then the simulator <inline-formula id="ieqn-327"><mml:math id="mml-ieqn-327"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> can also be destroyed the RW15 scheme has the same advantage <inline-formula id="ieqn-328"><mml:math id="mml-ieqn-328"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msub><mml:mi>&#x03BD;</mml:mi><mml:mrow><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>&#x03F5;</mml:mi></mml:math></inline-formula>. As demonstrated in [<xref ref-type="bibr" rid="ref-20">20</xref>], the RW15 scheme is non-adaptively secure under the q-DPBDHE2 assumption within the random oracle model, thus the proposed scheme also satisfies this security property.</p>
<p>Theorem 2</p>
<p><italic>Our proposed scheme is secure against user collusion attacks</italic>.</p>
<p><bold>Proof.</bold> When an attribute <inline-formula id="ieqn-329"><mml:math id="mml-ieqn-329"><mml:mi>x</mml:mi></mml:math></inline-formula> is revoked from a user <inline-formula id="ieqn-330"><mml:math id="mml-ieqn-330"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, a different randomly generated value of <inline-formula id="ieqn-331"><mml:math id="mml-ieqn-331"><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> corresponds in the revocation update key <inline-formula id="ieqn-332"><mml:math id="mml-ieqn-332"><mml:mi>R</mml:mi><mml:mi>U</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>G</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> for each unrevoked user <inline-formula id="ieqn-333"><mml:math id="mml-ieqn-333"><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:msup><mml:mi>d</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. This prevents a revoked user from using another user&#x2019;s revocation update key to update their secret key. At the same time, it is difficult for non-revocation users to calculate <inline-formula id="ieqn-334"><mml:math id="mml-ieqn-334"><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-335"><mml:math id="mml-ieqn-335"><mml:mrow><mml:mi>G</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x2212;</mml:mo><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> by solving the discrete logarithm problem, which prevents it from helping revocation users to update keys. &#x025A1;</p>
<p>Theorem 3</p>
<p><italic>Our attribute revocation enables forward and backward security</italic>.</p>
<p><bold>Proof.</bold> When attribute <italic>x</italic> is revoked from a data user <italic>uid</italic>, all relevant ciphertexts are re-encrypted by the authority according to <inline-formula id="ieqn-336"><mml:math id="mml-ieqn-336"><mml:mrow><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>G</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:msubsup><mml:mi>K</mml:mi><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:msubsup></mml:math></inline-formula>, making it highly difficult for revoked users to revert the re-encrypted ciphertexts. Meanwhile, the attributes of the newly joined users satisfy the access policy of the ciphertext, and they can still decrypt the previously published ciphertext.&#x25A1;</p>
<p>Theorem 4</p>
<p><italic>Our scheme is resistant to ciphertext rollback attacks</italic>.</p>
<p><bold>Proof.</bold> Our plan involves updating ciphertext through attribute revocation and policy update. When updating ciphertext, our strategy is not to give any ciphertext update items to any other entity. In attribute revocation, AA does not provide ciphertext update items to any other entity, while in policy update, users do not provide them. By way, the attacker cannot roll back the updated ciphertext to its previous state. &#x025A1;</p>
</sec>
<sec id="s6">
<label>6</label>
<title>Analysis and Experiment</title>
<sec id="s6_1">
<label>6.1</label>
<title>Theoretical Analysis</title>
<p>In <xref ref-type="table" rid="table-3">Table 3</xref>, we compare our scheme with various MA-CP-ABE schemes. The GLGL23 [<xref ref-type="bibr" rid="ref-25">25</xref>] employs an access tree structure, while the proposed scheme and others use LSSS structures. The GLGL23 and ZLWR24 support user-level attribute revocation, while our scheme and others implement attribute-level revocation. The schemes [<xref ref-type="bibr" rid="ref-24">24</xref>&#x2013;<xref ref-type="bibr" rid="ref-27">27</xref>] are susceptible to collusion attacks. The LJ18 [<xref ref-type="bibr" rid="ref-24">24</xref>] direct transmission of attribute group keys from AA to users can lead to adversaries obtaining revoked keys. Additionally, the scheme [<xref ref-type="bibr" rid="ref-24">24</xref>&#x2013;<xref ref-type="bibr" rid="ref-28">28</xref>] are vulnerable to ciphertext rollback attacks, where adversary may exploit cloud-obtained update items to compromise backward security. In contrast, our scheme and ZHZL22 [<xref ref-type="bibr" rid="ref-29">29</xref>] conduct all ciphertext updates independently by AA without delegating update items to the cloud. Furthermore, CBZ22 [<xref ref-type="bibr" rid="ref-26">26</xref>], GLGL23 [<xref ref-type="bibr" rid="ref-25">25</xref>], and GWZ23 [<xref ref-type="bibr" rid="ref-27">27</xref>] exhibit significant security flaws, potentially allowing malicious entities to obtain plaintext.</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Feature comparison with other MA-CP-ABE schemes</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Scheme</th>
<th>Access structure</th>
<th>PD</th>
<th>RT</th>
<th>PU</th>
<th>Security model</th>
<th>WCA</th>
<th>CRA</th>
<th>Blockchain</th>
</tr>
</thead>
<tbody>
<tr>
<td>LJ18 [<xref ref-type="bibr" rid="ref-24">24</xref>]</td>
<td>LSSS</td>
<td>&#x2713;</td>
<td>Attribute</td>
<td>&#x2713;</td>
<td>ROM</td>
<td>&#x2717;</td>
<td>&#x2717;</td>
<td>&#x2717;</td>
</tr>
<tr>
<td>HKQ21 [<xref ref-type="bibr" rid="ref-28">28</xref>]</td>
<td>LSSS</td>
<td>&#x2713;</td>
<td>Attribute</td>
<td>&#x2717;</td>
<td>ROM</td>
<td>&#x2713;</td>
<td>&#x2717;</td>
<td>&#x2717;</td>
</tr>
<tr>
<td>ZHZL22 [<xref ref-type="bibr" rid="ref-29">29</xref>]</td>
<td>LSSS</td>
<td>&#x2713;</td>
<td>Attribute</td>
<td>&#x2717;</td>
<td>ROM</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
<td>&#x2717;</td>
</tr>
<tr>
<td>CBZ22 [<xref ref-type="bibr" rid="ref-26">26</xref>]</td>
<td>LSSS</td>
<td>&#x2713;</td>
<td>Attribute</td>
<td>&#x2717;</td>
<td>ROM</td>
<td>&#x2717;</td>
<td>&#x2717;</td>
<td>&#x2717;</td>
</tr>
<tr>
<td>GLGL23 [<xref ref-type="bibr" rid="ref-25">25</xref>]</td>
<td>Access tree</td>
<td>&#x2713;</td>
<td>User</td>
<td>&#x2717;</td>
<td>ROM</td>
<td>&#x2717;</td>
<td>&#x2717;</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>GWZ23 [<xref ref-type="bibr" rid="ref-27">27</xref>]</td>
<td>LSSS</td>
<td>&#x2713;</td>
<td>Attribute</td>
<td>&#x2717;</td>
<td>SM</td>
<td>&#x2717;</td>
<td>&#x2717;</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>ZLWR24 [<xref ref-type="bibr" rid="ref-30">30</xref>]</td>
<td>LSSS</td>
<td>&#x2713;</td>
<td>User</td>
<td>&#x2713;</td>
<td>SM</td>
<td>&#x2713;</td>
<td>&#x2717;</td>
<td>&#x2713;</td>
</tr>
<tr>
<td>Ours</td>
<td>LSSS</td>
<td>&#x2713;</td>
<td>Attribute</td>
<td>&#x2713;</td>
<td>ROM</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
<td>&#x2713;</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-3fn1" fn-type="other">
<p>Note: PD: Proxy Decryption. RT: Revocation Type. PU: Policy Update. ROM: Random Oracle Model. SM: Standard Model. WCA: Withstand Collusion Attack. CRA: Ciphertext Rollback Attack.</p>
</fn>
</table-wrap-foot>
</table-wrap>
<p>In the CBZ22 scheme, a critical security flaw occurs during the Online.Enc phase, where parameters <inline-formula id="ieqn-337"><mml:math id="mml-ieqn-337"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>4</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-338"><mml:math id="mml-ieqn-338"><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn>5</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> exposes <inline-formula id="ieqn-339"><mml:math id="mml-ieqn-339"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula>, closely associated with the secret value <inline-formula id="ieqn-340"><mml:math id="mml-ieqn-340"><mml:mi>s</mml:mi></mml:math></inline-formula>. This exposure allows an adversary with access to these ciphertext components to deduce <inline-formula id="ieqn-341"><mml:math id="mml-ieqn-341"><mml:mi>s</mml:mi></mml:math></inline-formula>, thereby decrypting the ciphertext and recovering the plaintext. In the GLGL23 scheme, due to the desire to achieve user Escrow Free, random numbers related to attributes are generated by users. This design allows an adversary to forge random numbers for attributes they do not possess, thereby generating false attribute keys. Once an adversary acquires sufficient valid attribute keys, they can decrypt the ciphertext. Algorithm 2 of the GWZ23 scheme also contains potential security risks. Here, <inline-formula id="ieqn-342"><mml:math id="mml-ieqn-342"><mml:mi>&#x03B5;</mml:mi><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is part of the transformation key (<inline-formula id="ieqn-343"><mml:math id="mml-ieqn-343"><mml:mi>T</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>), while the retrieval key (<inline-formula id="ieqn-344"><mml:math id="mml-ieqn-344"><mml:mi>R</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>) equals <inline-formula id="ieqn-345"><mml:math id="mml-ieqn-345"><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>. According to the scheme description, <inline-formula id="ieqn-346"><mml:math id="mml-ieqn-346"><mml:mi>T</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is directly provided by the authoritative sending server. It is noteworthy that <inline-formula id="ieqn-347"><mml:math id="mml-ieqn-347"><mml:mi>&#x03B5;</mml:mi><mml:msub><mml:mi>&#x03BE;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the result of multiplying two random numbers, and this operation is not based on any widely recognized hard mathematical problem. Consequently, it is feasible for an adversary to find <inline-formula id="ieqn-348"><mml:math id="mml-ieqn-348"><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula> through brute force or exhaustive search. Once the adversary determines <inline-formula id="ieqn-349"><mml:math id="mml-ieqn-349"><mml:mi>R</mml:mi><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, they could gain access to the plaintext, threatening the confidentiality and integrity of the system.</p>
<p>In <xref ref-type="table" rid="table-4">Table 4</xref>, we present a comparative analysis of computational complexities between our scheme and other studies. Here, <inline-formula id="ieqn-350"><mml:math id="mml-ieqn-350"><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-351"><mml:math id="mml-ieqn-351"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula> denote bilinear pairing and exponentiation operations in group <inline-formula id="ieqn-352"><mml:math id="mml-ieqn-352"><mml:mrow><mml:mi mathvariant="double-struck">G</mml:mi></mml:mrow></mml:math></inline-formula>, while <inline-formula id="ieqn-353"><mml:math id="mml-ieqn-353"><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-354"><mml:math id="mml-ieqn-354"><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula> represent hash and multiplication operations, respectively. We use <inline-formula id="ieqn-355"><mml:math id="mml-ieqn-355"><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-356"><mml:math id="mml-ieqn-356"><mml:msub><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math></inline-formula>, and <inline-formula id="ieqn-357"><mml:math id="mml-ieqn-357"><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> to indicate the number of attributes for key generation, policy setting, and decryption, respectively. For the proxy decryption phase, the complexity of the <inline-formula id="ieqn-358"><mml:math id="mml-ieqn-358"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm in our scheme and those from [<xref ref-type="bibr" rid="ref-24">24</xref>,<xref ref-type="bibr" rid="ref-26">26</xref>&#x2013;<xref ref-type="bibr" rid="ref-29">29</xref>] scales linearly with the number of user attributes. GWZ23 [<xref ref-type="bibr" rid="ref-27">27</xref>] incorporates symmetric decryption and hash verification in the final decryption step, due to its encryption mechanism. Preprocessing for proxy decryption in CBZ22 [<xref ref-type="bibr" rid="ref-26">26</xref>] and GWZ23 occurs during key generation, not proxy decryption. Although ZHZL22 [<xref ref-type="bibr" rid="ref-29">29</xref>] and CBZ22 [<xref ref-type="bibr" rid="ref-26">26</xref>] have reduced preprocessing operations, this leads to increased <inline-formula id="ieqn-359"><mml:math id="mml-ieqn-359"><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow></mml:math></inline-formula> operations in ciphertext updates for attribute revocation. Our scheme and HKQ21 maintain identical computational complexity for the final decryption operation, adding only one extra multiplication compared to LJ18. When discussing attribute revocation, our scheme aligns with [<xref ref-type="bibr" rid="ref-28">28</xref>,<xref ref-type="bibr" rid="ref-29">29</xref>] when users update their attribute keys. The <inline-formula id="ieqn-360"><mml:math id="mml-ieqn-360"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> in other schemes modifies the revoked attribute&#x2019;s associated ciphertext portion but incurs additional operations compared to ours. Overall, our attribute revocation and proxy decryption have low computational complexity.</p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Comparison of computation cost</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Schemes</th>
<th colspan="3">Proxy decryption</th>
<th colspan="2">Attribute revocation<sup>[1]</sup></th>
</tr>
<tr>
<th></th>
<th>GenTR</th>
<th>PartDec</th>
<th>FinalDec</th>
<th>KeyUpdate<sup>[2]</sup></th>
<th>CTUpdate <sup>[3]</sup></th>
</tr>
</thead>
<tbody>
<tr>
<td>LJ18 [<xref ref-type="bibr" rid="ref-24">24</xref>]</td>
<td><inline-formula id="ieqn-364"><mml:math id="mml-ieqn-364"><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-365"><mml:math id="mml-ieqn-365"><mml:mn>3</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-366"><mml:math id="mml-ieqn-366"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-367"><mml:math id="mml-ieqn-367"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-368"><mml:math id="mml-ieqn-368"><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>6</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>HKQ21 [<xref ref-type="bibr" rid="ref-28">28</xref>]</td>
<td><inline-formula id="ieqn-369"><mml:math id="mml-ieqn-369"><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-370"><mml:math id="mml-ieqn-370"><mml:mn>3</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-371"><mml:math id="mml-ieqn-371"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-372"><mml:math id="mml-ieqn-372"><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-373"><mml:math id="mml-ieqn-373"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>ZHZL22 [<xref ref-type="bibr" rid="ref-29">29</xref>]</td>
<td><inline-formula id="ieqn-374"><mml:math id="mml-ieqn-374"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-375"><mml:math id="mml-ieqn-375"><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-376"><mml:math id="mml-ieqn-376"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-377"><mml:math id="mml-ieqn-377"><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-378"><mml:math id="mml-ieqn-378"><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>CBZ22 [<xref ref-type="bibr" rid="ref-26">26</xref>]</td>
<td><inline-formula id="ieqn-379"><mml:math id="mml-ieqn-379"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-380"><mml:math id="mml-ieqn-380"><mml:mn>3</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>6</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-381"><mml:math id="mml-ieqn-381"><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-382"><mml:math id="mml-ieqn-382"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-383"><mml:math id="mml-ieqn-383"><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>GWZ23 [<xref ref-type="bibr" rid="ref-27">27</xref>]</td>
<td><inline-formula id="ieqn-384"><mml:math id="mml-ieqn-384"><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-385"><mml:math id="mml-ieqn-385"><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-386"><mml:math id="mml-ieqn-386"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mrow><mml:mtext mathvariant="italic">Dec</mml:mtext></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>&#x2013;</td>
<td><inline-formula id="ieqn-387"><mml:math id="mml-ieqn-387"><mml:msub><mml:mi>n</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>Ours</td>
<td><inline-formula id="ieqn-388"><mml:math id="mml-ieqn-388"><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-389"><mml:math id="mml-ieqn-389"><mml:mn>3</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">P</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mtext mathvariant="italic">H</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-390"><mml:math id="mml-ieqn-390"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-391"><mml:math id="mml-ieqn-391"><mml:mrow><mml:mtext mathvariant="italic">M</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-392"><mml:math id="mml-ieqn-392"><mml:mrow><mml:mtext mathvariant="italic">E</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn id="table-4fn1" fn-type="other">
<p>Note: <inline-formula id="ieqn-393"><mml:math id="mml-ieqn-393"><mml:msub><mml:mrow><mml:mtext mathvariant="italic">Dec</mml:mtext></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>y</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> is a symmetric decryption operation. <inline-formula id="ieqn-394"><mml:math id="mml-ieqn-394"><mml:msub><mml:mi>n</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:math></inline-formula> is the number of layers in the KEK tree. <sup>[1]</sup>One atribute is revoked from one user. <sup>[2]</sup>One user updates his/her secret keys. <sup>[3]</sup>Proxy server/AA updates one relevant.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</sec>
<sec id="s6_2">
<label>6.2</label>
<title>Experiment and Evaluation</title>
<p>The performance of the proposed scheme was assessed by the Charm<xref ref-type="fn" rid="fn1"><sup>1</sup></xref>
<fn id="fn1">
<label>1</label>
<p><ext-link ext-link-type="uri" xlink:href="https://github.com/JHUISI/charm">https://github.com/JHUISI/charm</ext-link> (accessed on 27 January 2025)</p>
</fn>. The experiments utilized a super singular symmetric elliptic curve group(&#x201C;SS512&#x201D;), which is defined over a 512-bit base field. The experiments were run on a VMware&#x00AE; Workstation 15 Pro virtual machine platform, which was configured with a 2.60 GHz Intel Core processor, 2.0 GB of memory, and a 64-bit Linux Ubuntu 16 operating system. The findings from all experiments are calculated as the mean of 10 separate runs.</p>
<p>As shown in <xref ref-type="fig" rid="fig-4">Fig. 4a</xref>&#x2013;<xref ref-type="fig" rid="fig-4">c</xref>, the efficiency of proxy decryption is primarily explored. For this experiment, the system included 4 AAs, and the number of attributes per AA was increased according to the encryption policy. In <xref ref-type="fig" rid="fig-4">Fig. 4a</xref>, our <inline-formula id="ieqn-398"><mml:math id="mml-ieqn-398"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm incurs less time than LJ18, with a slower increase as the number of attributes grows. The LJ18 scheme includes an extra ciphertext processing step that increases linearly with the number of attributes. In <xref ref-type="fig" rid="fig-4">Fig. 4b</xref>, our <inline-formula id="ieqn-399"><mml:math id="mml-ieqn-399"><mml:mrow><mml:mtext mathvariant="sans-serif">FinalDec</mml:mtext></mml:mrow></mml:math></inline-formula> decryption times are slightly longer but generally remaining stable compared to LJ18. After increasing the number of experiments, LJ18 still occasionally has a little more than us, which may be an experimental inaccuracy due to the short decryption time. As shown in <xref ref-type="fig" rid="fig-4">Fig. 4c</xref>, the decryption phase time cost for users is presented. The proxy decryption time of user is the sum of the <inline-formula id="ieqn-400"><mml:math id="mml-ieqn-400"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-401"><mml:math id="mml-ieqn-401"><mml:mrow><mml:mtext mathvariant="sans-serif">FinalDec</mml:mtext></mml:mrow></mml:math></inline-formula> algorithms&#x2019; times. When the number of attributes is 20, the LJ18 scheme&#x2019;s proxy decryption requires 88.016 ms compared to 123.414 ms without it; our scheme demands 52.564 ms with proxy decryption <italic>vs</italic>. 98.278 ms without. Through proxy decryption, our scheme reduces the overall computational workload for users by approximately 50%, despite the added overhead. Overall, these figures demonstrate that our scheme performs better in handling a large number of attributes during proxy decryption.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Experimental performance of proxy decryption in our scheme. (a) Running time of <inline-formula id="ieqn-402"><mml:math id="mml-ieqn-402"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm. (b) Running time of <inline-formula id="ieqn-403"><mml:math id="mml-ieqn-403"><mml:mrow><mml:mtext mathvariant="sans-serif">FinalDec</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm. (c) The decryption time for the user not using proxy decryption and the decryption time of the user when the user using proxy decryption</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-4.tif"/>
</fig>
<p>For proxy decryption, the handled key and ciphertext constitute the main communication overhead. In <xref ref-type="table" rid="table-5">Table 5</xref>, it shows the communication overhead comparison of <inline-formula id="ieqn-404"><mml:math id="mml-ieqn-404"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm under different numbers of attributes. Compared to the LJ18 scheme, our scheme only needs to transmit the key during processing, instead of having to transmit both the ciphertext and the key for processing as in LJ18. In addition, due to this algorithm are based on attributes. Therefore, when the number of attributes increases, the communication overhead of the LJ18 scheme will be significantly higher than our proposed scheme. As shown in <xref ref-type="table" rid="table-6">Table 6</xref>, the communication overhead of the ciphertext is compared. In the <inline-formula id="ieqn-405"><mml:math id="mml-ieqn-405"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">PartDec</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm, our scheme requires the transmission of two attribute-independent ciphertext parameters, in contrast to the LJ18 scheme which requires the transmission of only one similar parameter. So for messages of the same length, the costs in our scheme and the LJ18 scheme are essentially fixed, with slight fluctuations. Our scheme incurs slightly higher costs than the LJ18 scheme, which is consistent with the <inline-formula id="ieqn-406"><mml:math id="mml-ieqn-406"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">PartDec</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm. In practice, our scheme reduces network bandwidth usage and improves communication efficiency.</p>
<table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title><inline-formula id="ieqn-407"><mml:math id="mml-ieqn-407"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">GenTR</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm communication overhead (KB)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Schemes</th>
<th align="center" colspan="10">Number of attributes</th>
</tr>
<tr>
<th></th>
<th>2</th>
<th>4</th>
<th>6</th>
<th>8</th>
<th>10</th>
<th>12</th>
<th>14</th>
<th>16</th>
<th>18</th>
<th>20</th>
</tr>
</thead>
<tbody>
<tr>
<td>[<xref ref-type="bibr" rid="ref-24">24</xref>]</td>
<td>3.19</td>
<td>5.24</td>
<td>7.24</td>
<td>9.20</td>
<td>11.17</td>
<td>13.12</td>
<td>15.07</td>
<td>17.02</td>
<td>18.96</td>
<td>20.84</td>
</tr>
<tr>
<td>Ours</td>
<td>1.16</td>
<td>1.75</td>
<td>2.34</td>
<td>2.92</td>
<td>3.49</td>
<td>4.06</td>
<td>4.61</td>
<td>5.18</td>
<td>5.73</td>
<td>6.29</td>
</tr>
</tbody>
</table>
</table-wrap><table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Communication overhead of ciphertext in <inline-formula id="ieqn-408"><mml:math id="mml-ieqn-408"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">PartDec</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm (KB)</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Schemes</th>
<th align="center" colspan="10">Number of attributes</th>
</tr>
<tr>
<th></th>
<th>2</th>
<th>4</th>
<th>6</th>
<th>8</th>
<th>10</th>
<th>12</th>
<th>14</th>
<th>16</th>
<th>18</th>
<th>20</th>
</tr>
</thead>
<tbody>
<tr>
<td>[<xref ref-type="bibr" rid="ref-24">24</xref>]</td>
<td>0.81</td>
<td>0.82</td>
<td>0.83</td>
<td>0.84</td>
<td>0.85</td>
<td>0.85</td>
<td>0.86</td>
<td>0.86</td>
<td>0.87</td>
<td>0.87</td>
</tr>
<tr>
<td>Ours</td>
<td>1.11</td>
<td>1.12</td>
<td>1.12</td>
<td>1.13</td>
<td>1.14</td>
<td>1.15</td>
<td>1.15</td>
<td>1.16</td>
<td>1.16</td>
<td>1.17</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In <xref ref-type="fig" rid="fig-5">Fig. 5</xref>, it shows the time consumption under different numbers of revoked attributes. As shown in <xref ref-type="fig" rid="fig-5">Fig. 5b</xref>, the execution time of the LJ18 scheme&#x2019;s <inline-formula id="ieqn-409"><mml:math id="mml-ieqn-409"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm is basically constant, about 198 ms. The LJ18 scheme&#x2019;s <inline-formula id="ieqn-410"><mml:math id="mml-ieqn-410"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm involves re-randomizing the entire ciphertext, this process is not affected by the number of revocation attributes [<xref ref-type="bibr" rid="ref-24">24</xref>]. As shown in <xref ref-type="fig" rid="fig-5">Fig. 5c</xref>, it represents the overall attribute revocation time. The execution time of our scheme&#x2019;s <inline-formula id="ieqn-411"><mml:math id="mml-ieqn-411"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate</mml:mtext></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-412"><mml:math id="mml-ieqn-412"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm increases linearly with the number of revoked attributes. Our execution time is significantly lower than that the LJ18 scheme. In <xref ref-type="fig" rid="fig-5">Fig. 5</xref>, it indicates that our scheme performs better when handling the revocation of a large number of attributes.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Experimental performance of attribute revocation in our scheme. (a) Running time of <inline-formula id="ieqn-413"><mml:math id="mml-ieqn-413"><mml:mrow><mml:mtext mathvariant="sans-serif">KeyUpdate</mml:mtext></mml:mrow></mml:math></inline-formula> algorithm. (b) Running time of <inline-formula id="ieqn-414"><mml:math id="mml-ieqn-414"><mml:mrow><mml:mrow><mml:mtext mathvariant="sans-serif">CTUpdate</mml:mtext></mml:mrow></mml:mrow></mml:math></inline-formula> algorithm. (c) Total time for attribute revocation</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-5.tif"/>
</fig>
</sec>
<sec id="s6_3">
<label>6.3</label>
<title>Integrate with Process Execution Engine</title>
<p>In the Ethereum protocol, the cost of executing or deploying a smart contract is measured in gas, reflecting the number of opcodes invoked [<xref ref-type="bibr" rid="ref-31">31</xref>]. We use ganache to simulate the merged version of Ethereum. The version used for Smart Contract is <inline-formula id="ieqn-415"><mml:math id="mml-ieqn-415"><mml:mrow><mml:mtext>Solitidy^{\wedge}0.8.0</mml:mtext></mml:mrow></mml:math></inline-formula>. To estimate mainnet expenses, we adopted an average gas price of 6.50 Gwei and an ETH to USD exchange rate of 3192.15 as of 09 July 2024. Contract 1 is primarily designed to manage and record users&#x2019; RSA public keys as well as establish user identities. Through this contract, each user can register their public key and associate it with a unique identity. This process ensures the verifiability of all participants&#x2019; identities while providing the necessary public key infrastructure for subsequent encryption and decryption. Authority Contract invokes a decentralised public parameter generation mechanism that allows multiple authorities or nodes to jointly participate in the public parameter creation process. Message Contract focuses on implementing the information-sharing functionality.</p>
<fig id="fig-11">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-11.tif"/>
</fig>
<fig id="fig-12">
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-12.tif"/>
</fig>
<p>As illustrated in <xref ref-type="table" rid="table-7">Table 7</xref>, four stages were evaluated: smart contract deployment, system startup, authority initialization, and data sharing. Specifically, smart contract deployment consumes the most gas at 2,357,360 units, approximately $49. In the long run, this cost will be amortized, as the smart contract will continue to be used for future similar scenarios. System startup and authority initialization consume 299,231 gas units ($6.2) and 473,516 gas units ($9.8), respectively, with both being one-time costs. Data sharing incurs a cost of 89,420 gas units ($1.80) per file, also a one-time expense. The results indicate that the average gas consumption across these stages is relatively low.</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>Execution cost analysis</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th/>
<th colspan="4">Execution cost</th>
</tr>
<tr>
<th></th>
<th>Deploy</th>
<th>System startup</th>
<th>Authority initialization</th>
<th>Data sharing</th>
</tr>
</thead>
<tbody>
<tr>
<td>Gas</td>
<td>2357360</td>
<td>299231</td>
<td>473516</td>
<td>89420</td>
</tr>
<tr>
<td>Fee (ETH)</td>
<td>0.01532284</td>
<td>0.00194500</td>
<td>0.00307785</td>
<td>0.00058123</td>
</tr>
<tr>
<td>USD</td>
<td>48.91280371</td>
<td>6.20873654</td>
<td>9.82497165</td>
<td>1.85537334</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We integrated MADEXA with Caterpillar v1.0<xref ref-type="fn" rid="fn2"><sup>2</sup></xref><fn id="fn2">
<label>2</label>
<p><ext-link ext-link-type="uri" xlink:href="https://github.com/orlenyslp/Caterpillar">https://github.com/orlenyslp/Caterpillar</ext-link> (accessed on 27 January 2025)</p></fn>, serving as its data management layer to enhance secure data storage. As depicted in <xref ref-type="fig" rid="fig-6">Fig. 6</xref>, the experimental results from the previous scenario are illustrated, the right side corresponds to the process of data sharing for MADEXA integration with Caterpillar. Specifically, the BPMN corresponding to the Single Window process depicted in <xref ref-type="fig" rid="fig-1">Fig. 1</xref> is uploaded to Caterpillar, which then converts it into a smart contract to be uploaded to Ethereum. The data sharing of the entire process is then visualised. Users input data through Caterpillar&#x2019;s interface and mark it with the prefix &#x201C;@MAABE:&#x201D; to indicate that they wish to encrypt the information with MAABE. This example focuses on the transmission of customs clearance data by international suppliers to customs authorities, specifically the order information in the export documents listed in <xref ref-type="table" rid="table-2">Table 2</xref>. After encryption, the first parameter remains unchanged, while the second is replaced by an IPFS link. Consequently, the execution engine logs the resource locator on the blockchain for audit purposes. The process outlined enables the maintenance of each customs clearance process instance on the ethereum, the execution of workflow routing through smart contracts, and the real-time monitoring of the process state by all participants, thereby facilitating on-chain data sharing and visualisation.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Integration with Caterpillar</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_62324-fig-6.tif"/>
</fig>
</sec>
</sec>
<sec id="s7">
<label>7</label>
<title>Conclusion and Future</title>
<p>This paper presents an attribute-based multi-authoritative data exchange architecture and integrates it with a process execution engine, which aims to address the challenges associated with cross-border trade data sharing. The architecture provides fine-grained data access control management for cross-border trade and supports proxy decryption, attribute revocation, and policy update. The proposed scheme ensures the security and visibility of cross-border trade data-sharing processes, effectively overcoming the challenges of effective sharing and trust in traditional cross-border trade information systems. We conducted a thorough discussion and provided a formal demonstration of the security aspects of our scheme. Through detailed performance analysis and simulation experiments, the superiority and feasibility of the proposed scheme in real-world application scenarios are demonstrated, effectively balancing security requirements and operational efficiency.</p>
<p>In our approach, we have identified several limitations that need to be addressed in future research. The user attribute keys are currently generated by an authoritative entity, which raises concerns regarding key management. We envision propose a more decentralized approach to generating attribute keys, wherein users collaborate with one or more trusted third parties in the key generation process, using techniques like zero-knowledge proofs or secure multi-party computation to ensure security [<xref ref-type="bibr" rid="ref-25">25</xref>]. This design realizes the paradigm of self-sovereign keys [<xref ref-type="bibr" rid="ref-32">32</xref>]. Although the current research focuses more on the theoretical aspect, aiming to provide a reference framework for cross-border trade data sharing, in future practical applications, we will need to consider the performance and applicability in different blockchain environments, as well as the system scalability under large-scale users and high-concurrency access.</p>
</sec>
</body>
<back>
<ack>
<p>The authors would like to express special thanks to the collaborators for their valuable insights and discussions in completing this review.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>This work is supported by Hainan Provincial Natural Science Foundation of China Nos. 622RC617, 624RC485. Open Foundation of State Key Laboratory of Networking and Switching Technology (Beijing University of Posts and Telecommunications) (SKLNST-2023-1-07).</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>Shenjian Xiao: Conceptualization, Methodology, Validation, Formal analysis, Investigation, Resources, Writing&#x2014;original draft, Visualization. Xiaoli Qin: Supervision, Methodology, Funding acquisition, Writing&#x2014;original draft. Yanzhao Tian: Supervision, Conceptualization, Methodology, Project administration, Writing&#x2014;review &#x00026; editing, Funding acquisition. Zhongkai Dang: Editing, Polishing, Conceptualization. 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>The authors confirm that the data supporting the findings of this study are available within the article.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>This study did not involve any human or animal subjects, and therefore, ethical approval was not required.</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>Chang</surname> <given-names>YL</given-names></string-name>, <string-name><surname>Iakovou</surname> <given-names>E</given-names></string-name>, <string-name><surname>Shi</surname> <given-names>WD</given-names></string-name></person-group>. <article-title>Blockchain in global supply chains and cross border trade: a critical synthesis of the state-of-the-art, challenges and opportunities</article-title>. <source>Int J Prod Res</source>. <year>2020 Apr</year>;<volume>58</volume>(<issue>7</issue>):<fpage>2082</fpage>&#x2013;<lpage>99</lpage>. doi:<pub-id pub-id-type="doi">10.1080/00207543.2019.1651946</pub-id>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Du</surname> <given-names>RQ</given-names></string-name>, <string-name><surname>Duval</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>An exploration of paperless trade implementation in UN and other international conventions involving cross-border exchange of trade-related data and documents</article-title>. In: <source>UNNExT working paper series no. 10</source>. <publisher-loc>Bangkok</publisher-loc>: <publisher-name>ESCAP</publisher-name>; <year>2024 Jun</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Castellani</surname> <given-names>L</given-names></string-name>, <string-name><surname>Ramirez Ortiz</surname> <given-names>CM</given-names></string-name></person-group>. <source>Driving digitalization of global trade: UNCITRAL model law on electronic transferable records</source>. <publisher-loc>Manila, Philippines</publisher-loc>: <publisher-name>Asian Development Bank</publisher-name>; <year>2023</year>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Casanova</surname> <given-names>D</given-names></string-name>, <string-name><surname>Dierker</surname> <given-names>D</given-names></string-name>, <string-name><surname>Hausmann</surname> <given-names>L</given-names></string-name>, <string-name><surname>Jensen</surname> <given-names>B</given-names></string-name>, <string-name><surname>Stoffels</surname> <given-names>J</given-names></string-name></person-group>. <article-title>The multi-billion-dollar paper jam: unlocking trade by digitalizing documentation</article-title>. <source>McKinsey&#x2019;s Travel, Logist Infrastruct Practice</source>. <year>2022</year>;<fpage>1</fpage>&#x2013;<lpage>8</lpage>. [cited 2024 Jun 1]. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.mckinsey.com/industries/logistics/our-insights/the-multi-billion-dollar-paper-jam-unlocking-trade-by-digitalizing-documentation">https://www.mckinsey.com/industries/logistics/our-insights/the-multi-billion-dollar-paper-jam-unlocking-trade-by-digitalizing-documentation</ext-link>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Chen</surname> <given-names>TW</given-names></string-name>, <string-name><surname>Yu</surname> <given-names>YM</given-names></string-name>, <string-name><surname>Duan</surname> <given-names>ZT</given-names></string-name></person-group>. <article-title>Data access &#x0026; sharing approach for trade documentations based on blockchain technology</article-title>. In: <conf-name>2019 3rd International Conference on Electronic Information Technology and Computer
Engineering (EITCE)</conf-name>; <year>2019 Oct</year>; <publisher-name>IEEE</publisher-name>. p. <fpage>1732</fpage>&#x2013;<lpage>6</lpage>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Bondarenko</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Advancing the digitalization of trade supporting documents in the Eurasian Economic Union member States and beyond</article-title>. In: <source>UNNExT working paper series no. 3</source>. <publisher-loc>Bangkok</publisher-loc>: <publisher-name>ESCAP</publisher-name>; <year>2023 Sep</year>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Sarker</surname> <given-names>S</given-names></string-name>, <string-name><surname>Henningsson</surname> <given-names>S</given-names></string-name>, <string-name><surname>Jensen</surname> <given-names>T</given-names></string-name>, <string-name><surname>Hedman</surname> <given-names>J</given-names></string-name></person-group>. <article-title>The use of blockchain as a resource for combating corruption in global shipping: aan interpretive case study</article-title>. <source>J Manag Inf Syst</source>. <year>2021 Apr</year>;<volume>38</volume>(<issue>2</issue>):<fpage>338</fpage>&#x2013;<lpage>73</lpage>. doi:<pub-id pub-id-type="doi">10.1080/07421222.2021.1912919</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><collab>World Trade Organization</collab></person-group>. <source>Securing cross-border trade through advanced technologies</source>. <publisher-name>WTO</publisher-name>; <year>2022 Mar</year>. p. <fpage>4</fpage>&#x2013;<lpage>9</lpage>. [cited 2024 Jun 1]. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.wto-ilibrary.org/content/books/9789287071002c002">https://www.wto-ilibrary.org/content/books/9789287071002c002</ext-link>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Lee</surname> <given-names>H</given-names></string-name>, <string-name><surname>Yeon</surname> <given-names>C</given-names></string-name></person-group>. <article-title>Blockchain-based traceability for anti-counterfeit in cross-border e-commerce transactions</article-title>. <source>Sustainability</source>. <year>2021 Jan</year>;<volume>13</volume>(<issue>19</issue>):<fpage>11057</fpage>. doi:<pub-id pub-id-type="doi">10.3390/su131911057</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>Zhang</surname> <given-names>XM</given-names></string-name>, <string-name><surname>Zha</surname> <given-names>XY</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>HY</given-names></string-name>, <string-name><surname>Dan</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Information sharing in a cross-border e-commerce supply chain under tax uncertainty</article-title>. <source>Int J Electron Commer</source>. <year>2022 Jan</year>;<volume>26</volume>(<issue>1</issue>):<fpage>123</fpage>&#x2013;<lpage>46</lpage>. doi:<pub-id pub-id-type="doi">10.1080/10864415.2021.2010007</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Theodouli</surname> <given-names>A</given-names></string-name>, <string-name><surname>Manganopoulou</surname> <given-names>E</given-names></string-name>, <string-name><surname>Kalfoutzos</surname> <given-names>A</given-names></string-name>, <string-name><surname>Tzikas</surname> <given-names>A</given-names></string-name>, <string-name><surname>Tsislianis</surname> <given-names>C</given-names></string-name>, <string-name><surname>Ioannidis</surname> <given-names>D</given-names></string-name>, <etal>et al</etal></person-group>. <chapter-title>Towards a secure and transparent blockchain-based system for e-commerce deliveries</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Manulis</surname> <given-names>M</given-names></string-name>, <string-name><surname>Maimu&#x0163;</surname> <given-names>D</given-names></string-name>, <string-name><surname>Te&#x015F;eleanu</surname> <given-names>G</given-names></string-name></person-group>, editors. <source>Innovative security solutions for information technology and communications</source>. <publisher-loc>Cham</publisher-loc>: <publisher-name>Springer Nature Switzerland</publisher-name>; <year>2024</year>. p. <fpage>113</fpage>&#x2013;<lpage>25</lpage>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhao</surname> <given-names>HM</given-names></string-name></person-group>. <article-title>A cross-border e-commerce approach based on blockchain technology</article-title>. <source>Mob Inf Syst</source>. <year>2021</year>;<volume>2021</volume>(<issue>1</issue>):<fpage>2006082</fpage>. doi:<pub-id pub-id-type="doi">10.1155/2021/2006082</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>Hazarika</surname> <given-names>B</given-names></string-name>, <string-name><surname>Mousavi</surname> <given-names>R</given-names></string-name></person-group>. <article-title>Review of cross-border e-commerce and directions for future research</article-title>. <source>J Glob Inf Manag</source>. <year>2022 Jan</year>;<volume>30</volume>(<issue>2</issue>):<fpage>1</fpage>&#x2013;<lpage>18</lpage>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Thoppae</surname> <given-names>C</given-names></string-name>, <string-name><surname>Praneetpolgrang</surname> <given-names>P</given-names></string-name></person-group>. <article-title>An analysis of a blockchain-enabled e-government document interchange architecture (DIA) in Thailand</article-title>. <source>TEM J</source>. <year>2021 Aug</year>;<volume>10</volume>(<issue>3</issue>):<fpage>1220</fpage>&#x2013;<lpage>7</lpage>. doi:<pub-id pub-id-type="doi">10.18421/TEM</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Singapore&#x2019;s Infocomm Media Development Authority (IMDA)</collab></person-group>. <article-title>TradeTrust-digitised global trade</article-title>. [cited 2024 Jun 1]. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.tradetrust.io/">https://www.tradetrust.io/</ext-link>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Singapore Together Alliance for Action (AfA)</collab></person-group>. <article-title>Singapore Trade Data Exchange (SGTraDex). [cited 2025 Feb 14]</article-title>. Available from: <ext-link ext-link-type="uri" xlink:href="https://sgtradex.com/">https://sgtradex.com/</ext-link>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>ZY</given-names></string-name>, <string-name><surname>Li</surname> <given-names>ZP</given-names></string-name></person-group>. <article-title>A blockchain-based framework of cross-border e-commerce supply chain</article-title>. <source>Int J Inf Manag</source>. <year>2020</year>;<volume>52</volume>(<issue>10</issue>):<fpage>102059</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.ijinfomgt.2019.102059</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>Wu</surname> <given-names>LPF</given-names></string-name>, <string-name><surname>Li</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>R</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>WS</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>JY</given-names></string-name>, <string-name><surname>Xue</surname> <given-names>F</given-names></string-name></person-group>. <article-title>A blockchain-based model with an incentive mechanism for cross-border logistics supervision and data sharing in modular construction</article-title>. <source>J Clean Prod</source>. <year>2022</year>;<volume>375</volume>(<issue>7</issue>):<fpage>133460</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jclepro.2022.133460</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>Rahman</surname> <given-names>SM</given-names></string-name>, <string-name><surname>Al Omar</surname> <given-names>A</given-names></string-name>, <string-name><surname>Bhuiyan</surname> <given-names>MZA</given-names></string-name>, <string-name><surname>Basu</surname> <given-names>A</given-names></string-name>, <string-name><surname>Kiyomoto</surname> <given-names>S</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>G</given-names></string-name></person-group>. <article-title>Accountable cross-border data sharing using blockchain under relaxed trust assumption</article-title>. <source>IEEE Trans Eng Manag</source>. <year>2020</year>;<volume>67</volume>(<issue>4</issue>):<fpage>1476</fpage>&#x2013;<lpage>86</lpage>. doi:<pub-id pub-id-type="doi">10.1109/TEM.2019.2960829</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Rouselakis</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <chapter-title>Efficient statically-secure large-universe multi-authority attribute-based encryption</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Okamoto</surname> <given-names>T</given-names></string-name></person-group>, editor. <source>International Conference on Financial Cryptography and Data Security</source>. <publisher-loc>Berlin/Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2015</year>. p. <fpage>315</fpage>&#x2013;<lpage>32</lpage>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <chapter-title>Ciphertext-policy attribute-based encryption: an expressive, efficient, and provably secure realization</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Catalano</surname> <given-names>D</given-names></string-name>, <string-name><surname>Fazio</surname> <given-names>N</given-names></string-name>, <string-name><surname>Gennaro</surname> <given-names>R</given-names></string-name>, <string-name><surname>Nicolosi</surname> <given-names>A</given-names></string-name></person-group>, editors. <source>Public key cryptography&#x2013;PKC 2011</source>. <publisher-loc>Berlin/Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2011</year>. p. <fpage>53</fpage>&#x2013;<lpage>70</lpage>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Chinosi</surname> <given-names>M</given-names></string-name>, <string-name><surname>Trombetta</surname> <given-names>A</given-names></string-name></person-group>. <article-title>BPMN: an introduction to the standard</article-title>. <source>Comput Stand Interfaces</source>. <year>2012</year>;<volume>34</volume>(<issue>1</issue>):<fpage>124</fpage>&#x2013;<lpage>34</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.csi.2011.06.002</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>L&#x00F3;pez-Pintado</surname> <given-names>O</given-names></string-name>, <string-name><surname>Garc&#x00ED;a-Ba&#x00F1;uelos</surname> <given-names>L</given-names></string-name>, <string-name><surname>Dumas</surname> <given-names>M</given-names></string-name>, <string-name><surname>Weber</surname> <given-names>I</given-names></string-name>, <string-name><surname>Ponomarev</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Caterpillar: a business process execution engine on the ethereum blockchain</article-title>. <source>Softw: Pract Exp</source>. <year>2019 Jul</year>;<volume>49</volume>(<issue>7</issue>):<fpage>1162</fpage>&#x2013;<lpage>93</lpage>. doi:<pub-id pub-id-type="doi">10.1002/spe.2702</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>Liu</surname> <given-names>ZC</given-names></string-name>, <string-name><surname>Jiang</surname> <given-names>ZL</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Yiu</surname> <given-names>SM</given-names></string-name></person-group>. <article-title>Practical attribute-based encryption: outsourcing decryption, attribute revocation and policy updating</article-title>. <source>J Netw Comput Appl</source>. <year>2018 Apr</year>;<volume>108</volume>:<fpage>112</fpage>&#x2013;<lpage>23</lpage>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Guo</surname> <given-names>YY</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>ZH</given-names></string-name>, <string-name><surname>Ge</surname> <given-names>H</given-names></string-name>, <string-name><surname>Li</surname> <given-names>JG</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>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Cui</surname> <given-names>J</given-names></string-name>, <string-name><surname>Bian</surname> <given-names>F</given-names></string-name>, <string-name><surname>Zhong</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Gu</surname> <given-names>C</given-names></string-name>, <etal>et al.</etal></person-group> <article-title>An anonymous and outsourcing-supported multiauthority access control scheme with revocation for edge-enabled IIoT system</article-title>. <source>IEEE Syst J</source>. <year>2022</year>;<volume>16</volume>(<issue>4</issue>):<fpage>6569</fpage>&#x2013;<lpage>80</lpage>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Guo</surname> <given-names>ZZ</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>GL</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>GY</given-names></string-name>, <string-name><surname>Li</surname> <given-names>YX</given-names></string-name>, <string-name><surname>Ni</surname> <given-names>JQ</given-names></string-name></person-group>. <article-title>A multifactor combined data sharing scheme for vehicular fog computing using blockchain</article-title>. <source>IEEE Internet Things J</source>. <year>2023</year>;<volume>10</volume>(<issue>22</issue>):<fpage>20049</fpage>&#x2013;<lpage>64</lpage>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Huang</surname> <given-names>KQ</given-names></string-name></person-group>. <article-title>Secure efficient revocable large universe multi-authority attribute-based encryption for cloud-aided IoT</article-title>. <source>IEEE Access</source>. <year>2021</year>;<volume>9</volume>:<fpage>53576</fpage>&#x2013;<lpage>88</lpage>. doi:<pub-id pub-id-type="doi">10.1109/ACCESS.2021.3070907</pub-id>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>ZS</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>W</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>SJ</given-names></string-name>, <string-name><surname>Liao</surname> <given-names>YJ</given-names></string-name></person-group>. <article-title>A revocable multi-authority fine-grained access control architecture against ciphertext rollback attack for mobile edge computing</article-title>. <source>J Syst Archit</source>. <year>2022</year>;<volume>129</volume>(<issue>2</issue>):<fpage>102589</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.sysarc.2022.102589</pub-id>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>LY</given-names></string-name>, <string-name><surname>Li</surname> <given-names>XM</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Rezaeibagha</surname> <given-names>F</given-names></string-name></person-group>. <article-title>Blockchain-aided anonymous traceable and revocable access control scheme with dynamic policy updating for the cloud IoT</article-title>. <source>IEEE Internet Things J</source>. <year>2024</year>;<volume>11</volume>(<issue>1</issue>):<fpage>526</fpage>&#x2013;<lpage>42</lpage>. doi:<pub-id pub-id-type="doi">10.1109/JIOT.2023.3287190</pub-id>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wood</surname> <given-names>G</given-names></string-name></person-group>. <article-title>Ethereum: a secure decentralised generalised transaction ledger</article-title>. Vol. <volume>151</volume>. In: <source>Ethereum project yellow paper</source>; <year>2014</year>. p. <fpage>1</fpage>&#x2013;<lpage>32</lpage>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Di Francesco Maesa</surname> <given-names>D</given-names></string-name>, <string-name><surname>Lisi</surname> <given-names>A</given-names></string-name>, <string-name><surname>Mori</surname> <given-names>P</given-names></string-name>, <string-name><surname>Ricci</surname> <given-names>L</given-names></string-name>, <string-name><surname>Boschi</surname> <given-names>G</given-names></string-name></person-group>. <article-title>Self sovereign and blockchain based access control: supporting attributes privacy with zero knowledge</article-title>. <source>J Netw Comput Appl</source>. <year>2023</year>;<volume>212</volume>(<issue>6</issue>):<fpage>103577</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jnca.2022.103577</pub-id>.</mixed-citation></ref>
</ref-list>
</back></article>