<?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">69628</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2025.069628</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Searchable Attribute-Based Encryption with Multi-Keyword Fuzzy Matching for Cloud-Based IoT</article-title>
<alt-title alt-title-type="left-running-head">Searchable Attribute-Based Encryption with Multi-Keyword Fuzzy Matching for Cloud-Based IoT</alt-title>
<alt-title alt-title-type="right-running-head">Searchable Attribute-Based Encryption with Multi-Keyword Fuzzy Matching for Cloud-Based IoT</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Duan</surname><given-names>He</given-names></name></contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Zhang</surname><given-names>Shi</given-names></name><email>zhangshi@mail.neu.edu.cn</email></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Li</surname><given-names>Dayu</given-names></name></contrib>
<aff id="aff-1"><institution>School of Computer Science and Engineering, Northeastern University</institution>, <addr-line>Shenyang, 110819</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Shi Zhang. Email: <email>zhangshi@mail.neu.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>09</day><month>12</month><year>2025</year></pub-date>
<volume>86</volume>
<issue>2</issue>
<fpage>1</fpage>
<lpage>25</lpage>
<history>
<date date-type="received">
<day>27</day>
<month>06</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>15</day>
<month>09</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_69628.pdf"></self-uri>
<abstract>
<p>Internet of Things (IoT) interconnects devices via network protocols to enable intelligent sensing and control. Resource-constrained IoT devices rely on cloud servers for data storage and processing. However, this cloud-assisted architecture faces two critical challenges: the untrusted cloud services and the separation of data ownership from control. Although Attribute-based Searchable Encryption (ABSE) provides fine-grained access control and keyword search over encrypted data, existing schemes lack of error tolerance in exact multi-keyword matching. In this paper, we proposed an attribute-based multi-keyword fuzzy searchable encryption with forward ciphertext search (FCS-ABMSE) scheme that avoids computationally expensive bilinear pairing operations on the IoT device side. The scheme supports multi-keyword fuzzy search without requiring explicit keyword fields, thereby significantly enhancing error tolerance in search operations. It further incorporates forward-secure ciphertext search to mitigate trapdoor abuse, as well as offline encryption and verifiable outsourced decryption to minimize user-side computational costs. Formal security analysis proved that the FCS-ABMSE scheme meets both indistinguishability of ciphertext under the chosen keyword attacks (IND-CKA) and the indistinguishability of ciphertext under the chosen plaintext attacks (IND-CPA). In addition, we constructed an enhanced variant based on type-3 pairings. Results demonstrated that the proposed scheme outperforms existing ABSE approaches in terms of functionalities, computational cost, and communication cost.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Cloud computing</kwd>
<kwd>Internet of Things</kwd>
<kwd>ABSE</kwd>
<kwd>multi-keyword fuzzy matching</kwd>
<kwd>outsourcing decryption</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>With the rapid development of Internet of Things (IoT), pervasive IoT devices (IoTDs) have become capable of sensing their environments and processing data, thereby bridging the physical and digital worlds. IoT has been widely applied in industrial production, agriculture, public safety monitoring, smart cities, mobile healthcare, and so on. For instance, IoT-enabled medical systems utilize embedded and wearable equipments to collect health-related data for clinical diagnosis [<xref ref-type="bibr" rid="ref-1">1</xref>]. It was predicted that the growth of wearable IoTDs will reach 265.4 USD billion in 2026 [<xref ref-type="bibr" rid="ref-2">2</xref>].</p>
<p>To address the computational and storage limitations of IoTDs, cloud computing has emerged as a cost-effective and scalable solution. In cloud-assisted IoT systems, IoTDs like sensors transmit data to cloud servers via wireless networks. The cloud infrastructure offers abundant storage and computational resources, enabling efficient data processing and reducing the burden on IoTDs. However, outsourcing sensitive IoT data to third-party cloud servers introduces serious privacy leakage and security concerns.</p>
<p>Encrypting IoT data before outsourcing is a simple solution to protecting privacy. However, once data is encrypted and stored, users cannot directly retrieve specific data. Instead, they are forced to download all ciphertexts, which significantly degrades system efficiency. Searchable encryption (SE) scheme [<xref ref-type="bibr" rid="ref-3">3</xref>] was introduced to address this issue. By leveraging keyword matching, users can search encrypted data to retrieve specific information without decrypting the entire dataset. SE schemes typically bind search capabilities to a specific user&#x2019;s key, limiting their effectiveness in multi-user environments. To achieve fine-grained access control of data, attribute-based encryption (ABE) mechanisms [<xref ref-type="bibr" rid="ref-4">4</xref>] have been introduced. ABE can identify users based on their attribute sets, grant each user unique identity characteristics, and provide flexible representation of access control policies at the expense of increased computational and communication costs compared to traditional encryption techniques. Attribute-based keyword-searchable encryption (ABSE) scheme [<xref ref-type="bibr" rid="ref-5">5</xref>] can address the fine-grained access control and search issue by combining ABE and SE. In ABSE schemes, data users can only retrieve and recover the plaintext if their own attribute set matches the access control policy specified by the data owner. However, most existing ABSE schemes support only exact keyword matching, which may fail to reflect a user&#x2019;s actual search intent and limits the expressiveness of search strategies.</p>
<sec id="s1_1">
<label>1.1</label>
<title>Related Work</title>
<sec id="s1_1_1">
<label>1.1.1</label>
<title>Searchable Encryption</title>
<p>In 2000, Song et al. [<xref ref-type="bibr" rid="ref-3">3</xref>] introduced searchable encryption, enabling data users to perform keyword searches on encrypted cloud data without decryption. They implemented a symmetric searchable encryption (SSE) scheme based on symmetric cryptography. However, this scheme requires a centralized key management authority to distribute keys to users, leading to complex key distribution and management challenges. After that, although many improved SSE schemes have been introduced and formally proven secure, they are unsuitable for multi-user data-sharing cases. To address this, Boneh et al. [<xref ref-type="bibr" rid="ref-6">6</xref>] in 2004 suggested a public key encryption with keyword search (PEKS) scheme based on identity-based encryption [<xref ref-type="bibr" rid="ref-7">7</xref>] for ciphertext retrieval in public key cryptosystems. PEKS allows a sender to create searchable ciphertext using a keyword and the public key of the receiver. The receiver generates a trapdoor using its private key and sends it to cloud servers. The server returns matching ciphertexts to the user if and only if the keyword in the trapdoor matches the one in the ciphertext. Chen et al. [<xref ref-type="bibr" rid="ref-8">8</xref>] improved multi-keyword PEKS by reducing computational cost and trapdoor sizes. However, their scheme strictly enforces exact-match queries. Any input errors or formatting inconsistencies in user queries will prevent the system from returning valid results, thus severely compromising practical usability. For error-tolerant scenarios, Li et al. [<xref ref-type="bibr" rid="ref-9">9</xref>] first suggested fuzzy search PEKS using wildcards and edit distance. Servers can return results similar to the queried keywords at the expense of significantly increased storage and computational overhead. Dong et al. [<xref ref-type="bibr" rid="ref-10">10</xref>] designed a homomorphic encryption based fuzzy keyword search scheme which is more efficient than [<xref ref-type="bibr" rid="ref-9">9</xref>]. Zhang et al. [<xref ref-type="bibr" rid="ref-11">11</xref>] introduced a scalable fuzzy keyword ranked search scheme over encrypted data to achieve fuzzy keyword search for any similarity threshold with a constant storage size and accurate search results. Jiang et al. [<xref ref-type="bibr" rid="ref-12">12</xref>] proposed a fuzzy keyword searchable encryption scheme based on blockchain. Their scheme leverages blockchain to ensure equitable service payment transactions between users and cloud servers.</p>
<p>Most existing SE schemes exhibit expressive search policies and support only single-keyword or conjunctive keyword queries. To address expressiveness challenges in SE, Lai et al. [<xref ref-type="bibr" rid="ref-5">5</xref>] proposed an expressive PEKS (EPEKS) scheme on composite-order groups with high computational costs. Cash et al. [<xref ref-type="bibr" rid="ref-13">13</xref>] designed a searchable symmetric encryption, which supports boolean queries. Xu et al. [<xref ref-type="bibr" rid="ref-14">14</xref>] developed an efficient multi-keyword search mechanism that operates without predefined keyword fields, utilizing an anti-collusion box to enable boolean search functionality. Li et al. [<xref ref-type="bibr" rid="ref-15">15</xref>] further advanced this domain by proposing a verifiable boolean search protocol over encrypted data within an SSE framework, which guarantees forward privacy and weak backward privacy. Tong et al. [<xref ref-type="bibr" rid="ref-16">16</xref>] proposed a privacy-preserving boolean range query with temporal access control. Their scheme achieves privacy-preserving boolean range query and forward/backward derivation functions. Liu et al. [<xref ref-type="bibr" rid="ref-17">17</xref>] developed a verifiable dynamic encryption with ranked search (VDERS) scheme to secure top-<italic>K</italic> searches and verifiable results on dynamic document collections.</p>
<p>In terms of search privacy, Li et al. [<xref ref-type="bibr" rid="ref-18">18</xref>] introduced forward search privacy, enabling secure searches on newly added documents without leaking historical query information. Gan et al. [<xref ref-type="bibr" rid="ref-19">19</xref>] introduced a forward private SSE scheme for multiple clients. Their scheme involves no bilinear pairing computation, which has better efficiency on search. Guo et al. [<xref ref-type="bibr" rid="ref-20">20</xref>] designed a verifiable and forward-privacy SSE scheme that achieves sublinear search time and efficient file updates with guaranteed security. Cui et al. [<xref ref-type="bibr" rid="ref-21">21</xref>] proposed a dynamic and verifiable fuzzy keyword search with forward security scheme that adopts uni-gram and locality-sensitive hashing (LSH) to achieve efficient search.</p>
</sec>
<sec id="s1_1_2">
<label>1.1.2</label>
<title>Attributed-Based Encryption</title>
<p>Sahai and Waters [<xref ref-type="bibr" rid="ref-22">22</xref>] first proposed fuzzy identity-based encryption in 2005, laying the foundation for ABE as a means of achieving fine-grained access control. Building on this, Goyal et al. [<xref ref-type="bibr" rid="ref-4">4</xref>] formally defined two principal variants of ABE schemes: key-policy attribute-based encryption (KP-ABE) and ciphertext-policy attribute-based encryption (CP-ABE). In KP-ABE, secret keys are related to access control policies and ciphertexts are associated with attribute sets. CP-ABE inversely links ciphertexts to access control policies while binding secret keys to attribute sets. Bethencourt et al. [<xref ref-type="bibr" rid="ref-23">23</xref>] subsequently proposed the first concrete construction of CP-ABE. However, their implementation employed access trees as policy representation structures, resulting in limited expressive power for complex access control requirements. To improve security, efficiency, and expressiveness, Waters [<xref ref-type="bibr" rid="ref-24">24</xref>] later enhanced CP-ABE by implementing arbitrary monotonic access policies with linear secret sharing scheme (LSSS) matrices. Despite these improvements, these schemes lacked support for attribute negation. Ostrovsky et al. [<xref ref-type="bibr" rid="ref-25">25</xref>] utilized the broadcast revocation mechanism to achieve KP-ABE with negation operations, doubling the size of the ciphertext, keys, and computational costs. Lewko et al. [<xref ref-type="bibr" rid="ref-26">26</xref>] later optimized [<xref ref-type="bibr" rid="ref-25">25</xref>] by reducing public key size with longer ciphertexts.</p>
<p>Extensive ABE works have focused on enhancing ABE schemes. Meng et al. [<xref ref-type="bibr" rid="ref-27">27</xref>] introduced a dual-policy ABME scheme with forward security. However, their scheme requires updating the ciphertext, which is impractical in end-to-end data sharing scenarios. Luo et al. in [<xref ref-type="bibr" rid="ref-28">28</xref>] suggested a hidden policy scheme that relies on the user revocation mechanism on fog nodes, making it vulnerable if those nodes are compromised. Miao et al. [<xref ref-type="bibr" rid="ref-29">29</xref>] introduced a verifiable outsourced ABME scheme, but its lack of cryptographic agility and limited access delegation models restrict its adaptability and flexibility. Duan et al. [<xref ref-type="bibr" rid="ref-30">30</xref>] introduced a muti-authority ABME scheme. This scheme&#x2019;s security depends on trusted third parties (central/attribute authorities), creating a single point of failure if these entities are compromised. Ruan et al. [<xref ref-type="bibr" rid="ref-31">31</xref>] introduced an ABME scheme that supports attribute and user revocation. However, this scheme lacks public traceability, limiting its ability to identify and trace malicious users.</p>
</sec>
<sec id="s1_1_3">
<label>1.1.3</label>
<title>Attributed-Based Searchable Encryption</title>
<p>To enable searchable encryption as well as multi-user access control, Lai et al. [<xref ref-type="bibr" rid="ref-5">5</xref>] designed a key-policy ABSE scheme combining KP-ABE with PEKS. In 2014, Zheng et al. [<xref ref-type="bibr" rid="ref-32">32</xref>] presented a verifiable attribute-based keyword search (VABKS) scheme that outsources complex search operations to cloud servers. Their design uses Bloom filters and digital signatures to ensure that only authorized users can retrieve cloud data, while enabling verification of the cloud server&#x2019;s search integrity. Han et al. [<xref ref-type="bibr" rid="ref-33">33</xref>] introduced the concept of weak anonymous ABE and established a generic transformation between ABE and key-policy ABSE schemes. They also proposed a multi-user ABSE scheme for flexible collaborative searches on remotely encrypted data. However, this scheme&#x2019;s reliance on composite-order groups resulted in low efficiency. Zhang et al. [<xref ref-type="bibr" rid="ref-34">34</xref>] suggested a blockchain-based anonymous ABSE scheme for data sharing. In their scheme, attributes of the access policy are hidden, ensuring the confidentiality of those attributes. In 2021, Ge et al. [<xref ref-type="bibr" rid="ref-35">35</xref>] proposed an ABSE scheme that supports both attribute-based keyword search and data sharing. Notably, this scheme enables keyword updates during the sharing phase without requiring interaction with the private key generator. Ali et al. [<xref ref-type="bibr" rid="ref-36">36</xref>] introduced a verifiable online/offline multi-keyword search (VMKS) scheme that implements outsourced encryption and decryption. In their scheme, the outsourcing part of the encryption and decryption computations significantly reduces the computational cost. Moreover, their scheme supports threshold-based search, where a match succeeds only when the intersection between the keywords in the trapdoor and those in the ciphertext exceeds the specified threshold. Miao et al. [<xref ref-type="bibr" rid="ref-37">37</xref>] designed an optimized verifiable fine-grained keyword search scheme in the static multi-owner setting (VFKSM) to significantly reduce both the ciphertext length and communication overhead. Their scheme achieves ciphertext length linear in the number of keywords, and employs a threshold signature mechanism to convert multiple signatures into a single threshold signature. Huang et al. [<xref ref-type="bibr" rid="ref-38">38</xref>] suggested an expressive multi-keyword ABSE scheme with ranked search results. While their solution supports AND/OR logical search predicates, it incurs substantial communication and computational overhead. To support attribute tracking and multi-keyword search, Huang et al. [<xref ref-type="bibr" rid="ref-39">39</xref>] proposed an ABSE scheme, which employs a new security model in its proof. However, this scheme suffers from a critical design flaw where portions of user private keys are exposed as trapdoors. Chen et al. [<xref ref-type="bibr" rid="ref-40">40</xref>] introduced a fair-and-exculpable-attribute-based searchable encryption with revocation and verifiable outsourced decryption (FE-ABSE-RV) scheme. Their scheme prevents malicious accusations from the client side against the cloud for returning incorrect results, thereby realizing fair exculpability for both ends. Tian et al. [<xref ref-type="bibr" rid="ref-41">41</xref>] designed an attribute-based heterogeneous data privacy sharing (AB-HDPS) scheme. Their scheme leverages the immutability of blockchain to achieve traceability and auditing of user access behaviors, while also implementing attribute revocation by subset-cover trees.</p>
</sec>
</sec>
<sec id="s1_2">
<label>1.2</label>
<title>Contributions</title>
<p>The above ABSE schemes have limited search capabilities, supporting only single-keyword or simple conjunctive keyword searches. Issues on existing ABSE schemes are summarized as follows.
<list list-type="bullet">
<list-item>
<p><bold>Only support exact match.</bold> In most existing ABSE schemes, the data owner specifies a set of keywords for their data. The cloud server will return the search ciphertext when keywords in the ciphertext and keywords in the trapdoor match exactly (i.e., both keyword sets are identical or the keyword set in the trapdoor is a subset of the keyword set in the ciphertext). This exact match search method exhibits very poor fault tolerance, as even a single erroneous keyword input (such as a typographical error) will result in failed searches.</p></list-item>
<list-item>
<p><bold>No forward security.</bold> Existing ABSE schemes require data users to create a trapdoor for querying encrypted data stored on cloud servers. However, third-party cloud servers are often untrusted. After completing the search, the cloud server can store these trapdoors and perform unauthorized future searches. The cloud server can verify whether newly added encrypted data matches previous search queries, which may result in the frequency attack issue [<xref ref-type="bibr" rid="ref-42">42</xref>] and expose keyword privacy.</p></list-item>
<list-item>
<p><bold>High computational and communication costs.</bold> In most existing verifiable ABSE schemes, data users needs download the partially decrypted ciphertext to verify the validity of outsourced decryption. This means that even if the cloud server performs search and partial decryption operations, users still need to download the whole ciphertext. This increases the user&#x2019;s bandwidth and communication overhead, which is not suitable for resource-constrained IoT applications.</p></list-item>
</list></p>
<p>To address these challenges, we introduced an attribute-based multi-keyword fuzzy searchable encryption with forward ciphertext search (FCS-ABMSE) scheme. FCS-ABMSE supports multi-keyword fuzzy search based on the number of elements of the intersection keyword sets, forward security, and outsourced decryption and verification. The main functions are listed below.
<list list-type="bullet">
<list-item>
<p><bold>Multi-keyword fuzzy matching:</bold> Our scheme allows ciphertext and query keywords to have a certain degree of lexical deviation rather than being restricted to exact matching for search fault tolerance in real-world scenarios.</p></list-item>
<list-item>
<p><bold>Forward security:</bold> Even if query a trapdoor is leaked, the scheme can ensure that attackers cannot access historical encrypted data.</p></list-item>
<list-item>
<p><bold>Outsourced decryption and verification:</bold> Outsourced encryption and verification can reduce the computational cost of data uses, and mitigate the risk of the cloud server tampering with query results or altering data.</p></list-item>
</list></p>
</sec>
<sec id="s1_3">
<label>1.3</label>
<title>Organization</title>
<p>The rest of this paper is organized as follows. <xref ref-type="sec" rid="s2">Section 2</xref> outlines cryptographic preliminaries. <xref ref-type="sec" rid="s3">Section 3</xref> presents the system model. <xref ref-type="sec" rid="s4">Section 4</xref> explains the proposed FCS-ABMSE scheme with formal security analysis, followed by performance evaluations in <xref ref-type="sec" rid="s5">Section 5</xref>. <xref ref-type="sec" rid="s6">Section 6</xref> presents an enhanced scheme while <xref ref-type="sec" rid="s7">Section 7</xref> concludes this paper with future work.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Preliminaries</title>
<p>This section describes essential cryptographic preliminaries employed in our scheme.</p>
<sec id="s2_1">
<label>2.1</label>
<title>Notations</title>
<p>Notations used throughout the paper are defined in <xref ref-type="table" rid="table-1">Table 1</xref>.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Notations and descriptions</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Notations</th>
<th>Descriptions</th>
<th>Notations</th>
<th>Descriptions</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mi>p</mml:mi></mml:math></inline-formula></td>
<td>Large prime number</td>
<td><inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>System global attribute set</td>
</tr>
<tr>
<td><inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Multiplicative cyclic groups of order <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>p</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>System global keyword set</td>
</tr>
<tr>
<td><inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mi>g</mml:mi></mml:math></inline-formula></td>
<td>Generator of <italic>G</italic></td>
<td><inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Attribute set of data user</td>
</tr>
<tr>
<td><inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mi>e</mml:mi></mml:math></inline-formula></td>
<td>Bilinear map</td>
<td><inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula></td>
<td>Global parameter set</td>
</tr>
<tr>
<td><inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi mathvariant="normal">&#x03A0;</mml:mi></mml:math></inline-formula></td>
<td>Data encapsulation scheme</td>
<td><inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula></td>
<td>Access control policy</td>
</tr>
<tr>
<td><inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi mathvariant="normal">&#x03A6;</mml:mi></mml:math></inline-formula></td>
<td>Commitment scheme</td>
<td><inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:math></inline-formula></td>
<td>Master key</td>
</tr>
<tr>
<td><inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mi mathvariant="normal">&#x03A8;</mml:mi></mml:math></inline-formula></td>
<td>Message authentication code scheme</td>
<td><inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><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>n</mml:mi><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Bilinear Map</title>
<p><bold>Definition 1.</bold> Let <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula>, and <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula> be three cyclic groups of prime order <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:mi>p</mml:mi></mml:math></inline-formula>, with <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula> denoting a generator of <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula> denoting a generator of <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula>. A map <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula> is said to be a bilinear map if it satisfies the following properties:
<list list-type="bullet">
<list-item>
<p>For any <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:mi>&#x03C5;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03BD;</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>, <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03C5;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mi>&#x03BD;</mml:mi></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>&#x03C5;</mml:mi><mml:mi>&#x03BD;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p><inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2260;</mml:mo><mml:msub><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:msub><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> denotes the identity of <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For any <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi>&#x03C5;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03BD;</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>, <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03C5;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mi>&#x03BD;</mml:mi></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> can be computed efficiently.</p></list-item>
</list></p>
<p>A bilinear map <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula> is symmetric if <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mo>=</mml:mo><mml:mi>G</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>; Otherwise, it is asymmetric.</p>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>Difficult Problems</title>
<p>The security of the proposed scheme relies on two difficult problems.</p>
<p><bold>Definition 2.</bold> Let <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:mo stretchy="false">(</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> be prime order cyclic groups. The decisional bilinear Diffie-Hellman (DBDH) problem is to determine if <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mi>T</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>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, for <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo>,</mml:mo><mml:mi>c</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 <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:mi>T</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p><bold>Definition 3.</bold> Let <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mo stretchy="false">(</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> be prime order cyclic groups. The decisional <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mi>q</mml:mi></mml:math></inline-formula>-parallel bilinear Diffie-Hellman (<inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mi>q</mml:mi></mml:math></inline-formula>-parallel-BDHE) problem is to determine whether <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mi>T</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>&#x03B2;</mml:mi><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, for <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo><mml:mi>s</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:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>q</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>, <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mo stretchy="false">(</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mi>T</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula>, where
<disp-formula id="ueqn-1"><mml:math id="mml-ueqn-1" display="block"><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mtable columnalign="left left left left left left left left" rowspacing="4pt" columnspacing="1em"><mml:mtr><mml:mtd><mml:mi>g</mml:mi><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>q</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>q</mml:mi><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>a</mml:mi><mml:mi>q</mml:mi></mml:msup><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mi>q</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>q</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo></mml:mtd><mml:mtd><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>a</mml:mi><mml:mi>q</mml:mi></mml:msup><mml:mi>s</mml:mi><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mtd><mml:mtd /><mml:mtd /><mml:mtd /><mml:mtd /></mml:mtr></mml:mtable><mml:mo>)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:math></disp-formula></p>
</sec>
<sec id="s2_4">
<label>2.4</label>
<title>Linear Secret Sharing Scheme</title>
<p><bold>Definition 4.</bold> A linear secret sharing scheme (LSSS) for a set of participants <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula> is considered linear if it can meet the following conditions:
<list list-type="bullet">
<list-item>
<p>Each participant receives a share represented as a vector with components in <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><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>.</p></list-item>
<list-item>
<p>There exists a matrix <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mrow><mml:mtext mathvariant="bold">M</mml:mtext></mml:mrow></mml:math></inline-formula> with <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mi>&#x2113;</mml:mi></mml:math></inline-formula> rows and <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:mi>n</mml:mi></mml:math></inline-formula> columns. Each row <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:mi>i</mml:mi></mml:math></inline-formula> of <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mrow><mml:mtext mathvariant="bold">M</mml:mtext></mml:mrow></mml:math></inline-formula> (for <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>&#x2113;</mml:mi><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>) is associated with a participant labeled as <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4AB;</mml:mi></mml:mrow></mml:math></inline-formula>. To share a secret, select a column vector <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:mrow><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover></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:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mi>s</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> is the secret and <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><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: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> are random elements. The product <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:mrow><mml:mtext mathvariant="bold">M</mml:mtext></mml:mrow><mml:mrow><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> produces <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:mi>&#x2113;</mml:mi></mml:math></inline-formula> shares of the secret <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:mi>s</mml:mi></mml:math></inline-formula>. Specifically, the share corresponding to participant <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is given by <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>v</mml:mi></mml:math></inline-formula>, where <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> denotes the <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mi>i</mml:mi></mml:math></inline-formula>-th row of <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mrow><mml:mtext mathvariant="bold">M</mml:mtext></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list></p>
</sec>
<sec id="s2_5">
<label>2.5</label>
<title>Key Derivation Function</title>
<p><bold>Definition 5.</bold> A key derivation function (KDF) accepts a secret <inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mi>k</mml:mi></mml:math></inline-formula> and a length <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mi>l</mml:mi></mml:math></inline-formula>, and then generates a cryptographic key <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula>.</p>
<p><bold>Definition 6.</bold> A KDF is said to be secure if the advantage <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">K</mml:mi><mml:mi mathvariant="normal">D</mml:mi><mml:mi mathvariant="normal">F</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>R</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula> is negligible for any polynomial-time adversary <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:mi>R</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula> is a random cryptographic key chosen from the key space.</p>
</sec>
<sec id="s2_6">
<label>2.6</label>
<title>Data Encapsulation Mechanism</title>
<p><bold>Definition 7.</bold> A data encapsulation mechanism (DEM) is a symmetric encryption scheme consisting of two algorithms:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula>: Input a symmetric key <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow></mml:math></inline-formula> and a message <italic>M</italic>, output a ciphertext <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub></mml:math></inline-formula>, where <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow></mml:math></inline-formula> is the key space.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula>: Input <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub></mml:math></inline-formula>, output the decrypted message <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mi>m</mml:mi></mml:math></inline-formula> or a special symbol <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula> to indicate a decryption failure.</p></list-item>
</list></p>
<p><bold>Definition 8.</bold> A DEM <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is said to achieve indistinguishability under chosen-ciphertext attack (IND-DEM-CCA) security if the following advantage <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>E</mml:mi><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is negligible for any polynomial-time adversary <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>:
<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:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>E</mml:mi><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">[</mml:mo></mml:mrow></mml:mstyle><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03B7;</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>b</mml:mi><mml:msub><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mi>R</mml:mi></mml:msub><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:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>K</mml:mi><mml:msub><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mi>R</mml:mi></mml:msub><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi>C</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:mtext>DEM.Enc</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>O</mml:mi><mml:mrow><mml:mrow><mml:mtext>Dec</mml:mtext></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:mi>C</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x2212;</mml:mo><mml:mstyle displaystyle="false" scriptlevel="0"><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula> is the security parameter and <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mrow><mml:msub><mml:mrow><mml:mi>O</mml:mi></mml:mrow><mml:mrow><mml:mtext>Dec</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the decryption oracle.</p>
</sec>
<sec id="s2_7">
<label>2.7</label>
<title>Commitment Scheme</title>
<p><bold>Definition 9.</bold> A commitment scheme is a cryptographic protocol that is specified by the two following algorithms:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:math></inline-formula>: Given an input string <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:mi>s</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, the algorithm outputs a commitment <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:math></inline-formula> and a de-commitment <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:math></inline-formula>;</p></list-item>
<list-item>
<p><inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:math></inline-formula>: Given a pair <inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, the algorithm outputs 1 if the pair is valid, or 0 otherwise.</p></list-item>
</list></p>
<p><bold>Definition 10.</bold> A commitment scheme <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is computationally hiding if the following advantage <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi>H</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is negligible for any polynomial-time adversary <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>:
<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:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi>H</mml:mi><mml:mi>i</mml:mi><mml:mi>d</mml:mi><mml:mi>i</mml:mi><mml:mi>n</mml:mi><mml:mi>g</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">[</mml:mo></mml:mrow></mml:mstyle><mml:mi>b</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>:</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03B7;</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>b</mml:mi><mml:msub><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mi>R</mml:mi></mml:msub><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:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>b</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mspace width="1em" /><mml:msup><mml:mi>b</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">]</mml:mo></mml:mrow></mml:mstyle><mml:mo>&#x2212;</mml:mo><mml:mstyle displaystyle="false" scriptlevel="0"><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mstyle><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.623em" minsize="1.623em">|</mml:mo></mml:mrow></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>where <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula> is the security parameter.</p>
</sec>
<sec id="s2_8">
<label>2.8</label>
<title>Message Authentication Code</title>
<p><bold>Definition 11.</bold> A message authentication code (MAC) is a cryptographic scheme that is specified by the two following algorithms:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo>:</mml:mo></mml:math></inline-formula> Given a symmetric key <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow></mml:math></inline-formula> and a message <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:mi>m</mml:mi></mml:math></inline-formula>, the algorithm outputs a MAC <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula>, where <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow></mml:math></inline-formula> is the key space.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>V</mml:mi><mml:mi>r</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mo>:</mml:mo></mml:math></inline-formula> Given a symmetric key <inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow></mml:math></inline-formula>, a message <inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:mi>m</mml:mi></mml:math></inline-formula> and a MAC <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:math></inline-formula>, the algorithm outputs 1 if <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, or 0 otherwise.</p></list-item>
</list></p>
<p><bold>Definition 12.</bold> A MAC scheme <inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>V</mml:mi><mml:mi>r</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is said to satisfy existential unforgeability under chosen-message attack (EU-CMA) if the following advantage <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mi>D</mml:mi><mml:mi>E</mml:mi><mml:mi>M</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is negligible for adversary <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> with polynomial-time:</p>
<p><inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msubsup><mml:mi>v</mml:mi><mml:mrow><mml:mrow><mml:mi mathvariant="normal">M</mml:mi><mml:mi mathvariant="normal">A</mml:mi><mml:mi mathvariant="normal">C</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:msup><mml:mi>m</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:msup><mml:mi>c</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo><mml:mo>&#x2260;</mml:mo><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mo>&#x2227;</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>V</mml:mi><mml:mi>r</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>m</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:msup><mml:mi>c</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>k</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi>m</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:msup><mml:mi>m</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:msup><mml:mi>c</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo><mml:mo stretchy="false">&#x2190;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:mrow><mml:mi>&#x1D4A6;</mml:mi></mml:mrow></mml:math></inline-formula> is the key space.</p>
</sec>
<sec id="s2_9">
<label>2.9</label>
<title>0/1&#x2014;Encoding Approach</title>
<p>In the proposed scheme, we compare two time points <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:mi>t</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> using the 0/1-encoding approach [<xref ref-type="bibr" rid="ref-43">43</xref>]. The 0/1-encoding approach consists of two encoding algorithms:
<list list-type="bullet">
<list-item>
<p>0-encoding: Given a <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:mi>n</mml:mi></mml:math></inline-formula>-bit binary integer <inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>n</mml:mi></mml:msup></mml:math></inline-formula>, the algorithm outputs a set <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:msubsup><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x22EF;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo>,</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>n</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> that contains at most <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:msub><mml:mrow><mml:mtext>log</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msub><mml:mi>n</mml:mi></mml:math></inline-formula> elements;</p></list-item>
<list-item>
<p>1-encoding: Given a <inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:mi>n</mml:mi></mml:math></inline-formula>-bit binary integer <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>n</mml:mi></mml:msup></mml:math></inline-formula>, the algorithm outputs a set <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:msubsup><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x22EF;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</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>n</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> that contains at most <inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:msub><mml:mrow><mml:mtext>log</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msub><mml:mi>n</mml:mi></mml:math></inline-formula> elements.</p></list-item>
</list></p>
<p>According to [<xref ref-type="bibr" rid="ref-43">43</xref>], for any two integer values <inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:mi>t</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003E;</mml:mo><mml:mi>t</mml:mi></mml:math></inline-formula> holds if and only if <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:msubsup><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mn>1</mml:mn></mml:msubsup><mml:mo>&#x2229;</mml:mo><mml:msubsup><mml:mi>S</mml:mi><mml:mi>t</mml:mi><mml:mn>0</mml:mn></mml:msubsup><mml:mo>&#x2260;</mml:mo><mml:mi mathvariant="normal">&#x2205;</mml:mi></mml:math></inline-formula>.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>System Model, Synax, and Security Definition</title>
<p>This section gives the system model, synax, and security definitions of the FCS-ABMSE scheme in turn.</p>
<sec id="s3_1">
<label>3.1</label>
<title>System Model</title>
<p>As shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>, the proposed FCS-ABMSE scheme involves the following six different entities:</p>

<p><list list-type="bullet">
<list-item>
<p><bold>Central Authority (CA):</bold> The CA generates the system&#x2019;s global parameters and master key, and issues attribute keys to users.</p></list-item>
<list-item>
<p><bold>Sensor&#x2019;s Owner (SO):</bold> The SO encrypts keywords offline and stores offline ciphertexts of keywords onto sensors.</p></list-item>
<list-item>
<p><bold>Sensors (SN):</bold> The SN is responsible for collecting user data, creating searchable ciphertexts, and then sending them to the CS.</p></list-item>
<list-item>
<p><bold>Data User (DU):</bold> The DU retrieves matching ciphertext from the cloud server using a trapdoor, downloads them, and then decrypts the data using their decryption key.</p></list-item>
<list-item>
<p><bold>Cloud Server (CS):</bold> The CS provides ciphertexts storage and retrieval services, while assisting DUs with partial decryption of ciphertexts.</p></list-item>
<list-item>
<p><bold>System Clock (SC):</bold> The SC provides the current system timestamp in ciphertext and trapdoor generation.</p></list-item>
</list></p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>System model of FCS-ABMSE</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-1.tif"/>
</fig>
<p>The interaction among the entities proceeds as follows: First, the CA distributes the system&#x2019;s global parameters to other entities and transmits the attribute keys to the DU. Second, the SC transmits the current system timestamp to the SN and the DU. Third, the SO transmits the offline ciphertext to the SN. Then, the SN transmits the online ciphertext to the CS. After that, the DU transmits the trapdoor to the CS. Last, the CS stores the ciphertexts received from the SN, performs search operations upon receiving trapdoors from the DU, and returns pre-decrypted results to the DU.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Syntax of FCS-ABMSE</title>
<p>The FCS-ABMSE scheme is defined by the following nine algorithms:</p>
<p>(1) <bold>Setup </bold>(<inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:mi>&#x03B7;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>): The CA executes the algorithm to generate the global parameter set <inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>. Given a security parameter <inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula>, the system global attribute set <inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula>, and the system global keyword set <inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>, this algorithm outputs the global parameter set <inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula> and a master key <inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:mrow><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p>(2) <bold>ASKGen </bold>(<inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>): The CA executes the algorithm to issue an attribute key for each DU. Given <inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:mrow><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:math></inline-formula>, and an attribute set <inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:msub><mml:mrow><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula>, this algorithm outputs an attribute key <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>(3) <bold>DUKeyGen </bold>(<inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>): The DU executes the algorithm to generate a private key and a ciphertext conversion key. Given <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula> and an attribute key <inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, this algorithm outputs a private key <inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and a ciphertext conversion key <inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:msub><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>(4) <bold>offEncrypt </bold>(<inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>): The SO executes the algorithm to create offline ciphertexts. Given <inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, the algorithm outputs an offline ciphertext <inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>(5) <bold>onEncrypt</bold> (<inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:math></inline-formula>): The SN executes the algorithm to create online ciphertexts. Given <inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, a message <inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:mi>m</mml:mi></mml:math></inline-formula>, the offline ciphertext <inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, a keyword set <inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>, an access control policy <inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:mi mathvariant="normal">&#x039B;</mml:mi></mml:math></inline-formula>, and the current system time <inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:mi>t</mml:mi></mml:math></inline-formula>, this algorithm outputs an online ciphertext <inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p>(6) <bold>TrapGen </bold>(<inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>): The DU executes the algorithm to create a trapdoor. Given <inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, a search threshold <inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, a search keyword set <inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>, the DU&#x2019;s private key <inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and current system time <inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, this algorithm outputs a trapdoor <inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p>(7) <bold>Search </bold>(<inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>): The CS executes the algorithm to make ciphertext searches and pre-decryptions. Given <inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, an online ciphertext <inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, a trapdoor <inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:math></inline-formula>, and a ciphertext conversion key <inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:msub><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, this algorithm outputs a conversion ciphertext <inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and a pre-decryption ciphertext <inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:msub><mml:mrow><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula> if <inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> matches <inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:math></inline-formula>; otherwise, it returns <inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:mi mathvariant="normal">&#x22A5;</mml:mi></mml:math></inline-formula>.</p>
<p>(8) <bold>ResultVrfy </bold>(<inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>): The DU executes the algorithm to check the validness of the search results and create corresponding decryption keys. Given <inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, a conversion ciphertext <inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, and the DU&#x2019;s private key <inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, this algorithm outputs a decryption key <inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:mrow><mml:mi>d</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:math></inline-formula> if <inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> is valid; otherwise, it returns an invalid flag <inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula>.</p>
<p>(9) <bold>Decrypt</bold> (<inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>d</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula>): After verifying the validness of <inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, the DU downloads <inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:msub><mml:mrow><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula> and executes the algorithm to complete final decryption. Given <inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:math></inline-formula>, a decryption key <inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:mrow><mml:mi>d</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:math></inline-formula>, and a pre-decryption ciphertext <inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:msub><mml:mrow><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula>, this algorithm outputs a message <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:mi>m</mml:mi></mml:math></inline-formula>, or <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula> if decryption fails.</p>
<p><bold>Definition 13.</bold> An FCS-ABMSE scheme is correct if for a message <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mi>m</mml:mi></mml:math></inline-formula>, keyword number <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mi>n</mml:mi></mml:math></inline-formula>, DU&#x2019;s attribute set <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:msub><mml:mrow><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>, search threshold <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, and two keyword sets <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2286;</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula> such that <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x2229;</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold">ASKGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mi>t</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold">DUKeyGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold">offEncrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mrow><mml:mtext mathvariant="bold">onEncrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold">TrapGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mspace width="thinmathspace" /><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold">Search</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:mrow><mml:mi>d</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold">ResultVrfy</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, then <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mtext mathvariant="bold">Decrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>d</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>m</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Security Definitions of FCS-ABMSE</title>
<p>An FCS-ABMSE scheme must satisfy the two following security notions: indistinguishability of ciphertext under the chosen keyword attack (<bold>IND-CKA</bold>) and indistinguishability of ciphertext under the chosen plaintext attack (<bold>IND-CPA</bold>).</p>
<p><bold>IND-CKA</bold>. The security is defined by a game between an adversary <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> and a challenger <inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula>:</p>
<p><italic>Initialization</italic>. <inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> submits an access control policy <inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> to <inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula>.</p>
<p><italic>Setup</italic>. <inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> runs <bold>Setup</bold>(<inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:mi>&#x03B7;</mml:mi><mml:mo>,</mml:mo><mml:mi>U</mml:mi></mml:math></inline-formula>) to generate <inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:math></inline-formula>, and sends <inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula> to <inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p><italic>Phase 1</italic>. <inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> adaptively queries the oracles with the restriction that <inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> does not satisfy <inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>. <inline-formula id="ieqn-215"><mml:math id="mml-ieqn-215"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> answers as follows:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-216"><mml:math id="mml-ieqn-216"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Given an attribute set <inline-formula id="ieqn-217"><mml:math id="mml-ieqn-217"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-218"><mml:math id="mml-ieqn-218"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> runs <bold>ASKGen </bold><inline-formula id="ieqn-219"><mml:math id="mml-ieqn-219"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate <inline-formula id="ieqn-220"><mml:math id="mml-ieqn-220"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Then, it returns <inline-formula id="ieqn-221"><mml:math id="mml-ieqn-221"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Given an attribute set <inline-formula id="ieqn-224"><mml:math id="mml-ieqn-224"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-225"><mml:math id="mml-ieqn-225"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> runs <bold>ASKGen </bold><inline-formula id="ieqn-226"><mml:math id="mml-ieqn-226"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate <inline-formula id="ieqn-227"><mml:math id="mml-ieqn-227"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and <bold>DUKeyGen</bold><inline-formula id="ieqn-228"><mml:math id="mml-ieqn-228"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate <inline-formula id="ieqn-229"><mml:math id="mml-ieqn-229"><mml:msub><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Then, it returns <inline-formula id="ieqn-230"><mml:math id="mml-ieqn-230"><mml:msub><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-231"><mml:math id="mml-ieqn-231"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-232"><mml:math id="mml-ieqn-232"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Given an attribute set <inline-formula id="ieqn-233"><mml:math id="mml-ieqn-233"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-234"><mml:math id="mml-ieqn-234"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> runs <bold>ASKGen </bold><inline-formula id="ieqn-235"><mml:math id="mml-ieqn-235"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate <inline-formula id="ieqn-236"><mml:math id="mml-ieqn-236"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and <bold>DUKeyGen</bold><inline-formula id="ieqn-237"><mml:math id="mml-ieqn-237"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate <inline-formula id="ieqn-238"><mml:math id="mml-ieqn-238"><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Then, it returns <inline-formula id="ieqn-239"><mml:math id="mml-ieqn-239"><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-240"><mml:math id="mml-ieqn-240"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-241"><mml:math id="mml-ieqn-241"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Given a search threshold <inline-formula id="ieqn-242"><mml:math id="mml-ieqn-242"><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, a keyword set <inline-formula id="ieqn-243"><mml:math id="mml-ieqn-243"><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, an attribute set <inline-formula id="ieqn-244"><mml:math id="mml-ieqn-244"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and a time point <inline-formula id="ieqn-245"><mml:math id="mml-ieqn-245"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-246"><mml:math id="mml-ieqn-246"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> first obtains <inline-formula id="ieqn-247"><mml:math id="mml-ieqn-247"><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> via <inline-formula id="ieqn-248"><mml:math id="mml-ieqn-248"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>, then runs <bold>TrapGen</bold><inline-formula id="ieqn-249"><mml:math id="mml-ieqn-249"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate a trapdoor <inline-formula id="ieqn-250"><mml:math id="mml-ieqn-250"><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:math></inline-formula>. Finally, it returns <inline-formula id="ieqn-251"><mml:math id="mml-ieqn-251"><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:math></inline-formula> to <inline-formula id="ieqn-252"><mml:math id="mml-ieqn-252"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><italic>Challenge</italic>. <inline-formula id="ieqn-253"><mml:math id="mml-ieqn-253"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs two keyword sets <inline-formula id="ieqn-254"><mml:math id="mml-ieqn-254"><mml:mi>w</mml:mi><mml:msub><mml:mi>s</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-255"><mml:math id="mml-ieqn-255"><mml:mi>w</mml:mi><mml:msub><mml:mi>s</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula> of equal length, a message <inline-formula id="ieqn-256"><mml:math id="mml-ieqn-256"><mml:msup><mml:mi>m</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, and a timestamp <inline-formula id="ieqn-257"><mml:math id="mml-ieqn-257"><mml:msup><mml:mi>t</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>. <inline-formula id="ieqn-258"><mml:math id="mml-ieqn-258"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> runs <bold>offEncrypt </bold>(<inline-formula id="ieqn-259"><mml:math id="mml-ieqn-259"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>) to generate <inline-formula id="ieqn-260"><mml:math id="mml-ieqn-260"><mml:msubsup><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula>. Then, <inline-formula id="ieqn-261"><mml:math id="mml-ieqn-261"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-262"><mml:math id="mml-ieqn-262"><mml:mi>v</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 runs <bold>onEncrypt </bold>(<inline-formula id="ieqn-263"><mml:math id="mml-ieqn-263"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mi>m</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msub><mml:mi>s</mml:mi><mml:mi>v</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>) to generate a challenge ciphertext <inline-formula id="ieqn-264"><mml:math id="mml-ieqn-264"><mml:mi>c</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula>. Finally, <inline-formula id="ieqn-265"><mml:math id="mml-ieqn-265"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sends <inline-formula id="ieqn-266"><mml:math id="mml-ieqn-266"><mml:msubsup><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula> to <inline-formula id="ieqn-267"><mml:math id="mml-ieqn-267"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p><italic>Phase 2</italic>. This phase is identical to Phase 1.</p>
<p><italic>Guess</italic>. <inline-formula id="ieqn-268"><mml:math id="mml-ieqn-268"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs a guess <inline-formula id="ieqn-269"><mml:math id="mml-ieqn-269"><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. If <inline-formula id="ieqn-270"><mml:math id="mml-ieqn-270"><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, it wins the game with advantage <inline-formula id="ieqn-271"><mml:math id="mml-ieqn-271"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mi>N</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>K</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Definition 14.</bold> An FCS-ABMSE scheme is <bold>IND-CKA</bold> secure if <inline-formula id="ieqn-272"><mml:math id="mml-ieqn-272"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>IND-CKA</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> is negligible for all polynomial-time adversaries <inline-formula id="ieqn-273"><mml:math id="mml-ieqn-273"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p><bold>IND-CPA.</bold> The security is defined by a game between an adversary <inline-formula id="ieqn-274"><mml:math id="mml-ieqn-274"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> and a challenger <inline-formula id="ieqn-275"><mml:math id="mml-ieqn-275"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula>:</p>
<p><italic>Initialization</italic>. Identical to the initialization process in the IND-CKA security game.</p>
<p><italic>Setup</italic>. Identical to the setup process in the IND-CKA security game.</p>
<p><italic>Phase 1</italic>. Identical to Phase 1 in IND-CKA security game, except that <inline-formula id="ieqn-276"><mml:math id="mml-ieqn-276"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> can not make queries to the oracle <inline-formula id="ieqn-277"><mml:math id="mml-ieqn-277"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><italic>Challenge</italic>. <inline-formula id="ieqn-278"><mml:math id="mml-ieqn-278"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs two messages <inline-formula id="ieqn-279"><mml:math id="mml-ieqn-279"><mml:msub><mml:mi>m</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-280"><mml:math id="mml-ieqn-280"><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula> of equal length, a keyword set <inline-formula id="ieqn-281"><mml:math id="mml-ieqn-281"><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> and a time point <inline-formula id="ieqn-282"><mml:math id="mml-ieqn-282"><mml:msup><mml:mi>t</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>. <inline-formula id="ieqn-283"><mml:math id="mml-ieqn-283"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> first runs <bold>offEncrypt </bold>(<inline-formula id="ieqn-284"><mml:math id="mml-ieqn-284"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>) to generate <inline-formula id="ieqn-285"><mml:math id="mml-ieqn-285"><mml:msubsup><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula>. <inline-formula id="ieqn-286"><mml:math id="mml-ieqn-286"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-287"><mml:math id="mml-ieqn-287"><mml:mi>v</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 runs <bold>onEncrypt </bold>(<inline-formula id="ieqn-288"><mml:math id="mml-ieqn-288"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-289"><mml:math id="mml-ieqn-289"><mml:msub><mml:mi>m</mml:mi><mml:mi>v</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-290"><mml:math id="mml-ieqn-290"><mml:mi>c</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula>, <inline-formula id="ieqn-291"><mml:math id="mml-ieqn-291"><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-292"><mml:math id="mml-ieqn-292"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-293"><mml:math id="mml-ieqn-293"><mml:msup><mml:mi>t</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>) to generate a challenge ciphertext <inline-formula id="ieqn-294"><mml:math id="mml-ieqn-294"><mml:msubsup><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula>. <inline-formula id="ieqn-295"><mml:math id="mml-ieqn-295"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sends <inline-formula id="ieqn-296"><mml:math id="mml-ieqn-296"><mml:msubsup><mml:mrow><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math></inline-formula> to <inline-formula id="ieqn-297"><mml:math id="mml-ieqn-297"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p><italic>Phase 2</italic>. Same as the IND-CKA security game, except that <inline-formula id="ieqn-298"><mml:math id="mml-ieqn-298"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> cannot make queries to the oracle <inline-formula id="ieqn-299"><mml:math id="mml-ieqn-299"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
<p><italic>Guess</italic>. <inline-formula id="ieqn-300"><mml:math id="mml-ieqn-300"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs a guess <inline-formula id="ieqn-301"><mml:math id="mml-ieqn-301"><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. If <inline-formula id="ieqn-302"><mml:math id="mml-ieqn-302"><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, it wins the game with advantage <inline-formula id="ieqn-303"><mml:math id="mml-ieqn-303"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mi>N</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Definition 15.</bold> An FCS-ABMSE scheme is <bold>IND-CPA</bold> secure if <inline-formula id="ieqn-304"><mml:math id="mml-ieqn-304"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mtext>IND-CPA</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> is negligible for all polynomial-time adversaries <inline-formula id="ieqn-305"><mml:math id="mml-ieqn-305"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>The Proposed FCS-ABMSE Scheme</title>
<p>This section presents the concrete construction of the FCS-ABMSE scheme, along with its correctness analysis and security proof.</p>
<p>The proposed FCS-ABMSE scheme is described as follows. (1) <bold>Setup </bold>(<inline-formula id="ieqn-306"><mml:math id="mml-ieqn-306"><mml:mi>&#x03B7;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>): Given <inline-formula id="ieqn-307"><mml:math id="mml-ieqn-307"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-308"><mml:math id="mml-ieqn-308"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-309"><mml:math id="mml-ieqn-309"><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Generate two prime <inline-formula id="ieqn-310"><mml:math id="mml-ieqn-310"><mml:mi>p</mml:mi></mml:math></inline-formula>-order groups <inline-formula id="ieqn-311"><mml:math id="mml-ieqn-311"><mml:mo stretchy="false">(</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-312"><mml:math id="mml-ieqn-312"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:mi>G</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>G</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Randomly choose <inline-formula id="ieqn-313"><mml:math id="mml-ieqn-313"><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mi>G</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-314"><mml:math id="mml-ieqn-314"><mml:mi>&#x03B1;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B3;</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>, compute <inline-formula id="ieqn-315"><mml:math id="mml-ieqn-315"><mml:mi>X</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-316"><mml:math id="mml-ieqn-316"><mml:mi>Y</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B3;</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-317"><mml:math id="mml-ieqn-317"><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B1;</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-318"><mml:math id="mml-ieqn-318"><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and choose a hash function <inline-formula id="ieqn-319"><mml:math id="mml-ieqn-319"><mml:mi>H</mml:mi><mml:mo>:</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">&#x2192;</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>;</p></list-item>
<list-item>
<p>For each attribute in <inline-formula id="ieqn-320"><mml:math id="mml-ieqn-320"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula>, select a random element <inline-formula id="ieqn-321"><mml:math id="mml-ieqn-321"><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mi>G</mml:mi></mml:math></inline-formula> where <inline-formula id="ieqn-322"><mml:math id="mml-ieqn-322"><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:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Choose an IND-DEM-CCA secure data encapsulation scheme <inline-formula id="ieqn-323"><mml:math id="mml-ieqn-323"><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> with symmetric key space <inline-formula id="ieqn-324"><mml:math id="mml-ieqn-324"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula>, a computationally hiding commitment scheme <inline-formula id="ieqn-325"><mml:math id="mml-ieqn-325"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, an EU-CMA secure message authentication code scheme <inline-formula id="ieqn-326"><mml:math id="mml-ieqn-326"><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>V</mml:mi><mml:mi>r</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and a secure key derivation function <inline-formula id="ieqn-327"><mml:math id="mml-ieqn-327"><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo>:</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy="false">&#x2192;</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-328"><mml:math id="mml-ieqn-328"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>h</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>h</mml:mi><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>H</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-329"><mml:math id="mml-ieqn-329"><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(2) <inline-formula id="ieqn-330"><mml:math id="mml-ieqn-330"><mml:mrow><mml:mtext mathvariant="bold">ASKGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-331"><mml:math id="mml-ieqn-331"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-332"><mml:math id="mml-ieqn-332"><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-333"><mml:math id="mml-ieqn-333"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Randomly select <inline-formula id="ieqn-334"><mml:math id="mml-ieqn-334"><mml:mi>z</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>, compute <inline-formula id="ieqn-335"><mml:math id="mml-ieqn-335"><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B1;</mml:mi></mml:msup><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-336"><mml:math id="mml-ieqn-336"><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-337"><mml:math id="mml-ieqn-337"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, compute <inline-formula id="ieqn-338"><mml:math id="mml-ieqn-338"><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>&#x03B2;</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mo>&#x2211;</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-339"><mml:math id="mml-ieqn-339"><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>x</mml:mi><mml:mi>z</mml:mi></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-340"><mml:math id="mml-ieqn-340"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(3) <inline-formula id="ieqn-341"><mml:math id="mml-ieqn-341"><mml:mrow><mml:mtext mathvariant="bold">DUKeyGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-342"><mml:math id="mml-ieqn-342"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Randomly select <inline-formula id="ieqn-343"><mml:math id="mml-ieqn-343"><mml:mi>&#x03BB;</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>, compute <inline-formula id="ieqn-344"><mml:math id="mml-ieqn-344"><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mi>&#x03B2;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-345"><mml:math id="mml-ieqn-345"><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-346"><mml:math id="mml-ieqn-346"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, compute <inline-formula id="ieqn-347"><mml:math id="mml-ieqn-347"><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mi>x</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>x</mml:mi><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-348"><mml:math id="mml-ieqn-348"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-349"><mml:math id="mml-ieqn-349"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(4) <inline-formula id="ieqn-350"><mml:math id="mml-ieqn-350"><mml:mrow><mml:mtext mathvariant="bold">OffEncryption</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-351"><mml:math id="mml-ieqn-351"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>For each <inline-formula id="ieqn-352"><mml:math id="mml-ieqn-352"><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>n</mml:mi><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> where <inline-formula id="ieqn-353"><mml:math id="mml-ieqn-353"><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula>, randomly select <inline-formula id="ieqn-354"><mml:math id="mml-ieqn-354"><mml:msub><mml:mi>u</mml:mi><mml:mi>j</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 compute <inline-formula id="ieqn-355"><mml:math id="mml-ieqn-355"><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-356"><mml:math id="mml-ieqn-356"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><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>n</mml:mi><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(5) <inline-formula id="ieqn-357"><mml:math id="mml-ieqn-357"><mml:mrow><mml:mtext mathvariant="bold">OnEncryption</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-358"><mml:math id="mml-ieqn-358"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-359"><mml:math id="mml-ieqn-359"><mml:mi>m</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-360"><mml:math id="mml-ieqn-360"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><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>n</mml:mi><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-361"><mml:math id="mml-ieqn-361"><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>w</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>w</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-362"><mml:math id="mml-ieqn-362"><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-363"><mml:math id="mml-ieqn-363"><mml:mi>t</mml:mi></mml:math></inline-formula> where <inline-formula id="ieqn-364"><mml:math id="mml-ieqn-364"><mml:mi>M</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:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is a <inline-formula id="ieqn-365"><mml:math id="mml-ieqn-365"><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:math></inline-formula> matrix and <inline-formula id="ieqn-366"><mml:math id="mml-ieqn-366"><mml:mi>&#x03C1;</mml:mi></mml:math></inline-formula> is a function mapping each row of <italic>M</italic> to an attribute in <inline-formula id="ieqn-367"><mml:math id="mml-ieqn-367"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Randomly select <inline-formula id="ieqn-368"><mml:math id="mml-ieqn-368"><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula> and run <inline-formula id="ieqn-369"><mml:math id="mml-ieqn-369"><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to extract a symmetric key <inline-formula id="ieqn-370"><mml:math id="mml-ieqn-370"><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula>, compute <inline-formula id="ieqn-371"><mml:math id="mml-ieqn-371"><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-372"><mml:math id="mml-ieqn-372"><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Run <inline-formula id="ieqn-373"><mml:math id="mml-ieqn-373"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate <inline-formula id="ieqn-374"><mml:math id="mml-ieqn-374"><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and compute <inline-formula id="ieqn-375"><mml:math id="mml-ieqn-375"><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Randomly select <inline-formula id="ieqn-376"><mml:math id="mml-ieqn-376"><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:msub><mml:mi>v</mml:mi><mml:mn>3</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:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></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>, and set <inline-formula id="ieqn-377"><mml:math id="mml-ieqn-377"><mml:mrow><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></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:msub><mml:mi>v</mml:mi><mml:mn>3</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:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22A5;</mml:mo></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Compute <inline-formula id="ieqn-378"><mml:math id="mml-ieqn-378"><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-379"><mml:math id="mml-ieqn-379"><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>Y</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Randomly select <inline-formula id="ieqn-380"><mml:math id="mml-ieqn-380"><mml:mi>d</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 compute <inline-formula id="ieqn-381"><mml:math id="mml-ieqn-381"><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-382"><mml:math id="mml-ieqn-382"><mml:msub><mml:mi>C</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>d</mml:mi></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-383"><mml:math id="mml-ieqn-383"><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:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, compute <inline-formula id="ieqn-384"><mml:math id="mml-ieqn-384"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-385"><mml:math id="mml-ieqn-385"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>h</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:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, where <inline-formula id="ieqn-386"><mml:math id="mml-ieqn-386"><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the <inline-formula id="ieqn-387"><mml:math id="mml-ieqn-387"><mml:mi>i</mml:mi></mml:math></inline-formula>-th row of <italic>M</italic>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-388"><mml:math id="mml-ieqn-388"><mml:msub><mml:mi>C</mml:mi><mml:mi>V</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-389"><mml:math id="mml-ieqn-389"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></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:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>Run the 0-encoding algorithm to transform <inline-formula id="ieqn-390"><mml:math id="mml-ieqn-390"><mml:mi>t</mml:mi></mml:math></inline-formula> into a set <italic>T</italic>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-391"><mml:math id="mml-ieqn-391"><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:math></inline-formula>, compute <inline-formula id="ieqn-392"><mml:math id="mml-ieqn-392"><mml:msub><mml:mi>I</mml:mi><mml:mi>&#x03C4;</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>s</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-393"><mml:math id="mml-ieqn-393"><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:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, compute <inline-formula id="ieqn-394"><mml:math id="mml-ieqn-394"><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>s</mml:mi></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-395"><mml:math id="mml-ieqn-395"><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>&#x03C4;</mml:mi></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><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:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-396"><mml:math id="mml-ieqn-396"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>V</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>I</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(6) <inline-formula id="ieqn-397"><mml:math id="mml-ieqn-397"><mml:mrow><mml:mtext mathvariant="bold">TrapGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-398"><mml:math id="mml-ieqn-398"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-399"><mml:math id="mml-ieqn-399"><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-400"><mml:math id="mml-ieqn-400"><mml:mi>w</mml:mi><mml:msup><mml:mi>s</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:msubsup><mml:mi>w</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></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>, <inline-formula id="ieqn-401"><mml:math id="mml-ieqn-401"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-402"><mml:math id="mml-ieqn-402"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Run 1-encoding algorithm to transform <inline-formula id="ieqn-403"><mml:math id="mml-ieqn-403"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> into a set <italic>T</italic><sup><italic>&#x2032;</italic></sup>;</p></list-item>
<list-item>
<p>Randomly select <inline-formula id="ieqn-404"><mml:math id="mml-ieqn-404"><mml:mi>&#x03BA;</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 compute <inline-formula id="ieqn-405"><mml:math id="mml-ieqn-405"><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>&#x03BA;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for each <inline-formula id="ieqn-406"><mml:math id="mml-ieqn-406"><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Compute <inline-formula id="ieqn-407"><mml:math id="mml-ieqn-407"><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-408"><mml:math id="mml-ieqn-408"><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-409"><mml:math id="mml-ieqn-409"><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mi>&#x03BB;</mml:mi></mml:msubsup></mml:math></inline-formula>, and <inline-formula id="ieqn-410"><mml:math id="mml-ieqn-410"><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mi>&#x03BA;</mml:mi></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-411"><mml:math id="mml-ieqn-411"><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:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, compute <inline-formula id="ieqn-412"><mml:math id="mml-ieqn-412"><mml:msub><mml:mrow><mml:mover><mml:mi>W</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-413"><mml:math id="mml-ieqn-413"><mml:mi>t</mml:mi><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><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:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>W</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><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:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(7) <inline-formula id="ieqn-414"><mml:math id="mml-ieqn-414"><mml:mrow><mml:mtext mathvariant="bold">Search&amp;Trans</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-415"><mml:math id="mml-ieqn-415"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-416"><mml:math id="mml-ieqn-416"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-417"><mml:math id="mml-ieqn-417"><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-418"><mml:math id="mml-ieqn-418"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>If <inline-formula id="ieqn-419"><mml:math id="mml-ieqn-419"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> associated with <inline-formula id="ieqn-420"><mml:math id="mml-ieqn-420"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> satisfies the access structure in <inline-formula id="ieqn-421"><mml:math id="mml-ieqn-421"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-422"><mml:math id="mml-ieqn-422"><mml:mi>T</mml:mi><mml:mo>&#x2229;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2260;</mml:mo><mml:mi mathvariant="normal">&#x2205;</mml:mi></mml:math></inline-formula>, randomly select <inline-formula id="ieqn-423"><mml:math id="mml-ieqn-423"><mml:mi>y</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x2229;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and compute: <inline-formula id="ieqn-424"><mml:math id="mml-ieqn-424"><mml:mi>I</mml:mi><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:math></inline-formula> where <inline-formula id="ieqn-425"><mml:math id="mml-ieqn-425"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Check whether <inline-formula id="ieqn-426"><mml:math id="mml-ieqn-426"><mml:mrow><mml:mo>|</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>I</mml:mi><mml:mi>V</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x2229;</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>W</mml:mi><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>If not, output <inline-formula id="ieqn-427"><mml:math id="mml-ieqn-427"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula>; else, for all <inline-formula id="ieqn-428"><mml:math id="mml-ieqn-428"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula> where <inline-formula id="ieqn-429"><mml:math id="mml-ieqn-429"><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>i</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x03C1;</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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, find <inline-formula id="ieqn-430"><mml:math id="mml-ieqn-430"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><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> that satisfy <inline-formula id="ieqn-431"><mml:math id="mml-ieqn-431"><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>M</mml:mi><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: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>, compute <inline-formula id="ieqn-432"><mml:math id="mml-ieqn-432"><mml:mi>T</mml:mi><mml:mi>F</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:msup><mml:mrow><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>C</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo></mml:msup><mml:mi>e</mml:mi><mml:mrow><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>K</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:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-433"><mml:math id="mml-ieqn-433"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mi>F</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-434"><mml:math id="mml-ieqn-434"><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(8) <inline-formula id="ieqn-435"><mml:math id="mml-ieqn-435"><mml:mrow><mml:mtext mathvariant="bold">ResultVrfy</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-436"><mml:math id="mml-ieqn-436"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-437"><mml:math id="mml-ieqn-437"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Before downloading the decryption ciphertext <inline-formula id="ieqn-438"><mml:math id="mml-ieqn-438"><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, compute <inline-formula id="ieqn-439"><mml:math id="mml-ieqn-439"><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>T</mml:mi><mml:mi>F</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>&#x03BB;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mo>=</mml:mo><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>m</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>.</mml:mo><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and run <inline-formula id="ieqn-440"><mml:math id="mml-ieqn-440"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>.</mml:mo><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>m</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to verify whether <inline-formula id="ieqn-441"><mml:math id="mml-ieqn-441"><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>m</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula id="ieqn-442"><mml:math id="mml-ieqn-442"><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:math></inline-formula> matches.</p></list-item>
<list-item>
<p>If <inline-formula id="ieqn-443"><mml:math id="mml-ieqn-443"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula> outputs 1, it indicates successful validation. Then download decryption ciphertext <inline-formula id="ieqn-444"><mml:math id="mml-ieqn-444"><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula> and output the decryption key <inline-formula id="ieqn-445"><mml:math id="mml-ieqn-445"><mml:mi>d</mml:mi><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:math></inline-formula>. If <inline-formula id="ieqn-446"><mml:math id="mml-ieqn-446"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:math></inline-formula> outputs 0, output <inline-formula id="ieqn-447"><mml:math id="mml-ieqn-447"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(9) <inline-formula id="ieqn-448"><mml:math id="mml-ieqn-448"><mml:mrow><mml:mtext mathvariant="bold">Decrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-449"><mml:math id="mml-ieqn-449"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-450"><mml:math id="mml-ieqn-450"><mml:mi>d</mml:mi><mml:mi>k</mml:mi></mml:math></inline-formula>, and <inline-formula id="ieqn-451"><mml:math id="mml-ieqn-451"><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Compute <inline-formula id="ieqn-452"><mml:math id="mml-ieqn-452"><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>.</mml:mo><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-453"><mml:math id="mml-ieqn-453"><mml:msup><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>V</mml:mi><mml:mi>r</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>d</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>If <inline-formula id="ieqn-454"><mml:math id="mml-ieqn-454"><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:math></inline-formula> is equal to <inline-formula id="ieqn-455"><mml:math id="mml-ieqn-455"><mml:msup><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, output <inline-formula id="ieqn-456"><mml:math id="mml-ieqn-456"><mml:mi>m</mml:mi></mml:math></inline-formula>; otherwise, output <inline-formula id="ieqn-457"><mml:math id="mml-ieqn-457"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<sec id="s4_1">
<label>4.1</label>
<title>Correctness Analysis</title>
<p>According to the scheme description, we can deduce that
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" 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:mi>I</mml:mi><mml:mi>V</mml:mi></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03B2;</mml:mi></mml:msubsup><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>&#x03BA;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03BA;</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mi>&#x03BA;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mi>&#x03BB;</mml:mi></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03B2;</mml:mi></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mi>&#x03BA;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mo>+</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03BA;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mo>+</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></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:msup><mml:mi>g</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Clearly, if <inline-formula id="ieqn-458"><mml:math id="mml-ieqn-458"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x2229;</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, then we have
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-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:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>I</mml:mi><mml:mi>V</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x2229;</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>W</mml:mi><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:msubsup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x2229;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:msubsup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x2229;</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>w</mml:mi><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:msubsup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>&#x003E;</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Therefore, keyword search works correctly. In addition, we can deduce that
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-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:mfrac><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>T</mml:mi><mml:mi>F</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>&#x03BB;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>C</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>K</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:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></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>&#x03BB;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><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>N</mml:mi></mml:mrow></mml:munder><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>h</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:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>h</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:mrow><mml:mi>z</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>d</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B1;</mml:mi></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>h</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:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>h</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:mrow><mml:mi>z</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>d</mml:mi></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B1;</mml:mi></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>k</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:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi></mml:mrow></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:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Security Proofs</title>
<p>We demonstrate that our FCS-ABMSE scheme meets the IND-CKA and the IND-CPA security.</p>
<p><bold>Theorem 1.</bold> If a polynomial-time adversary <inline-formula id="ieqn-459"><mml:math id="mml-ieqn-459"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> breaks the IND-CKA security of our scheme with advantage <inline-formula id="ieqn-460"><mml:math id="mml-ieqn-460"><mml:mo>&#x03F5;</mml:mo></mml:math></inline-formula>, there exists an algorithm <inline-formula id="ieqn-461"><mml:math id="mml-ieqn-461"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> solving the DBDH problem with advantage <inline-formula id="ieqn-462"><mml:math id="mml-ieqn-462"><mml:mo>&#x03F5;</mml:mo></mml:math></inline-formula>.</p>
<p><bold>Proof.</bold> Given a random instance of the DBDH problem <inline-formula id="ieqn-463"><mml:math id="mml-ieqn-463"><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><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>a</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-464"><mml:math id="mml-ieqn-464"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> interacts with <inline-formula id="ieqn-465"><mml:math id="mml-ieqn-465"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> to determine whether <inline-formula id="ieqn-466"><mml:math id="mml-ieqn-466"><mml:mi>Z</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>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> as follows:</p>
<p><bold>Initialization.</bold> <inline-formula id="ieqn-467"><mml:math id="mml-ieqn-467"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> submits a policy <inline-formula id="ieqn-468"><mml:math id="mml-ieqn-468"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-469"><mml:math id="mml-ieqn-469"><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> is a <inline-formula id="ieqn-470"><mml:math id="mml-ieqn-470"><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>w</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> columns matrix.</p>
<p><bold>Setup.</bold> <inline-formula id="ieqn-471"><mml:math id="mml-ieqn-471"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> first sets <inline-formula id="ieqn-472"><mml:math id="mml-ieqn-472"><mml:mi>X</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-473"><mml:math id="mml-ieqn-473"><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:math></inline-formula>, and <inline-formula id="ieqn-474"><mml:math id="mml-ieqn-474"><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. Then, it sets other parameters <inline-formula id="ieqn-475"><mml:math id="mml-ieqn-475"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>h</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>h</mml:mi><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>U</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:math></inline-formula></p>
<p><inline-formula id="ieqn-476"><mml:math id="mml-ieqn-476"><mml:mi>H</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>,</mml:mo></mml:math></inline-formula><inline-formula id="ieqn-477"><mml:math id="mml-ieqn-477"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> as in the <bold>Setup</bold> algorithm. Finally, it returns <inline-formula id="ieqn-478"><mml:math id="mml-ieqn-478"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo></mml:math></inline-formula></p>
<p><italic>X</italic>, <italic>Y</italic>,<inline-formula id="ieqn-479"><mml:math id="mml-ieqn-479"><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>h</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>h</mml:mi><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>U</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>H</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to <inline-formula id="ieqn-480"><mml:math id="mml-ieqn-480"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p><bold>Phase 1.</bold> <inline-formula id="ieqn-481"><mml:math id="mml-ieqn-481"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> maintains a key list <inline-formula id="ieqn-482"><mml:math id="mml-ieqn-482"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and a trapdoor list <inline-formula id="ieqn-483"><mml:math id="mml-ieqn-483"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>d</mml:mi><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, both of which are initially empty. <inline-formula id="ieqn-484"><mml:math id="mml-ieqn-484"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> answers <inline-formula id="ieqn-485"><mml:math id="mml-ieqn-485"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>&#x2019;s queries as follows:
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-486"><mml:math id="mml-ieqn-486"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Given an attribute set <inline-formula id="ieqn-487"><mml:math id="mml-ieqn-487"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-488"><mml:math id="mml-ieqn-488"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns <inline-formula id="ieqn-489"><mml:math id="mml-ieqn-489"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula id="ieqn-490"><mml:math id="mml-ieqn-490"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> already exists in a record <inline-formula id="ieqn-491"><mml:math id="mml-ieqn-491"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-492"><mml:math id="mml-ieqn-492"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> on the list <inline-formula id="ieqn-493"><mml:math id="mml-ieqn-493"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Otherwise, <inline-formula id="ieqn-494"><mml:math id="mml-ieqn-494"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-495"><mml:math id="mml-ieqn-495"><mml:mi>z</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>, calculates <inline-formula id="ieqn-496"><mml:math id="mml-ieqn-496"><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>b</mml:mi></mml:msubsup><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mo>&#x2211;</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B1;</mml:mi></mml:msup><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-497"><mml:math id="mml-ieqn-497"><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-498"><mml:math id="mml-ieqn-498"><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>x</mml:mi><mml:mi>z</mml:mi></mml:msubsup></mml:math></inline-formula>, for all <inline-formula id="ieqn-499"><mml:math id="mml-ieqn-499"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Finally, <inline-formula id="ieqn-500"><mml:math id="mml-ieqn-500"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns the attribute key: <inline-formula id="ieqn-501"><mml:math id="mml-ieqn-501"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to <inline-formula id="ieqn-502"><mml:math id="mml-ieqn-502"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> and adds <inline-formula id="ieqn-503"><mml:math id="mml-ieqn-503"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> to the list <inline-formula id="ieqn-504"><mml:math id="mml-ieqn-504"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-505"><mml:math id="mml-ieqn-505"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Given an attribute set <inline-formula id="ieqn-506"><mml:math id="mml-ieqn-506"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-507"><mml:math id="mml-ieqn-507"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns <inline-formula id="ieqn-508"><mml:math id="mml-ieqn-508"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula id="ieqn-509"><mml:math id="mml-ieqn-509"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> already exists in a record <inline-formula id="ieqn-510"><mml:math id="mml-ieqn-510"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-511"><mml:math id="mml-ieqn-511"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> on the list <inline-formula id="ieqn-512"><mml:math id="mml-ieqn-512"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Otherwise, <inline-formula id="ieqn-513"><mml:math id="mml-ieqn-513"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> checks the list to see if <inline-formula id="ieqn-514"><mml:math id="mml-ieqn-514"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> corresponding to <inline-formula id="ieqn-515"><mml:math id="mml-ieqn-515"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> exists. If so, <inline-formula id="ieqn-516"><mml:math id="mml-ieqn-516"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> selects <inline-formula id="ieqn-517"><mml:math id="mml-ieqn-517"><mml:mi>&#x03BB;</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 calculates: <inline-formula id="ieqn-518"><mml:math id="mml-ieqn-518"><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03BB;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mn>2</mml:mn><mml:mi>&#x03BB;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mi>x</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:mi mathvariant="normal">&#x2200;</mml:mi><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:math></inline-formula> It generates the conversion key: <inline-formula id="ieqn-519"><mml:math id="mml-ieqn-519"><mml:mi>t</mml:mi><mml:mi>f</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:math></inline-formula> and the private key: <inline-formula id="ieqn-520"><mml:math id="mml-ieqn-520"><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:math></inline-formula> If <inline-formula id="ieqn-521"><mml:math id="mml-ieqn-521"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:math></inline-formula> does not exist, <inline-formula id="ieqn-522"><mml:math id="mml-ieqn-522"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> first performs <inline-formula id="ieqn-523"><mml:math id="mml-ieqn-523"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> to obtain <inline-formula id="ieqn-524"><mml:math id="mml-ieqn-524"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and then generates the corresponding <inline-formula id="ieqn-525"><mml:math id="mml-ieqn-525"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-526"><mml:math id="mml-ieqn-526"><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:math></inline-formula> according to the above steps. Finally, <inline-formula id="ieqn-527"><mml:math id="mml-ieqn-527"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns the conversion key <inline-formula id="ieqn-528"><mml:math id="mml-ieqn-528"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-529"><mml:math id="mml-ieqn-529"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> and adds the tuple <inline-formula id="ieqn-530"><mml:math id="mml-ieqn-530"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> to the list <inline-formula id="ieqn-531"><mml:math id="mml-ieqn-531"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-532"><mml:math id="mml-ieqn-532"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>: Given an attribute set <inline-formula id="ieqn-533"><mml:math id="mml-ieqn-533"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-534"><mml:math id="mml-ieqn-534"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns <inline-formula id="ieqn-535"><mml:math id="mml-ieqn-535"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula id="ieqn-536"><mml:math id="mml-ieqn-536"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> already exists in a record <inline-formula id="ieqn-537"><mml:math id="mml-ieqn-537"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-538"><mml:math id="mml-ieqn-538"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> on the list <inline-formula id="ieqn-539"><mml:math id="mml-ieqn-539"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Otherwise, <inline-formula id="ieqn-540"><mml:math id="mml-ieqn-540"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> performs <inline-formula id="ieqn-541"><mml:math id="mml-ieqn-541"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to generate the conversion key: <inline-formula id="ieqn-542"><mml:math id="mml-ieqn-542"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:math></inline-formula> and the private key:<inline-formula id="ieqn-543"><mml:math id="mml-ieqn-543"><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:math></inline-formula> Finally, <inline-formula id="ieqn-544"><mml:math id="mml-ieqn-544"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns <inline-formula id="ieqn-545"><mml:math id="mml-ieqn-545"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> to <inline-formula id="ieqn-546"><mml:math id="mml-ieqn-546"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>, and adds the tuple <inline-formula id="ieqn-547"><mml:math id="mml-ieqn-547"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> to the list <inline-formula id="ieqn-548"><mml:math id="mml-ieqn-548"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-549"><mml:math id="mml-ieqn-549"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>p</mml:mi><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>: Given a threshold value <inline-formula id="ieqn-550"><mml:math id="mml-ieqn-550"><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, a keyword set <inline-formula id="ieqn-551"><mml:math id="mml-ieqn-551"><mml:msup><mml:mrow><mml:mi>w</mml:mi><mml:mi>s</mml:mi></mml:mrow><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:msubsup><mml:mi>w</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></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>, an attribute set <inline-formula id="ieqn-552"><mml:math id="mml-ieqn-552"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, and time <inline-formula id="ieqn-553"><mml:math id="mml-ieqn-553"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-554"><mml:math id="mml-ieqn-554"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns <inline-formula id="ieqn-555"><mml:math id="mml-ieqn-555"><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> if <inline-formula id="ieqn-556"><mml:math id="mml-ieqn-556"><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> already exists in a record <inline-formula id="ieqn-557"><mml:math id="mml-ieqn-557"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>d</mml:mi><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> on the list <inline-formula id="ieqn-558"><mml:math id="mml-ieqn-558"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Otherwise, <inline-formula id="ieqn-559"><mml:math id="mml-ieqn-559"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> performs <inline-formula id="ieqn-560"><mml:math id="mml-ieqn-560"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-561"><mml:math id="mml-ieqn-561"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula> to obtain attribute keys <inline-formula id="ieqn-562"><mml:math id="mml-ieqn-562"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and private keys <inline-formula id="ieqn-563"><mml:math id="mml-ieqn-563"><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:math></inline-formula>. <inline-formula id="ieqn-564"><mml:math id="mml-ieqn-564"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> runs the 1-encoding algorithm to transform the time <inline-formula id="ieqn-565"><mml:math id="mml-ieqn-565"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> into a set <italic>T</italic><sup><italic>&#x2032;</italic></sup>. For each <inline-formula id="ieqn-566"><mml:math id="mml-ieqn-566"><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-567"><mml:math id="mml-ieqn-567"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly chooses <inline-formula id="ieqn-568"><mml:math id="mml-ieqn-568"><mml:mi>&#x03BA;</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 computes <inline-formula id="ieqn-569"><mml:math id="mml-ieqn-569"><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>&#x03BA;</mml:mi></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-570"><mml:math id="mml-ieqn-570"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> computes <inline-formula id="ieqn-571"><mml:math id="mml-ieqn-571"><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03BA;</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mi>&#x03BB;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mi>&#x03BA;</mml:mi><mml:mo>.</mml:mo></mml:math></inline-formula> For each <inline-formula id="ieqn-572"><mml:math id="mml-ieqn-572"><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula>, it compute:<inline-formula id="ieqn-573"><mml:math id="mml-ieqn-573"><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:math></inline-formula> Finally, it outputs the trapdoor <inline-formula id="ieqn-574"><mml:math id="mml-ieqn-574"><mml:mi>t</mml:mi><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><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:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to <inline-formula id="ieqn-575"><mml:math id="mml-ieqn-575"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> and adds <inline-formula id="ieqn-576"><mml:math id="mml-ieqn-576"><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> to the list <inline-formula id="ieqn-577"><mml:math id="mml-ieqn-577"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><bold>Challenge.</bold> <inline-formula id="ieqn-578"><mml:math id="mml-ieqn-578"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs two keyword sets with the same number of keywords <inline-formula id="ieqn-579"><mml:math id="mml-ieqn-579"><mml:msub><mml:mrow><mml:mi>w</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-580"><mml:math id="mml-ieqn-580"><mml:msub><mml:mrow><mml:mi>w</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, a message <inline-formula id="ieqn-581"><mml:math id="mml-ieqn-581"><mml:msup><mml:mi>m</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, an access control policy <inline-formula id="ieqn-582"><mml:math id="mml-ieqn-582"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and a time <inline-formula id="ieqn-583"><mml:math id="mml-ieqn-583"><mml:msup><mml:mi>t</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-584"><mml:math id="mml-ieqn-584"><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> is a <inline-formula id="ieqn-585"><mml:math id="mml-ieqn-585"><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>&#x00D7;</mml:mo><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>w</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> matrix, and <inline-formula id="ieqn-586"><mml:math id="mml-ieqn-586"><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> is a function that maps the rows of <inline-formula id="ieqn-587"><mml:math id="mml-ieqn-587"><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> to attributes. <inline-formula id="ieqn-588"><mml:math id="mml-ieqn-588"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly picks a coin <inline-formula id="ieqn-589"><mml:math id="mml-ieqn-589"><mml:mi>v</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 encrypts the keyword set <inline-formula id="ieqn-590"><mml:math id="mml-ieqn-590"><mml:msub><mml:mrow><mml:mi>w</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mi>v</mml:mi></mml:msub></mml:math></inline-formula>. The following steps are executed:
<list list-type="bullet">
<list-item>
<p>For each <inline-formula id="ieqn-591"><mml:math id="mml-ieqn-591"><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-592"><mml:math id="mml-ieqn-592"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-593"><mml:math id="mml-ieqn-593"><mml:msub><mml:mi>W</mml:mi><mml:mi>j</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>. Assume that for an unknown <inline-formula id="ieqn-594"><mml:math id="mml-ieqn-594"><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-595"><mml:math id="mml-ieqn-595"><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>a</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:math></inline-formula>, and calculates <inline-formula id="ieqn-596"><mml:math id="mml-ieqn-596"><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mi>Z</mml:mi></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-597"><mml:math id="mml-ieqn-597"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> runs the 0-encoding algorithm to transform the time <inline-formula id="ieqn-598"><mml:math id="mml-ieqn-598"><mml:msup><mml:mi>t</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> into a set <inline-formula id="ieqn-599"><mml:math id="mml-ieqn-599"><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>. For each <inline-formula id="ieqn-600"><mml:math id="mml-ieqn-600"><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, it computes <inline-formula id="ieqn-601"><mml:math id="mml-ieqn-601"><mml:msubsup><mml:mi>I</mml:mi><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03BA;</mml:mi></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<p><inline-formula id="ieqn-602"><mml:math id="mml-ieqn-602"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sets the keyword ciphertext: <inline-formula id="ieqn-603"><mml:math id="mml-ieqn-603"><mml:msup><mml:mi>I</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msubsup><mml:mi>I</mml:mi><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:msubsup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:math></inline-formula></p></list-item>
<list-item>
<p><inline-formula id="ieqn-604"><mml:math id="mml-ieqn-604"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sets the other ciphertext according to the <bold>OnEncryption</bold> algorithm.</p></list-item>
</list></p>
<p><bold>Phase 2.</bold> This phase is identical to Phase 1. <inline-formula id="ieqn-605"><mml:math id="mml-ieqn-605"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> queried by <inline-formula id="ieqn-606"><mml:math id="mml-ieqn-606"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> cannot meet <inline-formula id="ieqn-607"><mml:math id="mml-ieqn-607"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>.</p>
<p><bold>Guess.</bold> <inline-formula id="ieqn-608"><mml:math id="mml-ieqn-608"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs a guess <inline-formula id="ieqn-609"><mml:math id="mml-ieqn-609"><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> for <inline-formula id="ieqn-610"><mml:math id="mml-ieqn-610"><mml:mi>v</mml:mi></mml:math></inline-formula>. If <inline-formula id="ieqn-611"><mml:math id="mml-ieqn-611"><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-612"><mml:math id="mml-ieqn-612"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs 1, which means that <inline-formula id="ieqn-613"><mml:math id="mml-ieqn-613"><mml:mi>Z</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>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>. Otherwise, <inline-formula id="ieqn-614"><mml:math id="mml-ieqn-614"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs 0, which means that <inline-formula id="ieqn-615"><mml:math id="mml-ieqn-615"><mml:mi>Z</mml:mi><mml:mo>&#x2260;</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>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p>If <inline-formula id="ieqn-616"><mml:math id="mml-ieqn-616"><mml:mi>Z</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>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, this simulation is effective for the adversary, and <inline-formula id="ieqn-617"><mml:math id="mml-ieqn-617"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mi>N</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>K</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mo>&#x03F5;</mml:mo></mml:math></inline-formula>. If <italic>Z</italic> is a random element, <inline-formula id="ieqn-618"><mml:math id="mml-ieqn-618"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mi>N</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>K</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:math></inline-formula>. Thus, the advantage of <inline-formula id="ieqn-619"><mml:math id="mml-ieqn-619"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> in breaking the DBDH problem is <inline-formula id="ieqn-620"><mml:math id="mml-ieqn-620"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><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>a</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup><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>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><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>a</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mspace width="thinmathspace" /><mml:mo>+</mml:mo><mml:mi>&#x03F5;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>.&#x25A1;</p>
<p><bold>Theorem 2.</bold> Assuming that the q-parallel-BDHE problem is difficult, the FCS-ABMSE meets the IND-CPA security. If a polynomial-time adversary <inline-formula id="ieqn-621"><mml:math id="mml-ieqn-621"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> breaks the IND-CPA security of our scheme with advantage <inline-formula id="ieqn-622"><mml:math id="mml-ieqn-622"><mml:mi>&#x03F5;</mml:mi></mml:math></inline-formula>, there exists an algorithm <inline-formula id="ieqn-623"><mml:math id="mml-ieqn-623"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> solving the <inline-formula id="ieqn-624"><mml:math id="mml-ieqn-624"><mml:mi>q</mml:mi></mml:math></inline-formula>-parallel-BDHE problem with advantage <inline-formula id="ieqn-625"><mml:math id="mml-ieqn-625"><mml:mi>&#x03F5;</mml:mi></mml:math></inline-formula>.</p>
<p><bold>Proof.</bold> Given a random instance of the decisional q-parallel-BDHE problem <inline-formula id="ieqn-626"><mml:math id="mml-ieqn-626"><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-627"><mml:math id="mml-ieqn-627"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> interacts with <inline-formula id="ieqn-628"><mml:math id="mml-ieqn-628"><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow></mml:math></inline-formula> to determine whether <inline-formula id="ieqn-629"><mml:math id="mml-ieqn-629"><mml:mi>T</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:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:math></inline-formula> as follows:</p>
<p><bold>Initialization.</bold> <inline-formula id="ieqn-630"><mml:math id="mml-ieqn-630"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs a policy <inline-formula id="ieqn-631"><mml:math id="mml-ieqn-631"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-632"><mml:math id="mml-ieqn-632"><mml:msup><mml:mi>M</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> is a matrix with <inline-formula id="ieqn-633"><mml:math id="mml-ieqn-633"><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>w</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula> columns.</p>
<p><bold>Setup.</bold> <inline-formula id="ieqn-634"><mml:math id="mml-ieqn-634"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-635"><mml:math id="mml-ieqn-635"><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mi>G</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-636"><mml:math id="mml-ieqn-636"><mml:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>&#x03B3;</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>, sets <inline-formula id="ieqn-637"><mml:math id="mml-ieqn-637"><mml:mi>X</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-638"><mml:math id="mml-ieqn-638"><mml:mi>Y</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>&#x03B3;</mml:mi></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-639"><mml:math id="mml-ieqn-639"><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and calculates <inline-formula id="ieqn-640"><mml:math id="mml-ieqn-640"><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></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:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><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>&#x03B1;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:math></inline-formula> where <inline-formula id="ieqn-641"><mml:math id="mml-ieqn-641"><mml:mi>&#x03B1;</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> is implicitly given. For <inline-formula id="ieqn-642"><mml:math id="mml-ieqn-642"><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>x</mml:mi><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula>, it randomly selects a number <inline-formula id="ieqn-643"><mml:math id="mml-ieqn-643"><mml:msub><mml:mi>z</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>. Let <inline-formula id="ieqn-644"><mml:math id="mml-ieqn-644"><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> represent the set of <inline-formula id="ieqn-645"><mml:math id="mml-ieqn-645"><mml:mi>i</mml:mi></mml:math></inline-formula> that satisfies <inline-formula id="ieqn-646"><mml:math id="mml-ieqn-646"><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>x</mml:mi></mml:math></inline-formula>. <inline-formula id="ieqn-647"><mml:math id="mml-ieqn-647"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> calculates <inline-formula id="ieqn-648"><mml:math id="mml-ieqn-648"><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> corresponding to attribute <inline-formula id="ieqn-649"><mml:math id="mml-ieqn-649"><mml:mi>x</mml:mi></mml:math></inline-formula> as: <inline-formula id="ieqn-650"><mml:math id="mml-ieqn-650"><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi><mml:mi>e</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:munder><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup><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:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup><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>&#x22EF;</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:msup><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup><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>.</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-651"><mml:math id="mml-ieqn-651"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> selects a hash function <inline-formula id="ieqn-652"><mml:math id="mml-ieqn-652"><mml:mi>H</mml:mi><mml:mo>:</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">&#x2192;</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>. <inline-formula id="ieqn-653"><mml:math id="mml-ieqn-653"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> chooses a symmetric encryption scheme <inline-formula id="ieqn-654"><mml:math id="mml-ieqn-654"><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, a commitment scheme <inline-formula id="ieqn-655"><mml:math id="mml-ieqn-655"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, a message authentication code scheme <inline-formula id="ieqn-656"><mml:math id="mml-ieqn-656"><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>V</mml:mi><mml:mi>r</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and a key export function <inline-formula id="ieqn-657"><mml:math id="mml-ieqn-657"><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo>:</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mi>&#x03BA;</mml:mi></mml:math></inline-formula>, where <inline-formula id="ieqn-658"><mml:math id="mml-ieqn-658"><mml:mi>&#x03BA;</mml:mi></mml:math></inline-formula> is the symmetric key space. Finally, it outputs the global parameter set: <inline-formula id="ieqn-659"><mml:math id="mml-ieqn-659"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>h</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>h</mml:mi><mml:mi>U</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi>H</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to <inline-formula id="ieqn-660"><mml:math id="mml-ieqn-660"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula>.</p>
<p><bold>Phase 1.</bold> In order to answer the queries in this phase, <inline-formula id="ieqn-661"><mml:math id="mml-ieqn-661"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> maintains a key list: <inline-formula id="ieqn-662"><mml:math id="mml-ieqn-662"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>,</p>
<p><inline-formula id="ieqn-663"><mml:math id="mml-ieqn-663"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. <inline-formula id="ieqn-664"><mml:math id="mml-ieqn-664"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> adaptively makes the following queries with the restriction that <inline-formula id="ieqn-665"><mml:math id="mml-ieqn-665"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> cannot meet <inline-formula id="ieqn-666"><mml:math id="mml-ieqn-666"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>.
<list list-type="bullet">
<list-item>
<p><inline-formula id="ieqn-667"><mml:math id="mml-ieqn-667"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Given an attribute set <inline-formula id="ieqn-668"><mml:math id="mml-ieqn-668"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-669"><mml:math id="mml-ieqn-669"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns <inline-formula id="ieqn-670"><mml:math id="mml-ieqn-670"><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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> if <inline-formula id="ieqn-671"><mml:math id="mml-ieqn-671"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> already exists in a record <inline-formula id="ieqn-672"><mml:math id="mml-ieqn-672"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:math></inline-formula> <inline-formula id="ieqn-673"><mml:math id="mml-ieqn-673"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> on the list <inline-formula id="ieqn-674"><mml:math id="mml-ieqn-674"><mml:msub><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Otherwise, <inline-formula id="ieqn-675"><mml:math id="mml-ieqn-675"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly selects <inline-formula id="ieqn-676"><mml:math id="mml-ieqn-676"><mml:mi>r</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>. Next, <inline-formula id="ieqn-677"><mml:math id="mml-ieqn-677"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> chooses <inline-formula id="ieqn-678"><mml:math id="mml-ieqn-678"><mml:mrow><mml:mover><mml:mi>w</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>w</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>w</mml:mi><mml:mrow><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-679"><mml:math id="mml-ieqn-679"><mml:msub><mml:mi>w</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>. For all <inline-formula id="ieqn-680"><mml:math id="mml-ieqn-680"><mml:mi>i</mml:mi></mml:math></inline-formula> where <inline-formula id="ieqn-681"><mml:math id="mml-ieqn-681"><mml:msup><mml:mi>&#x03BC;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>x</mml:mi></mml:math></inline-formula> satisfies <inline-formula id="ieqn-682"><mml:math id="mml-ieqn-682"><mml:mrow><mml:mover><mml:mi>w</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover></mml:mrow><mml:msubsup><mml:mi>M</mml:mi><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-683"><mml:math id="mml-ieqn-683"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sets: <inline-formula id="ieqn-684"><mml:math id="mml-ieqn-684"><mml:mi>z</mml:mi><mml:mo>=</mml:mo><mml:mi>r</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msup><mml:mi>a</mml:mi><mml:mi>q</mml:mi></mml:msup><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:msub><mml:msup><mml:mi>a</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:math></inline-formula> and calculates <inline-formula id="ieqn-685"><mml:math id="mml-ieqn-685"><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>&#x03B2;</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mo>&#x2211;</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:msup><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:msup><mml:mo stretchy="false">)</mml:mo><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:msup><mml:mi>g</mml:mi><mml:mi>&#x03B1;</mml:mi></mml:msup><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>r</mml:mi></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:munder><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2212;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow><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:msup><mml:mi>g</mml:mi><mml:mi>z</mml:mi></mml:msup><mml:mo>.</mml:mo></mml:math></inline-formula> For any attribute <inline-formula id="ieqn-686"><mml:math id="mml-ieqn-686"><mml:mi>x</mml:mi></mml:math></inline-formula> in set <inline-formula id="ieqn-687"><mml:math id="mml-ieqn-687"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, if there is no <inline-formula id="ieqn-688"><mml:math id="mml-ieqn-688"><mml:mi>i</mml:mi></mml:math></inline-formula> that satisfies <inline-formula id="ieqn-689"><mml:math id="mml-ieqn-689"><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>x</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-690"><mml:math id="mml-ieqn-690"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sets <inline-formula id="ieqn-691"><mml:math id="mml-ieqn-691"><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>z</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:math></inline-formula> And computes <inline-formula id="ieqn-692"><mml:math id="mml-ieqn-692"><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>x</mml:mi><mml:mi>z</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>z</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> Otherwise, let <italic>X</italic> indicate the set of <inline-formula id="ieqn-693"><mml:math id="mml-ieqn-693"><mml:mi>i</mml:mi></mml:math></inline-formula> that satisfies <inline-formula id="ieqn-694"><mml:math id="mml-ieqn-694"><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>x</mml:mi></mml:math></inline-formula>, and <inline-formula id="ieqn-695"><mml:math id="mml-ieqn-695"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> calculates <inline-formula id="ieqn-696"><mml:math id="mml-ieqn-696"><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>L</mml:mi><mml:mrow><mml:msub><mml:mi>z</mml:mi><mml:mi>x</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>X</mml:mi></mml:mrow></mml:munder><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mstyle scriptlevel="1"><mml:mtable rowspacing="0.1em" columnspacing="0em" displaystyle="false"><mml:mtr><mml:mtd><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msup><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">]</mml:mo><mml:mo>,</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>j</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:mstyle></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</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:mrow></mml:msup><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>x</mml:mi><mml:mi>t</mml:mi></mml:msubsup></mml:math></inline-formula> as follows: <inline-formula id="ieqn-697"><mml:math id="mml-ieqn-697"><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:mi>z</mml:mi></mml:mrow></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>X</mml:mi></mml:mrow></mml:munder><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mi>i</mml:mi></mml:msup></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:math></inline-formula> Finally, <inline-formula id="ieqn-698"><mml:math id="mml-ieqn-698"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> returns the attribute key <inline-formula id="ieqn-699"><mml:math id="mml-ieqn-699"><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to <inline-formula id="ieqn-700"><mml:math id="mml-ieqn-700"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> and adds <inline-formula id="ieqn-701"><mml:math id="mml-ieqn-701"><mml:mo fence="false" stretchy="false">&#x27E8;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo fence="false" stretchy="false">&#x27E9;</mml:mo></mml:math></inline-formula> to the list <inline-formula id="ieqn-702"><mml:math id="mml-ieqn-702"><mml:mrow><mml:mi>&#x02112;</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-703"><mml:math id="mml-ieqn-703"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Identical to that in IND-CKA.</p></list-item>
<list-item>
<p><inline-formula id="ieqn-704"><mml:math id="mml-ieqn-704"><mml:msub><mml:mrow><mml:mi>&#x1D4AA;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:mrow></mml:msub></mml:math></inline-formula>: Identical to that in IND-CKA.</p></list-item>
</list></p>
<p><bold>Challenge.</bold> <inline-formula id="ieqn-705"><mml:math id="mml-ieqn-705"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs two messages <inline-formula id="ieqn-706"><mml:math id="mml-ieqn-706"><mml:msub><mml:mi>m</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-707"><mml:math id="mml-ieqn-707"><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula>, a keyword set <inline-formula id="ieqn-708"><mml:math id="mml-ieqn-708"><mml:msup><mml:mrow><mml:mi>w</mml:mi><mml:mi>s</mml:mi></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>, and a time <inline-formula id="ieqn-709"><mml:math id="mml-ieqn-709"><mml:msup><mml:mi>t</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>. <inline-formula id="ieqn-710"><mml:math id="mml-ieqn-710"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> randomly picks a coin <inline-formula id="ieqn-711"><mml:math id="mml-ieqn-711"><mml:mi>v</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>. <inline-formula id="ieqn-712"><mml:math id="mml-ieqn-712"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> computes <inline-formula id="ieqn-713"><mml:math id="mml-ieqn-713"><mml:msubsup><mml:mi>C</mml:mi><mml:mn>3</mml:mn><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, selects <inline-formula id="ieqn-714"><mml:math id="mml-ieqn-714"><mml:mi>d</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 for <inline-formula id="ieqn-715"><mml:math id="mml-ieqn-715"><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>r</mml:mi><mml:mi>o</mml:mi><mml:msup><mml:mi>w</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula> computes <inline-formula id="ieqn-716"><mml:math id="mml-ieqn-716"><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></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:mi>d</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-717"><mml:math id="mml-ieqn-717"><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>s</mml:mi><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is implicitly given and <inline-formula id="ieqn-718"><mml:math id="mml-ieqn-718"><mml:msubsup><mml:mi>C</mml:mi><mml:mn>4</mml:mn><mml:mo>&#x2217;</mml:mo></mml:msubsup><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:mo>+</mml:mo><mml:mi>s</mml:mi><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>d</mml:mi></mml:msup></mml:math></inline-formula>. <inline-formula id="ieqn-719"><mml:math id="mml-ieqn-719"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> defines the set <italic>R</italic> to represent the set of <inline-formula id="ieqn-720"><mml:math id="mml-ieqn-720"><mml:mi>k</mml:mi></mml:math></inline-formula> that satisfies <inline-formula id="ieqn-721"><mml:math id="mml-ieqn-721"><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-722"><mml:math id="mml-ieqn-722"><mml:mi>k</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>i</mml:mi></mml:math></inline-formula>. <inline-formula id="ieqn-723"><mml:math id="mml-ieqn-723"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> chooses <inline-formula id="ieqn-724"><mml:math id="mml-ieqn-724"><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x2217;</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2217;</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><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 calculates <inline-formula id="ieqn-725"><mml:math id="mml-ieqn-725"><mml:msubsup><mml:mi>C</mml:mi><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:munder><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>y</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:msup><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup><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>&#x22C5;</mml:mo><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:munder><mml:munder><mml:mo>&#x220F;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mi>n</mml:mi><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:munder><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mi>j</mml:mi></mml:msup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>M</mml:mi><mml:mrow><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-726"><mml:math id="mml-ieqn-726"><mml:mrow><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x2192;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>s</mml:mi><mml:mi>&#x03B2;</mml:mi><mml:mo>+</mml:mo><mml:msubsup><mml:mi>y</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:mtext>&#xA0;</mml:mtext><mml:mi>s</mml:mi><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:mn>3</mml:mn></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#xA0;</mml:mtext><mml:mi>s</mml:mi><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mrow><mml:msup><mml:mi>n</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>y</mml:mi><mml:mrow><mml:msup><mml:mi>n</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mrow><mml:mi mathvariant="double-struck">Z</mml:mi></mml:mrow><mml:mrow><mml:mi>p</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mi>n</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msubsup></mml:math></inline-formula> is implicitly given. <inline-formula id="ieqn-727"><mml:math id="mml-ieqn-727"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> sets the other ciphertext according to the <bold>OnEncryption</bold> algorithm.</p>
<p><bold>Phase 2.</bold> Identical to Phase 1. The queried <inline-formula id="ieqn-728"><mml:math id="mml-ieqn-728"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> by <inline-formula id="ieqn-729"><mml:math id="mml-ieqn-729"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> cannot meet <inline-formula id="ieqn-730"><mml:math id="mml-ieqn-730"><mml:msup><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:math></inline-formula>.</p>
<p><bold>Guess.</bold> <inline-formula id="ieqn-731"><mml:math id="mml-ieqn-731"><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:math></inline-formula> outputs a guess <inline-formula id="ieqn-732"><mml:math id="mml-ieqn-732"><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> for <inline-formula id="ieqn-733"><mml:math id="mml-ieqn-733"><mml:mi>v</mml:mi></mml:math></inline-formula>. If <inline-formula id="ieqn-734"><mml:math id="mml-ieqn-734"><mml:mi>v</mml:mi><mml:mo>=</mml:mo><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula id="ieqn-735"><mml:math id="mml-ieqn-735"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs 1, which means <inline-formula id="ieqn-736"><mml:math id="mml-ieqn-736"><mml:mi>T</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:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:math></inline-formula>. Otherwise, <inline-formula id="ieqn-737"><mml:math id="mml-ieqn-737"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> outputs 0, which means <inline-formula id="ieqn-738"><mml:math id="mml-ieqn-738"><mml:mi>T</mml:mi><mml:mo>&#x2260;</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:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:math></inline-formula>.</p>
<p>If <inline-formula id="ieqn-739"><mml:math id="mml-ieqn-739"><mml:mi>T</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:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:math></inline-formula>, this simulation is effective for the adversary, and <inline-formula id="ieqn-740"><mml:math id="mml-ieqn-740"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mi>N</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mi>&#x03F5;</mml:mi></mml:math></inline-formula>. If <italic>T</italic> is a random element, <inline-formula id="ieqn-741"><mml:math id="mml-ieqn-741"><mml:msubsup><mml:mrow><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mi>N</mml:mi><mml:mi>D</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>C</mml:mi><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:math></inline-formula>. Thus, the advantage of <inline-formula id="ieqn-742"><mml:math id="mml-ieqn-742"><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:math></inline-formula> in breaking the DBDH problem is <inline-formula id="ieqn-743"><mml:math id="mml-ieqn-743"><mml:mi>A</mml:mi><mml:mi>d</mml:mi><mml:msub><mml:mi>v</mml:mi><mml:mrow><mml:mrow><mml:mi>&#x0212C;</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><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>a</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup><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:msup><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>q</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msub><mml:mrow><mml:mi>&#x1D49C;</mml:mi></mml:mrow><mml:mi>d</mml:mi></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><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>a</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">]</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mi>&#x03F5;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>/</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="normal">&#x03B5;</mml:mi></mml:mrow></mml:math></inline-formula>. &#x25A1;</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Evaluation and Discussions</title>
<p>This section compares the proposed scheme with four benchmark approaches [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>], and [<xref ref-type="bibr" rid="ref-41">41</xref>] for IoT environments in terms of functionalities, computational cost, and communication cost.</p>
<p>The Java Pairing-Based Cryptography Library (JPBC) was adopted [<xref ref-type="bibr" rid="ref-44">44</xref>] for simulations. The experiment was conducted using the JPBC-2.0.0 library on a system equipped with a Core i5-13500HX processor at 2.50 GHz and 16 GB of RAM. The bilinear map follows a type-1 pairings structure, with the curve equation <inline-formula id="ieqn-744"><mml:math id="mml-ieqn-744"><mml:msup><mml:mi>y</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>=</mml:mo><mml:msup><mml:mi>x</mml:mi><mml:mn>3</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>x</mml:mi></mml:math></inline-formula> and a 160-bit prime order <inline-formula id="ieqn-745"><mml:math id="mml-ieqn-745"><mml:mi>p</mml:mi></mml:math></inline-formula>. The lengths of an element on Groups <italic>G</italic> and <inline-formula id="ieqn-746"><mml:math id="mml-ieqn-746"><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula> are 512 and 1024 bits, respectively. The symbols are listed in <xref ref-type="table" rid="table-2">Table 2</xref>:</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Symbols and definitions</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Symbols</th>
<th>Definitions</th>
<th>Symbols</th>
<th>Definitions</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-747"><mml:math id="mml-ieqn-747"><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Time cost of a bilinear pair</td>
<td><inline-formula id="ieqn-748"><mml:math id="mml-ieqn-748"><mml:mi>l</mml:mi></mml:math></inline-formula></td>
<td>Number of attributes in LSSS</td>
</tr>
<tr>
<td><inline-formula id="ieqn-749"><mml:math id="mml-ieqn-749"><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Time cost of an exponent on group <italic>G</italic></td>
<td>|<italic>S</italic>|</td>
<td>Number of user attributes</td>
</tr>
<tr>
<td><inline-formula id="ieqn-750"><mml:math id="mml-ieqn-750"><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Time cost of an exponent on group <inline-formula id="ieqn-751"><mml:math id="mml-ieqn-751"><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-752"><mml:math id="mml-ieqn-752"><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>Number of keywords in encryption</td>
</tr>
<tr>
<td><inline-formula id="ieqn-753"><mml:math id="mml-ieqn-753"><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>Time cost of a Map-to-Point hash function</td>
<td><inline-formula id="ieqn-754"><mml:math id="mml-ieqn-754"><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula></td>
<td>Number of keywords in trapdoor</td>
</tr>
<tr>
<td><inline-formula id="ieqn-755"><mml:math id="mml-ieqn-755"><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Operation time of a general hash function</td>
<td>|<italic>G</italic>|</td>
<td>Element length of group <italic>G</italic></td>
</tr>
<tr>
<td><inline-formula id="ieqn-756"><mml:math id="mml-ieqn-756"><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Time cost of a multiplication on group <italic>G</italic></td>
<td><inline-formula id="ieqn-757"><mml:math id="mml-ieqn-757"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td>Element length of group <inline-formula id="ieqn-758"><mml:math id="mml-ieqn-758"><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-759"><mml:math id="mml-ieqn-759"><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math></inline-formula></td>
<td>Time cost of a multiplication on group <inline-formula id="ieqn-760"><mml:math id="mml-ieqn-760"><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-761"><mml:math id="mml-ieqn-761"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td>Element length pf group <inline-formula id="ieqn-762"><mml:math id="mml-ieqn-762"><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s5_1">
<label>5.1</label>
<title>Functional Comparison</title>
<p><xref ref-type="table" rid="table-3">Table 3</xref> compares this scheme with VMKS [<xref ref-type="bibr" rid="ref-36">36</xref>], VFKSM [<xref ref-type="bibr" rid="ref-37">37</xref>], FE-ABSE-RV [<xref ref-type="bibr" rid="ref-40">40</xref>], AB-HDPS [<xref ref-type="bibr" rid="ref-41">41</xref>]. VMKS, VFKSM, FE-ABSE-RV can only support multi-keyword search while AB-HDPS can support multi-keyword search and forward ciphertext search. Only the proposed scheme can support two additional functions including multi-keyword fuzzy matching, enabling tolerance to minor input errors, and expressive access control policies, which allow for fine-grained and flexible authorization beyond the capabilities of prior schemes.</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Comparison of Functions in different schemes</title>
</caption>
<table>
<colgroup>
<col/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Scheme</th>
<th align="center">Multi-keyword search</th>
<th align="center">Multi-keyword fuzzy matching</th>
<th align="center">Forward ciphertext search</th>
<th align="center">Expressive access control policy</th>
</tr>
</thead>
<tbody>
<tr>
<td>VMKS [<xref ref-type="bibr" rid="ref-36">36</xref>]</td>
<td><inline-formula id="ieqn-763"><mml:math id="mml-ieqn-763"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-764"><mml:math id="mml-ieqn-764"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-765"><mml:math id="mml-ieqn-765"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-766"><mml:math id="mml-ieqn-766"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>VFKSM [<xref ref-type="bibr" rid="ref-37">37</xref>]</td>
<td><inline-formula id="ieqn-767"><mml:math id="mml-ieqn-767"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-768"><mml:math id="mml-ieqn-768"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-769"><mml:math id="mml-ieqn-769"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-770"><mml:math id="mml-ieqn-770"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>FE-ABSE-RV [<xref ref-type="bibr" rid="ref-40">40</xref>]</td>
<td><inline-formula id="ieqn-771"><mml:math id="mml-ieqn-771"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-772"><mml:math id="mml-ieqn-772"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-773"><mml:math id="mml-ieqn-773"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-774"><mml:math id="mml-ieqn-774"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>AB-HDPS [<xref ref-type="bibr" rid="ref-41">41</xref>]</td>
<td><inline-formula id="ieqn-775"><mml:math id="mml-ieqn-775"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-776"><mml:math id="mml-ieqn-776"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-777"><mml:math id="mml-ieqn-777"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-778"><mml:math id="mml-ieqn-778"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula></td>
</tr>
<tr>
<td>Ours</td>
<td><inline-formula id="ieqn-779"><mml:math id="mml-ieqn-779"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-780"><mml:math id="mml-ieqn-780"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-781"><mml:math id="mml-ieqn-781"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-782"><mml:math id="mml-ieqn-782"><mml:mi>&#x2713;</mml:mi></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Current fuzzy keyword search schemes mainly adopt two architectural approaches: (1) edit distance; (2) LSH. The former approach primarily utilizes edit distance to construct a collection of fuzzy keywords approximating original keywords. The latter employs the LSH algorithm to generate a bloom filter for keyword sets, subsequently encrypting the filter into index structures. Both approaches operate by building indexes and resembling original keywords to enable fuzzy search. In contrast, our scheme&#x2019;s core innovation lies in threshold-based intersection search, which achieves multi-keyword fuzzy search by comparing intersections between distinct keyword sets.</p>
<p>Traditional fuzzy keyword search is designed to tolerate typos and spelling mistakes in user queries. It typically performs single-keyword search, determining whether a potentially incorrect search term belongs to a predefined set of fuzzy variants of the specific keyword. In contrast, our scheme is designed to evaluate whether a ciphertext contains a partial or complete match to a set of keywords being searched for. It supports multi-keyword fuzzy matching by assessing the similarity between two distinct keyword sets&#x2014;one encrypted within the ciphertext and the other encoded in the trapdoor based on the size of their intersection. As we know, the search efficiency of single-keyword search is significantly lower than that of multi-keyword search. To conduct a fair comparison, we only include the ABSE schemes that support multi-keyword search in the performance comparison.</p>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Computational Cost</title>
<p>The experiment obtains the system time generated timestamp with a fixed length of 40 bits. For 0-1 encoding, its computational efficiency is related to the numbers of 0 and 1 characters in the bit string. We randomly generated eight bit strings with a total length of 40 bits. Different numbers of 0/1 bits are used to test the computational efficiency of 0 encoding and 1 encoding. As shown in <xref ref-type="table" rid="table-4">Table 4</xref>, it can be seen that 0-1 encoding is highly efficient. When the number of &#x201C;0&#x201D; or &#x201C;1&#x201D; is 40, the time for all 0 bit strings and all 1 bit strings is <inline-formula id="ieqn-783"><mml:math id="mml-ieqn-783"><mml:mn>11.08</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-784"><mml:math id="mml-ieqn-784"><mml:mn>9.603</mml:mn><mml:mtext>&#xA0;</mml:mtext><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula>, respectively. Hence, the time consumption for the operation of generating a time set using 0-1 encoding in this scheme is negligible for IoT applications with constrained resources.</p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Time for varying numbers of &#x201C;0&#x201D; or &#x201C;1&#x201D; in a string</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Type</th>
<th>5 bits</th>
<th>10 bits</th>
<th>15 bits</th>
<th>20 bits</th>
<th>25 bits</th>
<th>30 bits</th>
<th>35 bits</th>
<th>40 bits</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-785"><mml:math id="mml-ieqn-785"><mml:mn>0</mml:mn></mml:math></inline-formula></td>
<td>3.986 <inline-formula id="ieqn-786"><mml:math id="mml-ieqn-786"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>5.546 <inline-formula id="ieqn-787"><mml:math id="mml-ieqn-787"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>6.173 <inline-formula id="ieqn-788"><mml:math id="mml-ieqn-788"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>7.476 <inline-formula id="ieqn-789"><mml:math id="mml-ieqn-789"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>8.761 <inline-formula id="ieqn-790"><mml:math id="mml-ieqn-790"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>9.465 <inline-formula id="ieqn-791"><mml:math id="mml-ieqn-791"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>10.79 <inline-formula id="ieqn-792"><mml:math id="mml-ieqn-792"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>11.08 <inline-formula id="ieqn-793"><mml:math id="mml-ieqn-793"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-794"><mml:math id="mml-ieqn-794"><mml:mn>1</mml:mn></mml:math></inline-formula></td>
<td>4.478 <inline-formula id="ieqn-795"><mml:math id="mml-ieqn-795"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>4.625 <inline-formula id="ieqn-796"><mml:math id="mml-ieqn-796"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>5.558 <inline-formula id="ieqn-797"><mml:math id="mml-ieqn-797"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>6.616 <inline-formula id="ieqn-798"><mml:math id="mml-ieqn-798"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>7.694 <inline-formula id="ieqn-799"><mml:math id="mml-ieqn-799"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>8.824 <inline-formula id="ieqn-800"><mml:math id="mml-ieqn-800"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>9.202 <inline-formula id="ieqn-801"><mml:math id="mml-ieqn-801"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>9.603 <inline-formula id="ieqn-802"><mml:math id="mml-ieqn-802"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The impact of time sets in ciphertext generation and trapdoor generation on computation efficiency was investigated. Due to the use of 0-1 encoding in this scheme to generate a time set, elements in the set are then subjected to exponential operation on group <italic>G</italic>. Therefore, as the number of elements in the time set grows, the corresponding ciphertext and trapdoor time costs also increase. <xref ref-type="table" rid="table-5">Table 5</xref> shows the time required to generate ciphertext using 0-encoding and the time required to generate trapdoors using 1-encoding technology. Similarly, in order to demonstrate the authenticity of the experiment, the total length of the string is 40. From <xref ref-type="table" rid="table-5">Table 5</xref>, it can be observed that the time consumed by all 0 and 1 bit strings is 115.2 and 482.8 <inline-formula id="ieqn-803"><mml:math id="mml-ieqn-803"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula>, respectively, which are relatively small and acceptable for cloud-based IoT applications.</p>
<table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Time for different phases of 0-1 encoding</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Phase</th>
<th>5 bits</th>
<th>10 bits</th>
<th>15 bits</th>
<th>20 bits</th>
<th>25 bits</th>
<th>30 bits</th>
<th>35 bits</th>
<th>40 bits</th>
</tr>
</thead>
<tbody>
<tr>
<td><inline-formula id="ieqn-804"><mml:math id="mml-ieqn-804"><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi><mml:mi>r</mml:mi><mml:mi>y</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi><mml:mi>i</mml:mi><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:math></inline-formula></td>
<td>24.7 <inline-formula id="ieqn-805"><mml:math id="mml-ieqn-805"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>39.1 <inline-formula id="ieqn-806"><mml:math id="mml-ieqn-806"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>51.9 <inline-formula id="ieqn-807"><mml:math id="mml-ieqn-807"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>63.5 <inline-formula id="ieqn-808"><mml:math id="mml-ieqn-808"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>74.8 <inline-formula id="ieqn-809"><mml:math id="mml-ieqn-809"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>88.4 <inline-formula id="ieqn-810"><mml:math id="mml-ieqn-810"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>101.1 <inline-formula id="ieqn-811"><mml:math id="mml-ieqn-811"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>115.2 <inline-formula id="ieqn-812"><mml:math id="mml-ieqn-812"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td><inline-formula id="ieqn-813"><mml:math id="mml-ieqn-813"><mml:mi>T</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>p</mml:mi><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi></mml:math></inline-formula></td>
<td>39.3 <inline-formula id="ieqn-814"><mml:math id="mml-ieqn-814"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>77.4 <inline-formula id="ieqn-815"><mml:math id="mml-ieqn-815"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>118.2 <inline-formula id="ieqn-816"><mml:math id="mml-ieqn-816"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>245.9 <inline-formula id="ieqn-817"><mml:math id="mml-ieqn-817"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>305.4 <inline-formula id="ieqn-818"><mml:math id="mml-ieqn-818"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>369.3 <inline-formula id="ieqn-819"><mml:math id="mml-ieqn-819"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>427.1 <inline-formula id="ieqn-820"><mml:math id="mml-ieqn-820"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
<td>482.8 <inline-formula id="ieqn-821"><mml:math id="mml-ieqn-821"><mml:mrow><mml:mi mathvariant="normal">&#x0B5;</mml:mi></mml:mrow><mml:mrow><mml:mtext>s</mml:mtext></mml:mrow></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p><xref ref-type="table" rid="table-6">Table 6</xref> summarizes computational costs associated with key generation, encryption, trapdoor generation, search, and decryption operations. The computational cost of an algorithm is calculated as the sum of the time costs of all related operations. As the symmetric encryption, commitment methods, mac functions, and other mature methods in the encryption process require very small time, they are omitted from the analysis. In addition, these schemes only require an exponential operation of Group <italic>G</italic> and decryption calculation in the symmetric encryption algorithm during the user decryption process. Therefore, we will not elaborate on them here. Finally, although the owner performs offline encryption, this operation only needs to be calculated once in this scheme, [<xref ref-type="bibr" rid="ref-36">36</xref>], and [<xref ref-type="bibr" rid="ref-40">40</xref>]. Hence, the computational cost of this operation is not discussed.</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Comparison of key generation, encryption, trapdoor, search, and decryption operations</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Scheme</th>
<th>Key generation</th>
<th>Encryption</th>
<th>Trapdoor</th>
<th>Search</th>
<th>Decryption</th>
</tr>
</thead>
<tbody>
<tr>
<td>VMKS [<xref ref-type="bibr" rid="ref-36">36</xref>]</td>
<td><inline-formula id="ieqn-822"><mml:math id="mml-ieqn-822"><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>U</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-823"><mml:math id="mml-ieqn-823"><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>z</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>3</mml:mn><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-824"><mml:math id="mml-ieqn-824"><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-825"><mml:math id="mml-ieqn-825"><mml:mn>8</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-826"><mml:math id="mml-ieqn-826"><mml:mn>2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>VFKSM [<xref ref-type="bibr" rid="ref-37">37</xref>]</td>
<td><inline-formula id="ieqn-827"><mml:math id="mml-ieqn-827"><mml:mo stretchy="false">(</mml:mo><mml:mn>7</mml:mn><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-828"><mml:math id="mml-ieqn-828"><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-829"><mml:math id="mml-ieqn-829"><mml:mn>3</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-830"><mml:math id="mml-ieqn-830"><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>p</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>2</mml:mn><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-831"><mml:math id="mml-ieqn-831"><mml:mn>2</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>FE-ABSE-RV [<xref ref-type="bibr" rid="ref-40">40</xref>]</td>
<td><inline-formula id="ieqn-832"><mml:math id="mml-ieqn-832"><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-833"><mml:math id="mml-ieqn-833"><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-834"><mml:math id="mml-ieqn-834"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-835"><mml:math id="mml-ieqn-835"><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:mn>5</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-836"><mml:math id="mml-ieqn-836"><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>AB-HDPS [<xref ref-type="bibr" rid="ref-41">41</xref>]</td>
<td><inline-formula id="ieqn-837"><mml:math id="mml-ieqn-837"><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-838"><mml:math id="mml-ieqn-838"><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:mn>6</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-839"><mml:math id="mml-ieqn-839"><mml:mn>4</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-840"><mml:math id="mml-ieqn-840"><mml:mn>3</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-841"><mml:math id="mml-ieqn-841"><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>Ours</td>
<td><inline-formula id="ieqn-842"><mml:math id="mml-ieqn-842"><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-843"><mml:math id="mml-ieqn-843"><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>T</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-844"><mml:math id="mml-ieqn-844"><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mo>+</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-845"><mml:math id="mml-ieqn-845"><mml:mn>5</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>e</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:msub><mml:mi>T</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-846"><mml:math id="mml-ieqn-846"><mml:msub><mml:mi>T</mml:mi><mml:mi>z</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>T</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p><xref ref-type="fig" rid="fig-2">Fig. 2</xref> illustrates the computational cost in key generation for each scheme. The computation time of our scheme in key generation is the lowest. Taking the computational cost of a set of 6 attributes as an example, the key generation algorithm in our scheme takes about 13.86 ms, while that in schemes [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>,<xref ref-type="bibr" rid="ref-41">41</xref>] is about 18.9, 15.918, 21.42, and 40.45 ms, respectively. As shown in <xref ref-type="fig" rid="fig-3">Fig. 3</xref>, the computational cost of our scheme in trapdoor is higher than that of [<xref ref-type="bibr" rid="ref-37">37</xref>] and [<xref ref-type="bibr" rid="ref-41">41</xref>] due to its support for multi-keyword fuzzy search functions. Compared to [<xref ref-type="bibr" rid="ref-36">36</xref>] and [<xref ref-type="bibr" rid="ref-40">40</xref>], our computational cost is lower. For a search with a set of 6 keywords, the trapdoor algorithm in our scheme takes about 19.81 ms, while that in schemes [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>,<xref ref-type="bibr" rid="ref-41">41</xref>] is about 23.58, 12.24, 25.52, and 14.91 ms, respectively.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Computational cost of key generation</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-2.tif"/>
</fig><fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Computational cost of trapdoor</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-3.tif"/>
</fig>
<p>The computational cost of the encryption algorithm is affected by both the number of attributes and the number of keywords. <xref ref-type="fig" rid="fig-4">Fig. 4</xref> illustrates the relationship between computational cost and the number of attributes on encryption time. The number of keywords is set to two. The encryption time increases with the number of attributes. For a set of six attributes, the encryption algorithm in our scheme takes about 18.82 ms, while that in schemes [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>,<xref ref-type="bibr" rid="ref-41">41</xref>] is about 19.54, 39.02, 60.36, and 62.19 ms, respectively. When the number of attributes is large enough, the encryption time in [<xref ref-type="bibr" rid="ref-40">40</xref>] becomes the longest. <xref ref-type="fig" rid="fig-5">Fig. 5</xref> illustrates the relationship between computational cost and the number of keywords on encryption time. The number of attributes is two. As our scheme and [<xref ref-type="bibr" rid="ref-36">36</xref>] can achieve outsourced assisted keyword encryption, the computational cost is independent of the number of keywords. Due to the implementation of multi-keyword fuzzy search, the cost of our scheme is higher than that of [<xref ref-type="bibr" rid="ref-36">36</xref>]. For six attributes, the encryption time in our scheme is about 10.08 ms, while that in [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>,<xref ref-type="bibr" rid="ref-41">41</xref>] is about 7.56, 31.66, 29.3, and 31.35 ms, respectively. As our scheme and [<xref ref-type="bibr" rid="ref-36">36</xref>] implement outsourced keyword encryption, both schemes can achieve computational cost invariance regardless of the number of keywords.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Computational cost of encryption vs. number of attributes</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-4.tif"/>
</fig><fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Computational cost of encryption vs. number of keywords</title>
</caption>
 <graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-5.tif"/>
</fig>
<p><xref ref-type="fig" rid="fig-6">Fig. 6</xref> presents the computational cost of the search operation. Besides our scheme, the computational cost of other schemes is independent of the number of keywords. Due to the support of multi-keyword fuzzy search, the cost of our scheme is higher than that in [<xref ref-type="bibr" rid="ref-37">37</xref>] and [<xref ref-type="bibr" rid="ref-41">41</xref>]. However, this workload is computed by cloud servers, and this additional computational cost is acceptable in practical deployment scenarios. For six keywords, the search algorithm in our scheme takes about 51.37 ms, while that in schemes [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>,<xref ref-type="bibr" rid="ref-41">41</xref>] is about 61.76, 133.24, 72, and 23.16 ms.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Computational cost of search</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-6.tif"/>
</fig>
<p><xref ref-type="fig" rid="fig-7">Fig. 7</xref> compares the computational cost of decryption of each scheme. All schemes implement outsourced decryption and our scheme performs best. The decryption algorithm in our scheme takes about 1.26 ms, while that in schemes [<xref ref-type="bibr" rid="ref-36">36</xref>,<xref ref-type="bibr" rid="ref-37">37</xref>,<xref ref-type="bibr" rid="ref-40">40</xref>,<xref ref-type="bibr" rid="ref-41">41</xref>] is about 3.93, 7.72, 10.24, and 8.98 ms, respectively.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Computational cost of decryption</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-7.tif"/>
</fig>
</sec>
<sec id="s5_3">
<label>5.3</label>
<title>Communication Cost</title>
<p>Due to the incorporation of a forward security function in our scheme, the communication cost of ciphertexts and trapdoors is affected by the number of elements in the time set. The validity period of the trapdoor is related to the value of parameter <italic>T</italic>. The larger the value of <italic>T</italic>, the longer the validity period. In the experiment, <italic>T</italic> is set to be 5. The proposed scheme demonstrates superior overall communication efficiency compared to existing alternatives. As we can see from <xref ref-type="table" rid="table-7">Table 7</xref>, our scheme achieves lower key management communication cost compared to the others, while incurring higher ciphertext cost. The trapdoor communication cost of our scheme is slightly higher than that of [<xref ref-type="bibr" rid="ref-41">41</xref>].</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>Comparison of communication cost</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Scheme</th>
<th>Key</th>
<th>Ciphertext</th>
<th>Trapdoor</th>
</tr>
</thead>
<tbody>
<tr>
<td>VMKS [<xref ref-type="bibr" rid="ref-36">36</xref>]</td>
<td><inline-formula id="ieqn-847"><mml:math id="mml-ieqn-847"><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>U</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-848"><mml:math id="mml-ieqn-848"><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-849"><mml:math id="mml-ieqn-849"><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>VFKSM [<xref ref-type="bibr" rid="ref-37">37</xref>]</td>
<td><inline-formula id="ieqn-850"><mml:math id="mml-ieqn-850"><mml:mo stretchy="false">(</mml:mo><mml:mn>6</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>3</mml:mn><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-851"><mml:math id="mml-ieqn-851"><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-852"><mml:math id="mml-ieqn-852"><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>FE-ABSE-RV [<xref ref-type="bibr" rid="ref-40">40</xref>]</td>
<td><inline-formula id="ieqn-853"><mml:math id="mml-ieqn-853"><mml:mo stretchy="false">(</mml:mo><mml:mn>4</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-854"><mml:math id="mml-ieqn-854"><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mi>l</mml:mi><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-855"><mml:math id="mml-ieqn-855"><mml:mn>4</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>AB-HDPS [<xref ref-type="bibr" rid="ref-41">41</xref>]</td>
<td><inline-formula id="ieqn-856"><mml:math id="mml-ieqn-856"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>4</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-857"><mml:math id="mml-ieqn-857"><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mi>l</mml:mi><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mn>5</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-858"><mml:math id="mml-ieqn-858"><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td>Ours</td>
<td><inline-formula id="ieqn-859"><mml:math id="mml-ieqn-859"><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>S</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-860"><mml:math id="mml-ieqn-860"><mml:mo stretchy="false">(</mml:mo><mml:mn>5</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mi>l</mml:mi><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>T</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-861"><mml:math id="mml-ieqn-861"><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mrow><mml:mo>+</mml:mo></mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">|</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:mo stretchy="false">|</mml:mo></mml:mrow></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>To better compare the communication cost among different schemes, <xref ref-type="fig" rid="fig-8">Fig. 8</xref> compares the communication costs between each scheme in the key, ciphertext, and trapdoor. We set the number of attributes and keywords to be ten and remove the communication costs generated by the forward security function of this scheme. Our scheme achieves the lowest communication cost during key generation, with trapdoor transmission costs only higher than [<xref ref-type="bibr" rid="ref-41">41</xref>]. Although the ciphertext storage cost is relatively higher, this overhead is deemed acceptable given that ciphertexts are stored on cloud servers with substantial storage capacity.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Comparison of communication cost</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_69628-fig-8.tif"/>
</fig>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Enhancement of the FCS-ABMSE Scheme with Type-3 Pairings</title>
<p>This section illustrates the enhanced scheme based on type-3 pairings. Type-3 elliptic curves offer superior computational performance and security. It can be used to enhance the FCS-ABMSE scheme by adjusting certain parameters. It is worth noting that the core contribution of multi-keyword fuzzy search and forward ciphertext search remains unaffected by this algorithmic-level adjustment.</p>
<p>(1) <bold>Setup</bold>(<inline-formula id="ieqn-862"><mml:math id="mml-ieqn-862"><mml:mi>&#x03B7;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>): Given <inline-formula id="ieqn-863"><mml:math id="mml-ieqn-863"><mml:mi>&#x03B7;</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-864"><mml:math id="mml-ieqn-864"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-865"><mml:math id="mml-ieqn-865"><mml:msub><mml:mi>U</mml:mi><mml:mi>w</mml:mi></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Generate three prime <inline-formula id="ieqn-866"><mml:math id="mml-ieqn-866"><mml:mi>p</mml:mi></mml:math></inline-formula>-order groups <inline-formula id="ieqn-867"><mml:math id="mml-ieqn-867"><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-868"><mml:math id="mml-ieqn-868"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Randomly choose <inline-formula id="ieqn-869"><mml:math id="mml-ieqn-869"><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula>, and <inline-formula id="ieqn-870"><mml:math id="mml-ieqn-870"><mml:mi>&#x03B1;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B3;</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>, compute <inline-formula id="ieqn-871"><mml:math id="mml-ieqn-871"><mml:mi>X</mml:mi><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03B2;</mml:mi></mml:msubsup></mml:math></inline-formula>, <inline-formula id="ieqn-872"><mml:math id="mml-ieqn-872"><mml:mi>Y</mml:mi><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03B3;</mml:mi></mml:msubsup></mml:math></inline-formula>, <inline-formula id="ieqn-873"><mml:math id="mml-ieqn-873"><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03B1;</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-874"><mml:math id="mml-ieqn-874"><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and choose a hash function <inline-formula id="ieqn-875"><mml:math id="mml-ieqn-875"><mml:mi>H</mml:mi><mml:mo>:</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo stretchy="false">&#x2192;</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>;</p></list-item>
<list-item>
<p>For each attribute in <inline-formula id="ieqn-876"><mml:math id="mml-ieqn-876"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula>, select a random element <inline-formula id="ieqn-877"><mml:math id="mml-ieqn-877"><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:math></inline-formula> where <inline-formula id="ieqn-878"><mml:math id="mml-ieqn-878"><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:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Choose an IND-DEM-CCA secure data encapsulation scheme <inline-formula id="ieqn-879"><mml:math id="mml-ieqn-879"><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> with symmetric key space <inline-formula id="ieqn-880"><mml:math id="mml-ieqn-880"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula>, a computationally hiding commitment scheme <inline-formula id="ieqn-881"><mml:math id="mml-ieqn-881"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>O</mml:mi><mml:mi>p</mml:mi><mml:mi>e</mml:mi><mml:mi>n</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, an EU-CMA secure message authentication code scheme <inline-formula id="ieqn-882"><mml:math id="mml-ieqn-882"><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mi>V</mml:mi><mml:mi>r</mml:mi><mml:mi>f</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and a secure key derivation function <inline-formula id="ieqn-883"><mml:math id="mml-ieqn-883"><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo>:</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo stretchy="false">&#x2192;</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-884"><mml:math id="mml-ieqn-884"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>Y</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>h</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>h</mml:mi><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>H</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-885"><mml:math id="mml-ieqn-885"><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(2) <inline-formula id="ieqn-886"><mml:math id="mml-ieqn-886"><mml:mrow><mml:mtext mathvariant="bold">ASKGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-887"><mml:math id="mml-ieqn-887"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-888"><mml:math id="mml-ieqn-888"><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and <inline-formula id="ieqn-889"><mml:math id="mml-ieqn-889"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Randomly select <inline-formula id="ieqn-890"><mml:math id="mml-ieqn-890"><mml:mi>z</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>, compute <inline-formula id="ieqn-891"><mml:math id="mml-ieqn-891"><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mi>&#x03B1;</mml:mi></mml:msubsup><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-892"><mml:math id="mml-ieqn-892"><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>z</mml:mi></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-893"><mml:math id="mml-ieqn-893"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, compute <inline-formula id="ieqn-894"><mml:math id="mml-ieqn-894"><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>&#x03B2;</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mrow><mml:mi>&#x03B3;</mml:mi><mml:mo>&#x2211;</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-895"><mml:math id="mml-ieqn-895"><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>x</mml:mi><mml:mi>z</mml:mi></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-896"><mml:math id="mml-ieqn-896"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(3) <inline-formula id="ieqn-897"><mml:math id="mml-ieqn-897"><mml:mrow><mml:mtext mathvariant="bold">DUKeyGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</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>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-898"><mml:math id="mml-ieqn-898"><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Randomly select <inline-formula id="ieqn-899"><mml:math id="mml-ieqn-899"><mml:mi>&#x03BB;</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>, compute <inline-formula id="ieqn-900"><mml:math id="mml-ieqn-900"><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>&#x03B1;</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mi>&#x03B2;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-901"><mml:math id="mml-ieqn-901"><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-902"><mml:math id="mml-ieqn-902"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, compute <inline-formula id="ieqn-903"><mml:math id="mml-ieqn-903"><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>k</mml:mi><mml:mi>x</mml:mi><mml:mi>&#x03BB;</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>h</mml:mi><mml:mi>x</mml:mi><mml:mrow><mml:mi>&#x03BB;</mml:mi><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-904"><mml:math id="mml-ieqn-904"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-905"><mml:math id="mml-ieqn-905"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(4) <inline-formula id="ieqn-906"><mml:math id="mml-ieqn-906"><mml:mrow><mml:mtext mathvariant="bold">OffEncryption</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Same as that in the original scheme.</p>
<p>(5) <inline-formula id="ieqn-907"><mml:math id="mml-ieqn-907"><mml:mrow><mml:mtext mathvariant="bold">OnEncryption</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-908"><mml:math id="mml-ieqn-908"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-909"><mml:math id="mml-ieqn-909"><mml:mi>m</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-910"><mml:math id="mml-ieqn-910"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>f</mml:mi><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><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>n</mml:mi><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-911"><mml:math id="mml-ieqn-911"><mml:mi>w</mml:mi><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>w</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>w</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-912"><mml:math id="mml-ieqn-912"><mml:mi mathvariant="normal">&#x039B;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and <inline-formula id="ieqn-913"><mml:math id="mml-ieqn-913"><mml:mi>t</mml:mi></mml:math></inline-formula> where <inline-formula id="ieqn-914"><mml:math id="mml-ieqn-914"><mml:mi>M</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:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is a <inline-formula id="ieqn-915"><mml:math id="mml-ieqn-915"><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>l</mml:mi></mml:math></inline-formula> matrix and <inline-formula id="ieqn-916"><mml:math id="mml-ieqn-916"><mml:mi>&#x03C1;</mml:mi></mml:math></inline-formula> is a function mapping each row of <italic>M</italic> to an attribute in <inline-formula id="ieqn-917"><mml:math id="mml-ieqn-917"><mml:msub><mml:mi>U</mml:mi><mml:mi>a</mml:mi></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Randomly select <inline-formula id="ieqn-918"><mml:math id="mml-ieqn-918"><mml:mi>k</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msub><mml:mi>G</mml:mi><mml:mi>T</mml:mi></mml:msub></mml:math></inline-formula> and run <inline-formula id="ieqn-919"><mml:math id="mml-ieqn-919"><mml:mrow><mml:mi>K</mml:mi><mml:mi>D</mml:mi><mml:mi>F</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to extract a symmetric key <inline-formula id="ieqn-920"><mml:math id="mml-ieqn-920"><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</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:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:math></inline-formula>, compute <inline-formula id="ieqn-921"><mml:math id="mml-ieqn-921"><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and <inline-formula id="ieqn-922"><mml:math id="mml-ieqn-922"><mml:mrow><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A8;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Run <inline-formula id="ieqn-923"><mml:math id="mml-ieqn-923"><mml:mi mathvariant="normal">&#x03A6;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>C</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mi>m</mml:mi><mml:mi>i</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> to generate <inline-formula id="ieqn-924"><mml:math id="mml-ieqn-924"><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and compute <inline-formula id="ieqn-925"><mml:math id="mml-ieqn-925"><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">&#x03A0;</mml:mi><mml:mo>.</mml:mo><mml:mrow><mml:mi>E</mml:mi><mml:mi>n</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mi>e</mml:mi><mml:mi>y</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Randomly select <inline-formula id="ieqn-926"><mml:math id="mml-ieqn-926"><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:msub><mml:mi>v</mml:mi><mml:mn>3</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:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></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> and set <inline-formula id="ieqn-927"><mml:math id="mml-ieqn-927"><mml:mrow><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></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:msub><mml:mi>v</mml:mi><mml:mn>3</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:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:mrow></mml:msub><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22A5;</mml:mo></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Compute <inline-formula id="ieqn-928"><mml:math id="mml-ieqn-928"><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-929"><mml:math id="mml-ieqn-929"><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mi>Y</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Randomly select <inline-formula id="ieqn-930"><mml:math id="mml-ieqn-930"><mml:mi>d</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 compute <inline-formula id="ieqn-931"><mml:math id="mml-ieqn-931"><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>1</mml:mn><mml:mi>s</mml:mi></mml:msubsup></mml:math></inline-formula> and <inline-formula id="ieqn-932"><mml:math id="mml-ieqn-932"><mml:msub><mml:mi>C</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>d</mml:mi></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-933"><mml:math id="mml-ieqn-933"><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:mrow><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, compute <inline-formula id="ieqn-934"><mml:math id="mml-ieqn-934"><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mrow><mml:mover><mml:mi>v</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-935"><mml:math id="mml-ieqn-935"><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>&#x03B2;</mml:mi><mml:msub><mml:mi>&#x03BC;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>h</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:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, where <inline-formula id="ieqn-936"><mml:math id="mml-ieqn-936"><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:math></inline-formula> is the <inline-formula id="ieqn-937"><mml:math id="mml-ieqn-937"><mml:mi>i</mml:mi></mml:math></inline-formula>-th row of <italic>M</italic>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-938"><mml:math id="mml-ieqn-938"><mml:msub><mml:mi>C</mml:mi><mml:mi>V</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-939"><mml:math id="mml-ieqn-939"><mml:mi>C</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>i</mml:mi></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:mo stretchy="false">[</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>r</mml:mi><mml:mi>o</mml:mi><mml:mi>w</mml:mi><mml:mo stretchy="false">]</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msub></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>Run the 0-encoding algorithm to transform <inline-formula id="ieqn-940"><mml:math id="mml-ieqn-940"><mml:mi>t</mml:mi></mml:math></inline-formula> into a set <italic>T</italic>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-941"><mml:math id="mml-ieqn-941"><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:math></inline-formula>, compute <inline-formula id="ieqn-942"><mml:math id="mml-ieqn-942"><mml:msub><mml:mi>I</mml:mi><mml:mi>&#x03C4;</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>s</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-943"><mml:math id="mml-ieqn-943"><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:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, compute <inline-formula id="ieqn-944"><mml:math id="mml-ieqn-944"><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:mi>s</mml:mi></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-945"><mml:math id="mml-ieqn-945"><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>T</mml:mi><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>&#x03C4;</mml:mi></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mi>W</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><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:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-946"><mml:math id="mml-ieqn-946"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>V</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>I</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(6) <inline-formula id="ieqn-947"><mml:math id="mml-ieqn-947"><mml:mrow><mml:mtext mathvariant="bold">TrapGen</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>w</mml:mi><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-948"><mml:math id="mml-ieqn-948"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-949"><mml:math id="mml-ieqn-949"><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-950"><mml:math id="mml-ieqn-950"><mml:mi>w</mml:mi><mml:msup><mml:mi>s</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:msubsup><mml:mi>w</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></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>, <inline-formula id="ieqn-951"><mml:math id="mml-ieqn-951"><mml:mi>s</mml:mi><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>x</mml:mi></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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-952"><mml:math id="mml-ieqn-952"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>Run 1-encoding algorithm to transform <inline-formula id="ieqn-953"><mml:math id="mml-ieqn-953"><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> into a set <italic>T</italic><sup><italic>&#x2032;</italic></sup>;</p></list-item>
<list-item>
<p>Randomly select <inline-formula id="ieqn-954"><mml:math id="mml-ieqn-954"><mml:mi>&#x03BA;</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 compute <inline-formula id="ieqn-955"><mml:math id="mml-ieqn-955"><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>&#x03BA;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> for each <inline-formula id="ieqn-956"><mml:math id="mml-ieqn-956"><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Compute <inline-formula id="ieqn-957"><mml:math id="mml-ieqn-957"><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03BB;</mml:mi></mml:msubsup></mml:math></inline-formula>, <inline-formula id="ieqn-958"><mml:math id="mml-ieqn-958"><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msubsup></mml:math></inline-formula>, <inline-formula id="ieqn-959"><mml:math id="mml-ieqn-959"><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>0</mml:mn><mml:mi>&#x03BB;</mml:mi></mml:msubsup></mml:math></inline-formula>, and <inline-formula id="ieqn-960"><mml:math id="mml-ieqn-960"><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x03BB;</mml:mi><mml:mi>&#x03BA;</mml:mi></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>For each <inline-formula id="ieqn-961"><mml:math id="mml-ieqn-961"><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:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>, compute <inline-formula id="ieqn-962"><mml:math id="mml-ieqn-962"><mml:msub><mml:mrow><mml:mover><mml:mi>W</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>w</mml:mi><mml:mi>j</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mi>&#x03BB;</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Set <inline-formula id="ieqn-963"><mml:math id="mml-ieqn-963"><mml:mi>t</mml:mi><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><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:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>W</mml:mi><mml:mo stretchy="false">&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><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:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo stretchy="false">]</mml:mo></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(7) <inline-formula id="ieqn-964"><mml:math id="mml-ieqn-964"><mml:mrow><mml:mtext mathvariant="bold">Search&amp;Trans</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mi>d</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Given <inline-formula id="ieqn-965"><mml:math id="mml-ieqn-965"><mml:mi>p</mml:mi><mml:mi>s</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-966"><mml:math id="mml-ieqn-966"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, <inline-formula id="ieqn-967"><mml:math id="mml-ieqn-967"><mml:mi>t</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-968"><mml:math id="mml-ieqn-968"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, it is executed as follows:
<list list-type="bullet">
<list-item>
<p>If <inline-formula id="ieqn-969"><mml:math id="mml-ieqn-969"><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> associated with <inline-formula id="ieqn-970"><mml:math id="mml-ieqn-970"><mml:mi>t</mml:mi><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> satisfies the access structure in <inline-formula id="ieqn-971"><mml:math id="mml-ieqn-971"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>o</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-972"><mml:math id="mml-ieqn-972"><mml:mi>T</mml:mi><mml:mo>&#x2229;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2260;</mml:mo><mml:mi mathvariant="normal">&#x2205;</mml:mi></mml:math></inline-formula>, randomly select <inline-formula id="ieqn-973"><mml:math id="mml-ieqn-973"><mml:mi>y</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>T</mml:mi><mml:mo>&#x2229;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and compute: <inline-formula id="ieqn-974"><mml:math id="mml-ieqn-974"><mml:mi>I</mml:mi><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>I</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>4</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>y</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msubsup><mml:mi>g</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>r</mml:mi><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x03A3;</mml:mi><mml:mi>H</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msub><mml:mi>g</mml:mi><mml:mn>0</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>,</mml:mo></mml:math></inline-formula> where <inline-formula id="ieqn-975"><mml:math id="mml-ieqn-975"><mml:mi>x</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Check whether <inline-formula id="ieqn-976"><mml:math id="mml-ieqn-976"><mml:mrow><mml:mo>|</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mi>H</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>I</mml:mi><mml:mi>V</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>E</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x22C5;</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>j</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>&#x2229;</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:msub><mml:mrow><mml:mover><mml:mi>W</mml:mi><mml:mo>&#x007E;</mml:mo></mml:mover></mml:mrow><mml:mi>j</mml:mi></mml:msub><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>n</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msubsup><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo><mml:mi>t</mml:mi><mml:mi>h</mml:mi><mml:mi>d</mml:mi></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>If not, output <inline-formula id="ieqn-977"><mml:math id="mml-ieqn-977"><mml:mo>&#x22A5;</mml:mo></mml:math></inline-formula>; else, for all <inline-formula id="ieqn-978"><mml:math id="mml-ieqn-978"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula> where <inline-formula id="ieqn-979"><mml:math id="mml-ieqn-979"><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>i</mml:mi><mml:mo>:</mml:mo><mml:mi>&#x03C1;</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:mi>a</mml:mi><mml:mi>t</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, find <inline-formula id="ieqn-980"><mml:math id="mml-ieqn-980"><mml:mo fence="false" stretchy="false">{</mml:mo><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo fence="false" stretchy="false">}</mml:mo><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> that satisfy <inline-formula id="ieqn-981"><mml:math id="mml-ieqn-981"><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:msub><mml:mi>M</mml:mi><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: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>, compute <inline-formula id="ieqn-982"><mml:math id="mml-ieqn-982"><mml:mi>T</mml:mi><mml:mi>F</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>C</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo></mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>4</mml:mn></mml:msub><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>N</mml:mi></mml:mrow></mml:munder><mml:msubsup><mml:mi>K</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:mrow><mml:msub><mml:mi>&#x03C9;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:math></inline-formula>;</p></list-item>
<list-item>
<p>Output <inline-formula id="ieqn-983"><mml:math id="mml-ieqn-983"><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>3</mml:mn></mml:msub><mml:mo>,</mml:mo><mml:mi>T</mml:mi><mml:mi>F</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and <inline-formula id="ieqn-984"><mml:math id="mml-ieqn-984"><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mi>a</mml:mi><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>M</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>(8) <inline-formula id="ieqn-985"><mml:math id="mml-ieqn-985"><mml:mrow><mml:mtext mathvariant="bold">ResultVrfy</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>n</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Same as that in the original scheme.</p>
<p>(9) <inline-formula id="ieqn-986"><mml:math id="mml-ieqn-986"><mml:mrow><mml:mtext mathvariant="bold">Decrypt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mi>d</mml:mi><mml:mi>k</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mi>c</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>: Same as that in the original scheme.</p>
</sec>
<sec id="s7">
<label>7</label>
<title>Conclusion</title>
<p>In this paper, we proposed an FCS-ABMSE scheme and an improved construction based on type-3 elliptic curves. The scheme supports multi-keyword fuzzy search without relying on predefined keyword fields, thereby overcoming the lack of error tolerance in exact matching. It also incorporates forward ciphertext search to mitigate trapdoor reuse vulnerabilities in IoT environments. Furthermore, the scheme enables verifiable outsourced decryption, which eliminates bilinear pairing operations on the client side and reduces computational overhead. This deign achieves millisecond-level decryption of search results on user devices while allowing verification of outsourced decryption correctness. However, the incorporation of multi-keyword fuzzy search and forward ciphertext search introduces a slight efficiency loss in encryption and trapdoor generation, and search verification incurs substantial bilinear pairing costs. Rigorous security analysis proved that the FCS-ABMSE scheme meets both IND-CKA and IND-CPA. Additionally, the workload of the cloud server remains high and access policies lack flexibility. Future works will focus on designing more efficient and flexible ABMSE schemes with expressive access policy and reduced server-side burden.</p>
</sec>
</body>
<back>
<ack>
<p>Not applicable.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>The authors received no specific funding for this study.</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: conceptualization, He Duan and Shi Zhang; methodology, He Duan; validation, He Duan and Shi Zhang; formal analysis, He Duan; simulations, He Duan; resources, He Duan and Dayu Li; writing&#x2014;original draft preparation, He Duan, Shi Zhang, and Dayu Li; writing&#x2014;review and editing, He Duan; visualization, He Duan; supervision, Shi Zhang and Dayu Li; project administration, He Duan. 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>Not applicable.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>Not applicable.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest to report regarding the present study.</p>
</sec>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Shwetha</surname> <given-names>D</given-names></string-name>, <collab>Swetha</collab></person-group>. <article-title>IoT&#x2019;s impact on personal devices and health: wearable technology</article-title>. In: <conf-name>2024 International Conference on Advances in Modern Age Technologies for Health and Engineering Science (AMATHE); 2024 May 16&#x2013;17</conf-name>; <publisher-loc>Shivamogga, India</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>8</lpage>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Bisht</surname> <given-names>RS</given-names></string-name>, <string-name><surname>Jain</surname> <given-names>S</given-names></string-name>, <string-name><surname>Tewari</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Study of wearable IoT devices in 2021: analysis &#x0026; future prospects</article-title>. In: <conf-name>2021 2nd International Conference on Intelligent Engineering and Management (ICIEM); 2021 Apr 28&#x2013;30</conf-name>; <publisher-loc>London, UK</publisher-loc>. p. <fpage>577</fpage>&#x2013;<lpage>81</lpage>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Song</surname> <given-names>DX</given-names></string-name>, <string-name><surname>Wagner</surname> <given-names>D</given-names></string-name>, <string-name><surname>Perrig</surname> <given-names>A</given-names></string-name></person-group>. <article-title>Practical techniques for searches on encrypted data</article-title>. In: <conf-name>Proceeding 2000 IEEE Symposium on Security and Privacy (S&#x0026;P &#x0027;00)</conf-name>; 2000 May 15&#x2013;18; <publisher-loc>Oakland, CA, USA</publisher-loc>. p. <fpage>44</fpage>&#x2013;<lpage>55</lpage>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Goyal</surname> <given-names>V</given-names></string-name>, <string-name><surname>Pandey</surname> <given-names>O</given-names></string-name>, <string-name><surname>Sahai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Attribute-based encryption for fine-grained access control of encrypted data</article-title>. In: <conf-name>Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS &#x0027;06)</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Association for Computing Machinery</publisher-name>; <year>2006</year>. p. <fpage>89</fpage>&#x2013;<lpage>98</lpage>.</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>Lai</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>X</given-names></string-name>, <string-name><surname>Deng</surname> <given-names>RH</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>K</given-names></string-name></person-group>. <article-title>Expressive search on encrypted data</article-title>. In: <conf-name>Proceedings of the 8th ACM SIGSAC Symposium on Information, Computer and Communications Security (ASIA CCS &#x0027;13)</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Association for Computing Machinery</publisher-name>; <year>2013</year>. p. <fpage>243</fpage>&#x2013;<lpage>52</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>Boneh</surname> <given-names>D</given-names></string-name>, <string-name><surname>Di Crescenzo</surname> <given-names>G</given-names></string-name>, <string-name><surname>Ostrovsky</surname> <given-names>R</given-names></string-name>, <string-name><surname>Persiano</surname> <given-names>G</given-names></string-name></person-group>. <chapter-title>Public key encryption with keyword search</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Cachin</surname> <given-names>C</given-names></string-name>, <string-name><surname>Camenisch</surname> <given-names>JL</given-names></string-name></person-group>, editors. <source>Advances in cryptology&#x2014;EUROCRYPT 2004</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2004</year>. p. <fpage>506</fpage>&#x2013;<lpage>22</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-540-24676-3_30</pub-id>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Boneh</surname> <given-names>D</given-names></string-name>, <string-name><surname>Franklin</surname> <given-names>M</given-names></string-name></person-group>. <chapter-title>Identity-based encryption from the weil pairing</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Kilian</surname> <given-names>J</given-names></string-name></person-group>, editor. <source>Advances in cryptology&#x2014;CRYPTO 2001</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2001</year>. p. <fpage>213</fpage>&#x2013;<lpage>29</lpage>. doi:<pub-id pub-id-type="doi">10.1007/3-540-44647-8_13</pub-id>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Chen</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>C</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>D</given-names></string-name>, <string-name><surname>Li</surname> <given-names>S</given-names></string-name></person-group>. <chapter-title>Conjunctive keywords searchable encryption with efficient pairing, constant ciphertext and short trapdoor</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Chau</surname> <given-names>M</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>GA</given-names></string-name>, <string-name><surname>Yue</surname> <given-names>WT</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>H</given-names></string-name></person-group>, editors. <source>Intelligence and security informatics</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2012</year>. p. <fpage>176</fpage>&#x2013;<lpage>89</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-642-30428-6_15</pub-id>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Cao</surname> <given-names>N</given-names></string-name>, <string-name><surname>Ren</surname> <given-names>K</given-names></string-name>, <string-name><surname>Lou</surname> <given-names>W</given-names></string-name></person-group>. <article-title>Fuzzy keyword search over encrypted data in cloud computing</article-title>. In: <conf-name>2010 Proceedings IEEE INFOCOM; 2010 Mar 14&#x2013;19</conf-name>; <publisher-loc>San Diego, CA, USA</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>5</lpage>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Dong</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Guan</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>L</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>Z</given-names></string-name></person-group>. <chapter-title>Fuzzy keyword search over encrypted data in the public key setting</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Wang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Xiong</surname> <given-names>H</given-names></string-name>, <string-name><surname>Ishikawa</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>J</given-names></string-name></person-group>, editors. <source>Web-age information management</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2013</year>. p. <fpage>729</fpage>&#x2013;<lpage>40</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-642-38562-9_74</pub-id>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>S</given-names></string-name>, <string-name><surname>Guo</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Wen</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Li</surname> <given-names>W</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>F</given-names></string-name></person-group>. <article-title>Scalable fuzzy keyword ranked search over encrypted data on hybrid clouds</article-title>. <source>IEEE Trans Cloud Comput</source>. <year>2023</year>;<volume>11</volume>(<issue>1</issue>):<fpage>308</fpage>&#x2013;<lpage>23</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tcc.2021.3092358</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Jiang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Feng</surname> <given-names>T</given-names></string-name></person-group>. <article-title>Fuzzy keyword searchable encryption scheme based on blockchain</article-title>. <source>Information</source>. <year>2022</year>;<volume>13</volume>(<issue>11</issue>):<fpage>517</fpage>. doi:<pub-id pub-id-type="doi">10.3390/info13110517</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Cash</surname> <given-names>D</given-names></string-name>, <string-name><surname>Jarecki</surname> <given-names>S</given-names></string-name>, <string-name><surname>Jutla</surname> <given-names>C</given-names></string-name>, <string-name><surname>Krawczyk</surname> <given-names>H</given-names></string-name>, <string-name><surname>Ro&#x015F;u</surname> <given-names>MC</given-names></string-name>, <string-name><surname>Steiner</surname> <given-names>M</given-names></string-name></person-group>. <chapter-title>Highly-scalable searchable symmetric encryption with support for boolean queries</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Canetti</surname> <given-names>R</given-names></string-name>, <string-name><surname>Garay</surname> <given-names>JA</given-names></string-name></person-group>, editors. <source>Advances in cryptology&#x2014;CRYPTO 2013</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2013</year>. p. <fpage>353</fpage>&#x2013;<lpage>73</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-642-40041-4_20</pub-id>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Xu</surname> <given-names>P</given-names></string-name>, <string-name><surname>Tang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>P</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>H</given-names></string-name>, <string-name><surname>Susilo</surname> <given-names>W</given-names></string-name></person-group>. <article-title>Practical multi-keyword and boolean search over encrypted e-mail in cloud server</article-title>. <source>IEEE Trans Serv Comput</source>. <year>2021</year>;<volume>14</volume>(<issue>6</issue>):<fpage>1877</fpage>&#x2013;<lpage>89</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tsc.2019.2903502</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>F</given-names></string-name>, <string-name><surname>Ma</surname> <given-names>J</given-names></string-name>, <string-name><surname>Miao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Choo</surname> <given-names>KKR</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Towards efficient verifiable boolean search over encrypted cloud data</article-title>. <source>IEEE Trans Cloud Comput</source>. <year>2023</year>;<volume>11</volume>(<issue>1</issue>):<fpage>839</fpage>&#x2013;<lpage>53</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tcc.2021.3118692</pub-id>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Tong</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Li</surname> <given-names>X</given-names></string-name>, <string-name><surname>Miao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Weng</surname> <given-names>J</given-names></string-name>, <string-name><surname>Deng</surname> <given-names>RH</given-names></string-name></person-group>. <article-title>Privacy-preserving boolean range query with temporal access control in mobile computing</article-title>. <source>IEEE Trans Knowl Data Eng</source>. <year>2023</year>;<volume>35</volume>(<issue>5</issue>):<fpage>5159</fpage>&#x2013;<lpage>72</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tkde.2022.3152168</pub-id>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Tian</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Peng</surname> <given-names>T</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>G</given-names></string-name></person-group>. <article-title>Enabling verifiable and dynamic ranked search over outsourced data</article-title>. <source>IEEE Trans Serv Comput</source>. <year>2022</year>;<volume>15</volume>(<issue>1</issue>):<fpage>69</fpage>&#x2013;<lpage>82</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tsc.2019.2922177</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>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wei</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Lv</surname> <given-names>S</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Dong</surname> <given-names>C</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Searchable symmetric encryption with forward search privacy</article-title>. <source>IEEE Trans Dependable Secure Comput</source>. <year>2021</year>;<volume>18</volume>(<issue>1</issue>):<fpage>460</fpage>&#x2013;<lpage>74</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tdsc.2019.2894411</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>Gan</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Huang</surname> <given-names>D</given-names></string-name>, <string-name><surname>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>D</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>C</given-names></string-name></person-group>. <article-title>Towards multi-client forward private searchable symmetric encryption in cloud computing</article-title>. <source>IEEE Trans Serv Comput</source>. <year>2022</year>;<volume>15</volume>(<issue>6</issue>):<fpage>3566</fpage>&#x2013;<lpage>76</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tsc.2021.3087155</pub-id>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Guo</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Jia</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Towards public verifiable and forward-privacy encrypted search by using blockchain</article-title>. <source>IEEE Trans Dependable Secure Comput</source>. <year>2023</year>;<volume>20</volume>(<issue>3</issue>):<fpage>2111</fpage>&#x2013;<lpage>26</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tdsc.2022.3173291</pub-id>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Cui</surname> <given-names>N</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Pei</surname> <given-names>L</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>M</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>D</given-names></string-name>, <string-name><surname>Cui</surname> <given-names>J</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Dynamic and verifiable fuzzy keyword search with forward security in cloud environments</article-title>. <source>IEEE Internet Things J</source>. <year>2025</year>;<volume>12</volume>(<issue>9</issue>):<fpage>11482</fpage>&#x2013;<lpage>94</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jiot.2024.3517165</pub-id>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Sahai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <chapter-title>Fuzzy identity-based encryption</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Cramer</surname> <given-names>R</given-names></string-name></person-group>, editor. <source>Advances in cryptology&#x2014;EUROCRYPT 2005</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2005</year>. p. <fpage>457</fpage>&#x2013;<lpage>73</lpage>. doi:<pub-id pub-id-type="doi">10.1007/11426639_27</pub-id>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Bethencourt</surname> <given-names>J</given-names></string-name>, <string-name><surname>Sahai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Ciphertext-policy attribute-based encryption</article-title>. In: <conf-name>2007 IEEE Symposium on Security and Privacy (SP &#x2019;07); 2007 May 20&#x2013;23</conf-name>; <publisher-loc>Berkeley, CA, USA</publisher-loc>. p. <fpage>321</fpage>&#x2013;<lpage>34</lpage>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</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&#x2014;PKC 2011</source>. <publisher-loc>Berlin/Heidelberg, Germany</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2011</year>. p. <fpage>53</fpage>&#x2013;<lpage>70</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-642-19379-8_4</pub-id>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Ostrovsky</surname> <given-names>R</given-names></string-name>, <string-name><surname>Sahai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <chapter-title>Attribute-based encryption with non-monotonic access structures</chapter-title>. In: <source>CCS &#x2019;07</source>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>Association for Computing Machinery</publisher-name>; <year>2007</year>. p. <fpage>195</fpage>&#x2013;<lpage>203</lpage>. doi:<pub-id pub-id-type="doi">10.1145/1315245.1315270</pub-id>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Lewko</surname> <given-names>A</given-names></string-name>, <string-name><surname>Sahai</surname> <given-names>A</given-names></string-name>, <string-name><surname>Waters</surname> <given-names>B</given-names></string-name></person-group>. <article-title>Revocation systems with very small private keys</article-title>. In: <conf-name>2010 IEEE Symposium on Security and Privacy; 2010 May 16&#x2013;19</conf-name>; <publisher-loc>Oakland, CA, USA</publisher-loc>. p. <fpage>273</fpage>&#x2013;<lpage>85</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>Meng</surname> <given-names>L</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>H</given-names></string-name>, <string-name><surname>Tang</surname> <given-names>R</given-names></string-name>, <string-name><surname>Zhou</surname> <given-names>X</given-names></string-name>, <string-name><surname>Han</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>Dual Hybrid CP-ABE: how to provide forward security without a trusted authority in vehicular opportunistic computing</article-title>. <source>IEEE Internet Things J</source>. <year>2024</year>;<volume>11</volume>(<issue>5</issue>):<fpage>8800</fpage>&#x2013;<lpage>14</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jiot.2023.3321563</pub-id>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Luo</surname> <given-names>W</given-names></string-name>, <string-name><surname>Lv</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>L</given-names></string-name>, <string-name><surname>Han</surname> <given-names>G</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>X</given-names></string-name></person-group>. <article-title>FOC-PH-CP-ABE: an efficient CP-ABE scheme with fully outsourced computation and policy hidden in the industrial internet of things</article-title>. <source>IEEE Sensors J</source>. <year>2024</year>;<volume>24</volume>(<issue>18</issue>):<fpage>28971</fpage>&#x2013;<lpage>81</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jsen.2024.3432276</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>Miao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Li</surname> <given-names>F</given-names></string-name>, <string-name><surname>Li</surname> <given-names>X</given-names></string-name>, <string-name><surname>Ning</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name>, <string-name><surname>Choo</surname> <given-names>KKR</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Verifiable outsourced attribute-based encryption scheme for cloud-assisted mobile e-health system</article-title>. <source>IEEE Trans Dependable Secure Comput</source>. <year>2024</year>;<volume>21</volume>(<issue>4</issue>):<fpage>1845</fpage>&#x2013;<lpage>62</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tdsc.2023.3292129</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>Duan</surname> <given-names>P</given-names></string-name>, <string-name><surname>Ma</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>H</given-names></string-name>, <string-name><surname>Tian</surname> <given-names>T</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Multi-authority attribute-based encryption scheme with access delegation for cross blockchain data sharing</article-title>. <source>IEEE Trans Information Forensics Secur</source>. <year>2025</year>;<volume>20</volume>(<issue>2327</issue>):<fpage>323</fpage>&#x2013;<lpage>37</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tifs.2024.3515812</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>Ruan</surname> <given-names>C</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>C</given-names></string-name>, <string-name><surname>Li</surname> <given-names>X</given-names></string-name>, <string-name><surname>Deng</surname> <given-names>S</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Yu</surname> <given-names>J</given-names></string-name></person-group>. <article-title>A revocable and fair outsourcing attribute-based access control scheme in metaverse</article-title>. <source>IEEE Trans Consumer Electron</source>. <year>2024</year>;<volume>70</volume>(<issue>1</issue>):<fpage>3781</fpage>&#x2013;<lpage>91</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tce.2024.3377107</pub-id>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zheng</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Ateniese</surname> <given-names>G</given-names></string-name></person-group>. <article-title>VABKS: Verifiable attribute-based keyword search over outsourced encrypted data</article-title>. In: <conf-name>IEEE INFOCOM 2014&#x2014;IEEE Conference on Computer Communications; 2014 Apr 27&#x2013;May 2</conf-name>; <publisher-loc>Toronto, ON, Canada</publisher-loc>. p. <fpage>522</fpage>&#x2013;<lpage>30</lpage>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Han</surname> <given-names>F</given-names></string-name>, <string-name><surname>Qin</surname> <given-names>J</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>H</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>J</given-names></string-name></person-group>. <article-title>A general transformation from KP-ABE to searchable encryption</article-title>. <source>Fut Gener Comput Syst</source>. <year>2014</year>;<volume>30</volume>(<issue>2&#x2013;3</issue>):<fpage>107</fpage>&#x2013;<lpage>15</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.future.2013.09.013</pub-id>.</mixed-citation></ref>
<ref id="ref-34"><label>[34]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>K</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Lu</surname> <given-names>L</given-names></string-name></person-group>. <article-title>A blockchain-based anonymous attribute-based searchable encryption scheme for data sharing</article-title>. <source>IEEE Internet Things J</source>. <year>2024</year>;<volume>11</volume>(<issue>1</issue>):<fpage>1685</fpage>&#x2013;<lpage>97</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jiot.2023.3290975</pub-id>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ge</surname> <given-names>C</given-names></string-name>, <string-name><surname>Susilo</surname> <given-names>W</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Xia</surname> <given-names>J</given-names></string-name>, <string-name><surname>Szalachowski</surname> <given-names>P</given-names></string-name>, <string-name><surname>Fang</surname> <given-names>L</given-names></string-name></person-group>. <article-title>Secure keyword search and data sharing mechanism for cloud computing</article-title>. <source>IEEE Trans Dependable Secure Comput</source>. <year>2021</year>;<volume>18</volume>(<issue>6</issue>):<fpage>2787</fpage>&#x2013;<lpage>800</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tdsc.2020.2963978</pub-id>.</mixed-citation></ref>
<ref id="ref-36"><label>[36]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Ali</surname> <given-names>M</given-names></string-name>, <string-name><surname>Sadeghi</surname> <given-names>MR</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Miao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Vasilakos</surname> <given-names>AV</given-names></string-name></person-group>. <article-title>Verifiable online/offline multi-keyword search for cloud-assisted Industrial Internet of Things</article-title>. <source>J Inf Secur Appl</source>. <year>2022</year>;<volume>65</volume>(<issue>3</issue>):<fpage>1</fpage>&#x2013;<lpage>12</lpage>. doi:<pub-id pub-id-type="doi">10.1016/j.jisa.2021.103101</pub-id>.</mixed-citation></ref>
<ref id="ref-37"><label>[37]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Miao</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Deng</surname> <given-names>RH</given-names></string-name>, <string-name><surname>Choo</surname> <given-names>KKR</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Ning</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name></person-group>. <article-title>Optimized verifiable fine-grained keyword search in dynamic multi-owner settings</article-title>. <source>IEEE Trans Dependable Secure Comput</source>. <year>2021</year>;<volume>18</volume>(<issue>4</issue>):<fpage>1804</fpage>&#x2013;<lpage>20</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tdsc.2019.2940573</pub-id>.</mixed-citation></ref>
<ref id="ref-38"><label>[38]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Huang</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Yan</surname> <given-names>G</given-names></string-name>, <string-name><surname>Wei</surname> <given-names>Q</given-names></string-name></person-group>. <article-title>Attribute-based expressive and ranked keyword search over encrypted documents in cloud computing</article-title>. <source>IEEE Trans Services Comput</source>. <year>2023</year>;<volume>16</volume>(<issue>2</issue>):<fpage>957</fpage>&#x2013;<lpage>68</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tsc.2022.3149761</pub-id>.</mixed-citation></ref>
<ref id="ref-39"><label>[39]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Huang</surname> <given-names>Q</given-names></string-name>, <string-name><surname>Yan</surname> <given-names>G</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Privacy-preserving traceable attribute-based keyword search in multi-authority medical cloud</article-title>. <source>IEEE Trans Cloud Comput</source>. <year>2023</year>;<volume>11</volume>(<issue>1</issue>):<fpage>678</fpage>&#x2013;<lpage>91</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tcc.2021.3109282</pub-id>.</mixed-citation></ref>
<ref id="ref-40"><label>[40]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Chen</surname> <given-names>L</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Weng</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Fair-and-exculpable-attribute-based searchable encryption with revocation and verifiable outsourced decryption using smart contract</article-title>. <source>IEEE Internet Things J</source>. <year>2025</year>;<volume>12</volume>(<issue>4</issue>):<fpage>4302</fpage>&#x2013;<lpage>17</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jiot.2024.3484227</pub-id>.</mixed-citation></ref>
<ref id="ref-41"><label>[41]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Tian</surname> <given-names>T</given-names></string-name>, <string-name><surname>Shen</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>H</given-names></string-name>, <string-name><surname>Ma</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Guo</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Duan</surname> <given-names>P</given-names></string-name></person-group>. <article-title>Attribute-based heterogeneous data privacy sharing in blockchain-assisted Industrial IoT</article-title>. <source>IEEE Internet Things J</source>. <year>2025</year>;<volume>12</volume>(<issue>8</issue>):<fpage>10404</fpage>&#x2013;<lpage>19</lpage>. doi:<pub-id pub-id-type="doi">10.1109/jiot.2024.3510872</pub-id>.</mixed-citation></ref>
<ref id="ref-42"><label>[42]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Qin</surname> <given-names>C</given-names></string-name>, <string-name><surname>Lee</surname> <given-names>PPC</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Information leakage in encrypted deduplication via frequency analysis</article-title>. In: <conf-name>2017 47th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN); 2017 Jun 26&#x2013;29</conf-name>; <publisher-loc>Denver, CO, USA</publisher-loc>. p. <fpage>1</fpage>&#x2013;<lpage>12</lpage>.</mixed-citation></ref>
<ref id="ref-43"><label>[43]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Lin</surname> <given-names>HY</given-names></string-name>, <string-name><surname>Tzeng</surname> <given-names>WG</given-names></string-name></person-group>. <chapter-title>An efficient solution to the millionaires&#x2019; problem based on homomorphic encryption</chapter-title>. In: <person-group person-group-type="editor"><string-name><surname>Ioannidis</surname> <given-names>J</given-names></string-name>, <string-name><surname>Keromytis</surname> <given-names>A</given-names></string-name>, <string-name><surname>Yung</surname> <given-names>M</given-names></string-name></person-group>, editors. <source>Applied cryptography and network security</source>. <publisher-loc>Berlin/Heidelberg, Germnay</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2005</year>. p. <fpage>456</fpage>&#x2013;<lpage>66</lpage>. doi:<pub-id pub-id-type="doi">10.1007/11496137_31</pub-id>.</mixed-citation></ref>
<ref id="ref-44"><label>[44]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>De Caro</surname> <given-names>A</given-names></string-name>, <string-name><surname>Iovino</surname> <given-names>V</given-names></string-name></person-group>. <article-title>JPBC: java pairing based cryptography</article-title>. In: <conf-name>Proceedings of the 16th IEEE Symposium on Computers and Communications, ISCC 2011; 2011 Jun 28&#x2013;Jul 1</conf-name>; <publisher-loc>Corfu, Greece</publisher-loc>. p. <fpage>850</fpage>&#x2013;<lpage>5</lpage>.</mixed-citation></ref>
</ref-list>
</back></article>