<?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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CSSE</journal-id>
<journal-id journal-id-type="nlm-ta">CSSE</journal-id>
<journal-id journal-id-type="publisher-id">CSSE</journal-id>
<journal-title-group>
<journal-title>Computer Systems Science &#x0026; Engineering</journal-title>
</journal-title-group><issn pub-type="ppub">0267-6192</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">14557</article-id>
<article-id pub-id-type="doi">10.32604/csse.2021.014557</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>A Secure Signcryption Scheme for Electronic Health Records Sharing in Blockchain</article-title><alt-title alt-title-type="left-running-head">A Secure Signcryption Scheme for Electronic Health Records Sharing in Blockchain</alt-title><alt-title alt-title-type="right-running-head">A Secure Signcryption Scheme for Electronic Health Records Sharing in Blockchain</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author">
<name name-style="western">
<surname>Peng</surname>
<given-names>Xizi</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western">
<surname>Zhang</surname>
<given-names>Jinquan</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
<email>zhjqcom@163.com</email>
</contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western">
<surname>Zhang</surname>
<given-names>Shibin</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western">
<surname>Wan</surname>
<given-names>Wunan</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-5" contrib-type="author">
<name name-style="western">
<surname>Chen</surname>
<given-names>Hao</given-names>
</name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-6" contrib-type="author">
<name name-style="western">
<surname>Xia</surname>
<given-names>Jinyue</given-names>
</name>
<xref ref-type="aff" rid="aff-2">2</xref>
</contrib>
<aff id="aff-1">
<label>1</label><institution>School of Cybersecurity, Chengdu University of Information Technology</institution>, <addr-line>Chengdu, 610225</addr-line>, <country>China</country></aff>
<aff id="aff-2">
<label>2</label>International Business Machines Corporation (IBM), <addr-line>New York, 10041, NY, 212</addr-line>, <country>USA</country></aff>
</contrib-group><author-notes><corresp id="cor1">&#x002A;Corresponding Author: Jinquan Zhang. Email: <email>zhjqcom@163.com</email></corresp></author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2020-12-07">
<day>07</day>
<month>12</month>
<year iso-8601-date="2020">2020</year>
</pub-date>
<volume>37</volume>
<issue>2</issue>
<fpage>265</fpage>
<lpage>281</lpage>
<history>
<date date-type="received">
<day>28</day>
<month>9</month>
<year iso-8601-date="2020">2020</year>
</date>
<date date-type="accepted">
<day>28</day>
<month>11</month>
<year iso-8601-date="2020">2020</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2021 Peng et al.</copyright-statement>
<copyright-year>2021</copyright-year>
<copyright-holder>Peng et al.</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_CSSE_14557.pdf"></self-uri>
<abstract>
<p>In the existing Electronic Health Records (EHRs), the medical information of patients is completely controlled by various medical institutions. As such, patients have no dominant power over their own EHRs. These personal data are not only inconvenient to access and share, but are also prone to cause privacy disclosure. The blockchain technology provides a new development direction in the medical field. Blockchain-based EHRs are characterized by decentralization, openness and non-tampering of records, which enable patients to better manage their own EHRs. In order to better protect the privacy of patients, only designated receivers can access EHRs, and receivers can authenticate the sharer to ensure that the EHRs are real and effective. In this study, we propose an identity-based signcryption scheme with multiple authorities for multiple receivers, which can resist N-1 collusion attacks among N authorities. In addition, the identity information of receivers is anonymous, so the relationship between them and the sharer is not disclosed. Under the random oracle model, it was proved that our scheme was secure and met the unforgeability and confidentiality requirements of signcryption. Moreover, we evaluated the performance of the scheme and found that it had the moderate signcryption efficiency and excellent signcryption attributes.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Electronic health records</kwd>
<kwd>blockchain</kwd>
<kwd>identity-based signcryption</kwd>
<kwd>multiple authorities</kwd>
<kwd>multiple receivers</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Electronic Health Records (EHRs) are to digitize the paper-based health records, so that they can be stored, retrieved and accessed more conveniently and quickly in a network. However, some problems in the existing EHRs remain to be solved. Firstly, EHRs of patients are mainly stored on medical institutions sites, such as hospitals and clinics. Patients have the limited access to their personal medical data, while it is difficult to obtain such data from hospitals in real time, or to even share the data with family members and friends. In addition, medical workers in these institutions may access and disclose patients&#x2019; private medical data at will. Secondly, once a patient and a medical institution have any conflict or dispute, the latter can arbitrarily tamper with the EHRs of the patient, implicitly threatening the patient&#x2019;s case. Thirdly, personal medical records are inherently confidential data and subject to personal privacy and security risks. As such, those records belong only to the corresponding individuals and only authorized users should be able to access relevant information. In order to solve the above problems, some researchers have made significant improvements in enabling patients to generate, manage and share their own EHRs, and ensure the privacy of their medical data.</p>
<sec id="s1_1">
<label>1.1</label>
<title>Related Works</title>
<p>In recent years, due to the extensive application of cloud computing technology in data processing [<xref ref-type="bibr" rid="ref-1">1</xref>], cloud-based EHRs have developed rapidly and more patients have been able to control their own medical data. In the cloud-based EHRs system, Premarathne et al. [<xref ref-type="bibr" rid="ref-2">2</xref>] and Ramu [<xref ref-type="bibr" rid="ref-3">3</xref>] set the access control to allow patients to share their medical data with doctors in a controlled way. However, a cloud server is not a fully trusted third party. In the cloud storage environment, it is difficult to guarantee the security of EHRs [<xref ref-type="bibr" rid="ref-4">4</xref>].</p>
<p>In 2008, blockchain was first proposed by Nakamoto [<xref ref-type="bibr" rid="ref-5">5</xref>] as a part of cryptocurrency bitcoin. At present, the application of the blockchain technology in the medical field is widely concerned among blockchain researchers [<xref ref-type="bibr" rid="ref-6">6</xref>]. With the decentralized, tamper-proof, traceable and publicly available blockchain technology [<xref ref-type="bibr" rid="ref-7">7</xref>], many problems in the medical field can be solved. Roehrs et al. [<xref ref-type="bibr" rid="ref-8">8</xref>] and Gordon et al. [<xref ref-type="bibr" rid="ref-9">9</xref>] proposed the basic framework of blockchain-based EHRs. Omer et al. [<xref ref-type="bibr" rid="ref-10">10</xref>] and Badr et al. [<xref ref-type="bibr" rid="ref-11">11</xref>] protected sensitive data of patients with the encryption technology in blockchain-based EHRs. Chen et al. [<xref ref-type="bibr" rid="ref-12">12</xref>] proposed a blockchain-based searchable encryption scheme for EHRs, which allowed patients to control the access to their EHRs.</p>
<p>In addition to the encryption protection, the authenticity of EHRs should be considered in the sharing process of EHRs. Authentication is crucial in blockchain [<xref ref-type="bibr" rid="ref-13">13</xref>] and cannot be ignored in blockchain-based EHRs [<xref ref-type="bibr" rid="ref-14">14</xref>]. Considering the characteristics of blockchain, many researchers proposed distributed signature schemes for blockchain-based EHRs. Tang et al. [<xref ref-type="bibr" rid="ref-14">14</xref>] constructed an identity-based signature scheme with multiple authorities to verify the identity of the signer and ensure the authenticity of the EHRs. Guo et al. [<xref ref-type="bibr" rid="ref-15">15</xref>] and Sun et al. [<xref ref-type="bibr" rid="ref-16">16</xref>] designed an attribute-based signature scheme with multiple authorities, which allowed the signer to hide their identity information when signing. However, these signature schemes lacked confidentiality of EHRs.</p>
<p>In order to satisfy both confidentiality and authenticity, in 1997, Zheng [<xref ref-type="bibr" rid="ref-17">17</xref>] first proposed the idea of signcryption, which could simultaneously realize the functions of signing and encrypting plaintext messages. Then, Malone-Lee [<xref ref-type="bibr" rid="ref-18">18</xref>] put forward the first practical identity-based signcryption scheme. Although many researchers have proposed more secure and efficient identity-based signcryption schemes [<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-20">20</xref>], these schemes have only considered the case that a message was sent to one receiver. In 2006, Duan et al. [<xref ref-type="bibr" rid="ref-21">21</xref>] first proposed a multi-receiver identity-based signcryption scheme to send the same message to multiple receivers. In their scheme, the sender was only required to perform one pairing computation and n scalar multiplication in the signcryption phase, and each receiver could verify the validity of the message. Since then, the identity-based signcryption scheme for multiple receivers have been significantly improved based on the consideration of the efficiency and security properties [<xref ref-type="bibr" rid="ref-22">22</xref>&#x2013;<xref ref-type="bibr" rid="ref-24">24</xref>].</p>
<p>In all the above identity-based signcryption schemes, only one key generation center (KGC) generates secret keys for all users, and the users must trust KGC unconditionally. However, KGC can use the public identity of users in the system to calculate the user&#x2019;s secret key. Therefore, it can forge the sender&#x2019;s signcryption or decrypt the signcryption obtained by the receiver. In addition, KGC may face a single point of failure.</p>
</sec>
<sec id="s1_2">
<label>1.2</label>
<title>Our Contributions</title>
<p>A centralized KGC will have security risks, and the signcryption scheme of patient&#x2019;s medical data in the blockchain was seldom explored. To enable patients to share the EHRs safely in the blockchain, in this paper, we made the following contributions.</p>
<p>Firstly, the distributed key generation method [<xref ref-type="bibr" rid="ref-13">13</xref>] is introduced into a centralized identity-based signcryption (IBSC) scheme. For multiple receivers, an identity-based signcryption with multiple authorities (MA-IBSC) scheme is developed. N authorities randomly construct their own polynomials and all authorities cooperatively generate the master secret key of the system by secret sharing, and embed their own secret key into the user&#x2019;s secret key. Therefore, the scheme can resist the collusion attack of N-1 corrupt authorities. In addition, after signing EHRs, the patient encrypts the EHRs with the identities of other users whom the patient wants to share the data with. Thus, only authorized receivers can decrypt and access the EHRs. In this way, the authenticity of EHRs is ensured by verifying the signer&#x2019;s signature. Furthermore, in the signcryption process, identity information of receivers can be hidden and the relationships between the patient and receivers are not exposed in the blockchain.</p>
<p>Secondly, signcrypted EHRs are directly uploaded to the blockchain, other nodes cannot verify them. Based on some adjustments of the on-chain and off-chain storage model [<xref ref-type="bibr" rid="ref-13">13</xref>], the signcrypted EHRs are recommended to be stored in the patient&#x2019;s own off-blockchain database, so that the patient can control the EHRs. Then the patient extracts the storage address, signs it with the private key, and uploads it to the blockchain. Other users (nodes) in the system can verify the validity of the given address based on the patient&#x2019;s public key.</p>
<p>Thirdly, based on the assumptions of computational Diffie-Hellman (CDH) problem and Bilinear Computational Diffie-Hellman (BCDH) problem, it is proved that our proposed sigcryption scheme is secure in the random oracle model. In other words, the unforgeability and confidentiality of signcryption are realized. Furthermore, the performance of the scheme is evaluated based on the two indices of signcryption efficiency and signcryption attributes.</p>
<p>The remainder of this paper is organized as follows. Section 2 presents the preliminaries, including Lagrange interpolation, bilinear map, computational assumption, syntax and secure model of the signcryption scheme. In Section 3, the EHRs system model in blockchain is described in detail. Section 4 demonstrates the specific MA-IBSC scheme for multiple receivers. The security analysis and performance evaluation are provided in Section 5. Finally, the conclusion is drawn in Section 6.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Preliminaries</title>
<sec id="s2_1">
<label>2.1</label>
<title>Lagrange Interpolation</title>
<p>For a polynomial <inline-formula id="ieqn-1">
<alternatives><inline-graphic xlink:href="ieqn-1.png"/><tex-math id="tex-ieqn-1"><![CDATA[$f$]]></tex-math><mml:math id="mml-ieqn-1"><mml:mi>f</mml:mi></mml:math>
</alternatives></inline-formula> of degree <inline-formula id="ieqn-2">
<alternatives><inline-graphic xlink:href="ieqn-2.png"/><tex-math id="tex-ieqn-2"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-2"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula>, given <inline-formula id="ieqn-3">
<alternatives><inline-graphic xlink:href="ieqn-3.png"/><tex-math id="tex-ieqn-3"><![CDATA[$n + 1$]]></tex-math><mml:math id="mml-ieqn-3"><mml:mi>n</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mn>1</mml:mn></mml:math>
</alternatives></inline-formula> <inline-formula id="ieqn-4">
<alternatives><inline-graphic xlink:href="ieqn-4.png"/><tex-math id="tex-ieqn-4"><![CDATA[$\left( {{x_i},{y_i}} \right)\left( {i = 1,2, \ldots ,n + 1} \right)$]]></tex-math><mml:math id="mml-ieqn-4"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</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>&#x002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> on <inline-formula id="ieqn-5">
<alternatives><inline-graphic xlink:href="ieqn-5.png"/><tex-math id="tex-ieqn-5"><![CDATA[$f$]]></tex-math><mml:math id="mml-ieqn-5"><mml:mi>f</mml:mi></mml:math>
</alternatives></inline-formula>, we can uniquely determine a polynomial <inline-formula id="ieqn-6">
<alternatives><inline-graphic xlink:href="ieqn-6.png"/><tex-math id="tex-ieqn-6"><![CDATA[$f\left( x \right) = \mathop \sum \nolimits_{i = 1}^n {y_i}\left( {\mathop \prod \nolimits_{1 \le j \ne i \le n} \displaystyle{{x - {x_j}} \over {{x_i} - {x_j}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-6"><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mo movablelimits="false">&#x220F;</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Bilinear Map</title>
<p>Let <inline-formula id="ieqn-7">
<alternatives><inline-graphic xlink:href="ieqn-7.png"/><tex-math id="tex-ieqn-7"><![CDATA[$p$]]></tex-math><mml:math id="mml-ieqn-7"><mml:mi>p</mml:mi></mml:math>
</alternatives></inline-formula> be a large prime number, <inline-formula id="ieqn-8">
<alternatives><inline-graphic xlink:href="ieqn-8.png"/><tex-math id="tex-ieqn-8"><![CDATA[${G_1}{\rm \; }$]]></tex-math><mml:math id="mml-ieqn-8"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow></mml:math>
</alternatives></inline-formula>and <inline-formula id="ieqn-9">
<alternatives><inline-graphic xlink:href="ieqn-9.png"/><tex-math id="tex-ieqn-9"><![CDATA[${G_2}$]]></tex-math><mml:math id="mml-ieqn-9"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> be two multiplicative cyclic groups of order <inline-formula id="ieqn-10">
<alternatives><inline-graphic xlink:href="ieqn-10.png"/><tex-math id="tex-ieqn-10"><![CDATA[$p$]]></tex-math><mml:math id="mml-ieqn-10"><mml:mi>p</mml:mi></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-11">
<alternatives><inline-graphic xlink:href="ieqn-11.png"/><tex-math id="tex-ieqn-11"><![CDATA[$g$]]></tex-math><mml:math id="mml-ieqn-11"><mml:mi>g</mml:mi></mml:math>
</alternatives></inline-formula> be the generator of <inline-formula id="ieqn-12">
<alternatives><inline-graphic xlink:href="ieqn-12.png"/><tex-math id="tex-ieqn-12"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-12"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. We say that <inline-formula id="ieqn-13">
<alternatives><inline-graphic xlink:href="ieqn-13.png"/><tex-math id="tex-ieqn-13"><![CDATA[$e:{G_1} \times {G_1} \to {G_2}$]]></tex-math><mml:math id="mml-ieqn-13"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is not a bilinear map unless <inline-formula id="ieqn-14">
<alternatives><inline-graphic xlink:href="ieqn-14.png"/><tex-math id="tex-ieqn-14"><![CDATA[$e$]]></tex-math><mml:math id="mml-ieqn-14"><mml:mi>e</mml:mi></mml:math>
</alternatives></inline-formula> satisfies the following properties:</p>
<list list-type="order">
<list-item><p> Bilinearity: for all <inline-formula id="ieqn-15">
<alternatives><inline-graphic xlink:href="ieqn-15.png"/><tex-math id="tex-ieqn-15"><![CDATA[$u,v \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-15"><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-16">
<alternatives><inline-graphic xlink:href="ieqn-16.png"/><tex-math id="tex-ieqn-16"><![CDATA[$a,b \in {Z_p}$]]></tex-math><mml:math id="mml-ieqn-16"><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Z</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-17">
<alternatives><inline-graphic xlink:href="ieqn-17.png"/><tex-math id="tex-ieqn-17"><![CDATA[$e\left( {{u^a},{v^b}} \right) = e{\left( {u,v} \right)^{ab}}$]]></tex-math><mml:math id="mml-ieqn-17"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>u</mml:mi><mml:mi>a</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>v</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>;</p></list-item>
<list-item><p>2) Non-degeneracy: there exists <inline-formula id="ieqn-18">
<alternatives><inline-graphic xlink:href="ieqn-18.png"/><tex-math id="tex-ieqn-18"><![CDATA[$u,v \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-18"><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, such that <inline-formula id="ieqn-19">
<alternatives><inline-graphic xlink:href="ieqn-19.png"/><tex-math id="tex-ieqn-19"><![CDATA[$e\left( {u,v} \right) \ne 1$]]></tex-math><mml:math id="mml-ieqn-19"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2260;</mml:mo><mml:mn>1</mml:mn></mml:math>
</alternatives></inline-formula>. That is to say, mapping <inline-formula id="ieqn-20">
<alternatives><inline-graphic xlink:href="ieqn-20.png"/><tex-math id="tex-ieqn-20"><![CDATA[$e$]]></tex-math><mml:math id="mml-ieqn-20"><mml:mi>e</mml:mi></mml:math>
</alternatives></inline-formula> will not map all element pairs in <inline-formula id="ieqn-21">
<alternatives><inline-graphic xlink:href="ieqn-21.png"/><tex-math id="tex-ieqn-21"><![CDATA[${G_1} \times {G_1}$]]></tex-math><mml:math id="mml-ieqn-21"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to the identity element of <inline-formula id="ieqn-22">
<alternatives><inline-graphic xlink:href="ieqn-22.png"/><tex-math id="tex-ieqn-22"><![CDATA[${G_2}$]]></tex-math><mml:math id="mml-ieqn-22"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>;</p></list-item>
<list-item><p>Computability: for all<inline-formula id="ieqn-23">
<alternatives><inline-graphic xlink:href="ieqn-23.png"/><tex-math id="tex-ieqn-23"><![CDATA[${\rm \; }u,v \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-23"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, a valid algorithm can be used to calculate <inline-formula id="ieqn-24">
<alternatives><inline-graphic xlink:href="ieqn-24.png"/><tex-math id="tex-ieqn-24"><![CDATA[$e\left( {u,v} \right)$]]></tex-math><mml:math id="mml-ieqn-24"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>.</p></list-item></list>
</sec>
<sec id="s2_3">
<label>2.3</label>
<title>Computational Assumption</title>
<p>The security of the MA-IBSC scheme for multiple receivers is mainly based on the assumptions of Computational Diffie-Hellman (CDH) problem and Bilinear Computational Diffie-Hellman (BCDH) problem.</p>
<p>1) Computational Diffie-Hellman (CDH) problem. After <inline-formula id="ieqn-25">
<alternatives><inline-graphic xlink:href="ieqn-25.png"/><tex-math id="tex-ieqn-25"><![CDATA[$a,b \in Z_p^{\rm *}$]]></tex-math><mml:math id="mml-ieqn-25"><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math>
</alternatives></inline-formula> are randomly selected, for the given <inline-formula id="ieqn-26">
<alternatives><inline-graphic xlink:href="ieqn-26.png"/><tex-math id="tex-ieqn-26"><![CDATA[$g,{g^a},{g^b} \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-26"><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>a</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-27">
<alternatives><inline-graphic xlink:href="ieqn-27.png"/><tex-math id="tex-ieqn-27"><![CDATA[${g^{ab}} \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-27"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is calculated. If there is no probabilistic polynomial time (PPT) adversary A to calculate <inline-formula id="ieqn-28">
<alternatives><inline-graphic xlink:href="ieqn-28.png"/><tex-math id="tex-ieqn-28"><![CDATA[${g^{ab}} \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-28"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> with the probability advantage that cannot be ignored, we call CDH in group <inline-formula id="ieqn-29">
<alternatives><inline-graphic xlink:href="ieqn-29.png"/><tex-math id="tex-ieqn-29"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-29"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> the assumption of the difficult problem.</p>
<p>2) Bilinear Computational Diffie-Hellman (BCDH) problem. After <inline-formula id="ieqn-30">
<alternatives><inline-graphic xlink:href="ieqn-30.png"/><tex-math id="tex-ieqn-30"><![CDATA[$a,b,c \in Z_p^{\rm *}$]]></tex-math><mml:math id="mml-ieqn-30"><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:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math>
</alternatives></inline-formula> are randomly selected, for the given <inline-formula id="ieqn-31">
<alternatives><inline-graphic xlink:href="ieqn-31.png"/><tex-math id="tex-ieqn-31"><![CDATA[$g,{g^a},{g^b},{g^c} \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-31"><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>a</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-32">
<alternatives><inline-graphic xlink:href="ieqn-32.png"/><tex-math id="tex-ieqn-32"><![CDATA[$e{\left( {g,g} \right)^{abc}} \in {G_2}$]]></tex-math><mml:math id="mml-ieqn-32"><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is calculated. If there is no probabilistic polynomial time (PPT) adversary A to calculate <inline-formula id="ieqn-33">
<alternatives><inline-graphic xlink:href="ieqn-33.png"/><tex-math id="tex-ieqn-33"><![CDATA[$e{\left( {g,g} \right)^{abc}} \in {G_2}$]]></tex-math><mml:math id="mml-ieqn-33"><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> with the probability advantage that cannot be ignored, we call BCDH in group <inline-formula id="ieqn-34">
<alternatives><inline-graphic xlink:href="ieqn-34.png"/><tex-math id="tex-ieqn-34"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-34"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> the assumption of the difficult problem.</p>
</sec>
<sec id="s2_4">
<label>2.4</label>
<title>Syntax of the Signcryption Scheme</title>
<p>The identity-based signcryption with multiple authorities (MA-IBSC) scheme for multiple receivers involves the following seven algorithms:</p>
<p><bold>Global Setup:</bold> The EHRs server takes a security parameter <inline-formula id="ieqn-35">
<alternatives><inline-graphic xlink:href="ieqn-35.png"/><tex-math id="tex-ieqn-35"><![CDATA[$\lambda$]]></tex-math><mml:math id="mml-ieqn-35"><mml:mi>&#x03BB;</mml:mi></mml:math>
</alternatives></inline-formula> as the input and then outputs system public parameters <inline-formula id="ieqn-36">
<alternatives><inline-graphic xlink:href="ieqn-36.png"/><tex-math id="tex-ieqn-36"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-36"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Authority Setup:</bold> All authorities perform this algorithm interactively. They input public parameters <inline-formula id="ieqn-37">
<alternatives><inline-graphic xlink:href="ieqn-37.png"/><tex-math id="tex-ieqn-37"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-37"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and their identity <inline-formula id="ieqn-38">
<alternatives><inline-graphic xlink:href="ieqn-38.png"/><tex-math id="tex-ieqn-38"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-38"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, then generate their respective secret key <inline-formula id="ieqn-39">
<alternatives><inline-graphic xlink:href="ieqn-39.png"/><tex-math id="tex-ieqn-39"><![CDATA[$s{k_{I{D_i}}}$]]></tex-math><mml:math id="mml-ieqn-39"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, system master secret key <inline-formula id="ieqn-40">
<alternatives><inline-graphic xlink:href="ieqn-40.png"/><tex-math id="tex-ieqn-40"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-40"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and master public key <inline-formula id="ieqn-41">
<alternatives><inline-graphic xlink:href="ieqn-41.png"/><tex-math id="tex-ieqn-41"><![CDATA[$PK$]]></tex-math><mml:math id="mml-ieqn-41"><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>KeyGen:</bold> This algorithm is also cooperatively controlled by all authorities. They input the public parameters <inline-formula id="ieqn-42">
<alternatives><inline-graphic xlink:href="ieqn-42.png"/><tex-math id="tex-ieqn-42"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-42"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, their respective secret key <inline-formula id="ieqn-43">
<alternatives><inline-graphic xlink:href="ieqn-43.png"/><tex-math id="tex-ieqn-43"><![CDATA[$s{k_{I{D_i}}}$]]></tex-math><mml:math id="mml-ieqn-43"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, and identity <inline-formula id="ieqn-44">
<alternatives><inline-graphic xlink:href="ieqn-44.png"/><tex-math id="tex-ieqn-44"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-44"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of a user, and then return secret key <inline-formula id="ieqn-45">
<alternatives><inline-graphic xlink:href="ieqn-45.png"/><tex-math id="tex-ieqn-45"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-45"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to the user.</p>
<p><bold>User-Sign:</bold> User <inline-formula id="ieqn-46">
<alternatives><inline-graphic xlink:href="ieqn-46.png"/><tex-math id="tex-ieqn-46"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-46"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> takes public parameters <inline-formula id="ieqn-47">
<alternatives><inline-graphic xlink:href="ieqn-47.png"/><tex-math id="tex-ieqn-47"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-47"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, his/her secret key <inline-formula id="ieqn-48">
<alternatives><inline-graphic xlink:href="ieqn-48.png"/><tex-math id="tex-ieqn-48"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-48"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and message <inline-formula id="ieqn-49">
<alternatives><inline-graphic xlink:href="ieqn-49.png"/><tex-math id="tex-ieqn-49"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-49"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> as input to run this algorithm with, and then outputs the signature <inline-formula id="ieqn-50">
<alternatives><inline-graphic xlink:href="ieqn-50.png"/><tex-math id="tex-ieqn-50"><![CDATA[${\sigma _i}$]]></tex-math><mml:math id="mml-ieqn-50"><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-51">
<alternatives><inline-graphic xlink:href="ieqn-51.png"/><tex-math id="tex-ieqn-51"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-51"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>User-Encrypt:</bold> User <inline-formula id="ieqn-52">
<alternatives><inline-graphic xlink:href="ieqn-52.png"/><tex-math id="tex-ieqn-52"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-52"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> usually executes this algorithm after the User-Sign algorithm. User <inline-formula id="ieqn-53">
<alternatives><inline-graphic xlink:href="ieqn-53.png"/><tex-math id="tex-ieqn-53"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-53"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> inputs the public parameters <inline-formula id="ieqn-54">
<alternatives><inline-graphic xlink:href="ieqn-54.png"/><tex-math id="tex-ieqn-54"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-54"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, the signature <inline-formula id="ieqn-55">
<alternatives><inline-graphic xlink:href="ieqn-55.png"/><tex-math id="tex-ieqn-55"><![CDATA[${\sigma _i}$]]></tex-math><mml:math id="mml-ieqn-55"><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-56">
<alternatives><inline-graphic xlink:href="ieqn-56.png"/><tex-math id="tex-ieqn-56"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-56"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>, and the public keys of the receivers, and then outputs the signcryption message <inline-formula id="ieqn-57">
<alternatives><inline-graphic xlink:href="ieqn-57.png"/><tex-math id="tex-ieqn-57"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-57"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-58">
<alternatives><inline-graphic xlink:href="ieqn-58.png"/><tex-math id="tex-ieqn-58"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-58"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Verify:</bold> To verify the signature <inline-formula id="ieqn-59">
<alternatives><inline-graphic xlink:href="ieqn-59.png"/><tex-math id="tex-ieqn-59"><![CDATA[${\sigma _i}$]]></tex-math><mml:math id="mml-ieqn-59"><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-60">
<alternatives><inline-graphic xlink:href="ieqn-60.png"/><tex-math id="tex-ieqn-60"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-60"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>, other users take the signer&#x2019;s identity <inline-formula id="ieqn-61">
<alternatives><inline-graphic xlink:href="ieqn-61.png"/><tex-math id="tex-ieqn-61"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-61"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-62">
<alternatives><inline-graphic xlink:href="ieqn-62.png"/><tex-math id="tex-ieqn-62"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-62"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-63">
<alternatives><inline-graphic xlink:href="ieqn-63.png"/><tex-math id="tex-ieqn-63"><![CDATA[${\sigma _i}$]]></tex-math><mml:math id="mml-ieqn-63"><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> as input to carry out this algorithm. If the signature<inline-formula id="ieqn-64">
<alternatives><inline-graphic xlink:href="ieqn-64.png"/><tex-math id="tex-ieqn-64"><![CDATA[${\rm \; }{\sigma _i}$]]></tex-math><mml:math id="mml-ieqn-64"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is valid, it returns <inline-formula id="ieqn-65">
<alternatives><inline-graphic xlink:href="ieqn-65.png"/><tex-math id="tex-ieqn-65"><![CDATA[$Accept$]]></tex-math><mml:math id="mml-ieqn-65"><mml:mi>A</mml:mi><mml:mi>c</mml:mi><mml:mi>c</mml:mi><mml:mi>e</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, otherwise returns <inline-formula id="ieqn-66">
<alternatives><inline-graphic xlink:href="ieqn-66.png"/><tex-math id="tex-ieqn-66"><![CDATA[$Reject$]]></tex-math><mml:math id="mml-ieqn-66"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>j</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Receiver-Decrypt:</bold> Only the receivers picked by the user can run the algorithm to decrypt <inline-formula id="ieqn-67">
<alternatives><inline-graphic xlink:href="ieqn-67.png"/><tex-math id="tex-ieqn-67"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-67"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula>. Any one of the receivers inputs public parameter <inline-formula id="ieqn-68">
<alternatives><inline-graphic xlink:href="ieqn-68.png"/><tex-math id="tex-ieqn-68"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-68"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-69">
<alternatives><inline-graphic xlink:href="ieqn-69.png"/><tex-math id="tex-ieqn-69"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-69"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula>, and the user&#x2019;s secret key to the algorithm, and then obtains <inline-formula id="ieqn-70">
<alternatives><inline-graphic xlink:href="ieqn-70.png"/><tex-math id="tex-ieqn-70"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-70"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> and the sharer&#x2019;s <inline-formula id="ieqn-71">
<alternatives><inline-graphic xlink:href="ieqn-71.png"/><tex-math id="tex-ieqn-71"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-71"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
</sec>
<sec id="s2_5">
<label>2.5</label>
<title>Security Model</title>
<p>Definition 1 and Definition 2 respectively introduce the two security attributes of the adapted signcryption scheme: unforgeability and confidentiality.</p>
<p><bold>Definition 1:</bold> Suppose F is a forger, &#x2127;   is defined as the MA-IBSC scheme for multiple receivers. The game between F and Challenger C is described as follows:</p>
<p><bold>Global Setup:</bold> Challenger C takes a security parameter <inline-formula id="ieqn-73">
<alternatives><inline-graphic xlink:href="ieqn-73.png"/><tex-math id="tex-ieqn-73"><![CDATA[$\lambda$]]></tex-math><mml:math id="mml-ieqn-73"><mml:mi>&#x03BB;</mml:mi></mml:math>
</alternatives></inline-formula> as input, runs global setup algorithm, then generates <inline-formula id="ieqn-74">
<alternatives><inline-graphic xlink:href="ieqn-74.png"/><tex-math id="tex-ieqn-74"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-74"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and transmits it to F.</p>
<p><bold>Authority Setup:</bold> Challenger C runs authority setup algorithm to output secret key <inline-formula id="ieqn-75">
<alternatives><inline-graphic xlink:href="ieqn-75.png"/><tex-math id="tex-ieqn-75"><![CDATA[$s{k_{I{D_i}}}$]]></tex-math><mml:math id="mml-ieqn-75"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> for each authority <inline-formula id="ieqn-76">
<alternatives><inline-graphic xlink:href="ieqn-76.png"/><tex-math id="tex-ieqn-76"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-76"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-77">
<alternatives><inline-graphic xlink:href="ieqn-77.png"/><tex-math id="tex-ieqn-77"><![CDATA[$i \in \left\{ {1,2, \ldots N} \right\}$]]></tex-math><mml:math id="mml-ieqn-77"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Then Forger F outputs his/her target identity <inline-formula id="ieqn-78">
<alternatives><inline-graphic xlink:href="ieqn-78.png"/><tex-math id="tex-ieqn-78"><![CDATA[$i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-78"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Queries:</bold> Forger F performs the following four queries to Challenger C:</p>
<list list-type="simple">
<list-item><label>-</label><p>Secret key queries: F asks C for the secret key of some authorities <inline-formula id="ieqn-79">
<alternatives><inline-graphic xlink:href="ieqn-79.png"/><tex-math id="tex-ieqn-79"><![CDATA[$I{D_{i \in {Q_S}}}$]]></tex-math><mml:math id="mml-ieqn-79"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-80">
<alternatives><inline-graphic xlink:href="ieqn-80.png"/><tex-math id="tex-ieqn-80"><![CDATA[${Q_S} \subset \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-80"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2282;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> represents the index set of corrupt authorities, and then Challenger C outputs <inline-formula id="ieqn-81">
<alternatives><inline-graphic xlink:href="ieqn-81.png"/><tex-math id="tex-ieqn-81"><![CDATA[$s{k_{I{D_{i \in {Q_S}}}}}$]]></tex-math><mml:math id="mml-ieqn-81"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to F.</p></list-item>
<list-item><label>-</label><p>Key generation queries: When C receives the private key query about identity <inline-formula id="ieqn-82">
<alternatives><inline-graphic xlink:href="ieqn-82.png"/><tex-math id="tex-ieqn-82"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-82"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C runs the key generation algorithm and returns <inline-formula id="ieqn-83">
<alternatives><inline-graphic xlink:href="ieqn-83.png"/><tex-math id="tex-ieqn-83"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-83"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to F.</p></list-item>
<list-item><label>-</label><p>User-sign queries: When C receives the signature query about message <inline-formula id="ieqn-84">
<alternatives><inline-graphic xlink:href="ieqn-84.png"/><tex-math id="tex-ieqn-84"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-84"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> and identity <inline-formula id="ieqn-85">
<alternatives><inline-graphic xlink:href="ieqn-85.png"/><tex-math id="tex-ieqn-85"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-85"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C returns <inline-formula id="ieqn-86">
<alternatives><inline-graphic xlink:href="ieqn-86.png"/><tex-math id="tex-ieqn-86"><![CDATA[${{\rm \sigma }_i}$]]></tex-math><mml:math id="mml-ieqn-86"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to F.</p></list-item>
<list-item><label>-</label><p>User-encrypt queries: To forge a signcryption, the user-encrypt query always follows user-sign query. When C receives the encryption query about <inline-formula id="ieqn-87">
<alternatives><inline-graphic xlink:href="ieqn-87.png"/><tex-math id="tex-ieqn-87"><![CDATA[$\left( {M,R,i{d_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-87"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-88">
<alternatives><inline-graphic xlink:href="ieqn-88.png"/><tex-math id="tex-ieqn-88"><![CDATA[$R$]]></tex-math><mml:math id="mml-ieqn-88"><mml:mi>R</mml:mi></mml:math>
</alternatives></inline-formula> represents the identity set of the receivers, namely, <inline-formula id="ieqn-89">
<alternatives><inline-graphic xlink:href="ieqn-89.png"/><tex-math id="tex-ieqn-89"><![CDATA[$R = \left\{ {i{d_l}} \right\}_{l = 1}^n$]]></tex-math><mml:math id="mml-ieqn-89"><mml:mi>R</mml:mi><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula>, then C calculates signcryption <inline-formula id="ieqn-90">
<alternatives><inline-graphic xlink:href="ieqn-90.png"/><tex-math id="tex-ieqn-90"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-90"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> and returns it to F.</p></list-item></list>
<p><bold>Forgery:</bold> Forger F finally outputs a new signcryption <inline-formula id="ieqn-91">
<alternatives><inline-graphic xlink:href="ieqn-91.png"/><tex-math id="tex-ieqn-91"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-91"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> and the public key pair <inline-formula id="ieqn-92">
<alternatives><inline-graphic xlink:href="ieqn-92.png"/><tex-math id="tex-ieqn-92"><![CDATA[$\left( {i{d_1},s{k_{i{d_1}}}} \right),\left( {i{d_2},s{k_{i{d_2}}}} \right), \ldots ,\left( {i{d_n},s{k_{i{d_n}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-92"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-93">
<alternatives><inline-graphic xlink:href="ieqn-93.png"/><tex-math id="tex-ieqn-93"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-93"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> receivers. If <inline-formula id="ieqn-94">
<alternatives><inline-graphic xlink:href="ieqn-94.png"/><tex-math id="tex-ieqn-94"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-94"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> is the signcryption of <inline-formula id="ieqn-95">
<alternatives><inline-graphic xlink:href="ieqn-95.png"/><tex-math id="tex-ieqn-95"><![CDATA[$i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-95"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to the message <inline-formula id="ieqn-96">
<alternatives><inline-graphic xlink:href="ieqn-96.png"/><tex-math id="tex-ieqn-96"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-96"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> and can be correctly decrypted and verified by receivers in set <inline-formula id="ieqn-97">
<alternatives><inline-graphic xlink:href="ieqn-97.png"/><tex-math id="tex-ieqn-97"><![CDATA[$R = \left\{ {i{d_l}} \right\}_{l = 1}^n$]]></tex-math><mml:math id="mml-ieqn-97"><mml:mi>R</mml:mi><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula>, then <inline-formula id="ieqn-98">
<alternatives><inline-graphic xlink:href="ieqn-98.png"/><tex-math id="tex-ieqn-98"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-98"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> is a valid signcryption and F wins the game. The limitations here are described below. F cannot query the <inline-formula id="ieqn-99">
<alternatives><inline-graphic xlink:href="ieqn-99.png"/><tex-math id="tex-ieqn-99"><![CDATA[$s{k_{i{d_{{i^*}}}}}$]]></tex-math><mml:math id="mml-ieqn-99"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> with identity <inline-formula id="ieqn-100">
<alternatives><inline-graphic xlink:href="ieqn-100.png"/><tex-math id="tex-ieqn-100"><![CDATA[$i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-100"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> through the key generation query, and <inline-formula id="ieqn-101">
<alternatives><inline-graphic xlink:href="ieqn-101.png"/><tex-math id="tex-ieqn-101"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-101"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> cannot be generated by the User-Sign and User-Encrypt algorithm.</p>
<p><bold>Definition 2:</bold> Suppose that A is an adversary, &#x2127; is defined as the MA-IBSC scheme for multiple receivers. The game between Adversary A and Challenger C is introduced as follows:</p>
<p><bold>Global Setup:</bold> Challenger C takes a security parameter <inline-formula id="ieqn-103">
<alternatives><inline-graphic xlink:href="ieqn-103.png"/><tex-math id="tex-ieqn-103"><![CDATA[$\lambda$]]></tex-math><mml:math id="mml-ieqn-103"><mml:mi>&#x03BB;</mml:mi></mml:math>
</alternatives></inline-formula> as input, runs global setup algorithm, and then generates <inline-formula id="ieqn-104">
<alternatives><inline-graphic xlink:href="ieqn-104.png"/><tex-math id="tex-ieqn-104"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-104"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and transmits it to A.</p>
<p><bold>Authority Setup:</bold> Challenger C runs authority setup algorithm to output secret key <inline-formula id="ieqn-105">
<alternatives><inline-graphic xlink:href="ieqn-105.png"/><tex-math id="tex-ieqn-105"><![CDATA[$s{k_{I{D_i}}}$]]></tex-math><mml:math id="mml-ieqn-105"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> for each authority <inline-formula id="ieqn-106">
<alternatives><inline-graphic xlink:href="ieqn-106.png"/><tex-math id="tex-ieqn-106"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-106"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-107">
<alternatives><inline-graphic xlink:href="ieqn-107.png"/><tex-math id="tex-ieqn-107"><![CDATA[$i \in \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-107"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Adversary A outputs target identities <inline-formula id="ieqn-108">
<alternatives><inline-graphic xlink:href="ieqn-108.png"/><tex-math id="tex-ieqn-108"><![CDATA[$i{d_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-108"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-109">
<alternatives><inline-graphic xlink:href="ieqn-109.png"/><tex-math id="tex-ieqn-109"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-109"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> receivers, where <inline-formula id="ieqn-110">
<alternatives><inline-graphic xlink:href="ieqn-110.png"/><tex-math id="tex-ieqn-110"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-110"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Phase 1:</bold> Adversary A performs the following five queries to Challenger C:</p>
<list list-type="simple">
<list-item><label>-</label><p>Secret key queries: A asks C for the secret key of some authorities <inline-formula id="ieqn-111">
<alternatives><inline-graphic xlink:href="ieqn-111.png"/><tex-math id="tex-ieqn-111"><![CDATA[$I{D_{i \in {Q_S}}}$]]></tex-math><mml:math id="mml-ieqn-111"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-112">
<alternatives><inline-graphic xlink:href="ieqn-112.png"/><tex-math id="tex-ieqn-112"><![CDATA[${Q_S} \subset \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-112"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2282;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> represents the index set of corrupt authorities, and then Challenger C outputs <inline-formula id="ieqn-113">
<alternatives><inline-graphic xlink:href="ieqn-113.png"/><tex-math id="tex-ieqn-113"><![CDATA[$s{k_{I{D_{i \in {Q_S}}}}}$]]></tex-math><mml:math id="mml-ieqn-113"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to A.</p></list-item>
<list-item><label>-</label><p>Key generation queries: When C receives the private key query about identity <inline-formula id="ieqn-114">
<alternatives><inline-graphic xlink:href="ieqn-114.png"/><tex-math id="tex-ieqn-114"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-114"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C runs the key generation algorithm and returns <inline-formula id="ieqn-115">
<alternatives><inline-graphic xlink:href="ieqn-115.png"/><tex-math id="tex-ieqn-115"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-115"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to A.</p></list-item>
<list-item><label>-</label><p>User-sign queries: When C receives the signature query about message <inline-formula id="ieqn-116">
<alternatives><inline-graphic xlink:href="ieqn-116.png"/><tex-math id="tex-ieqn-116"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-116"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> and identity <inline-formula id="ieqn-117">
<alternatives><inline-graphic xlink:href="ieqn-117.png"/><tex-math id="tex-ieqn-117"><![CDATA[$i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-117"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-118">
<alternatives><inline-graphic xlink:href="ieqn-118.png"/><tex-math id="tex-ieqn-118"><![CDATA[$i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-118"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is the user being attacked, then C returns <inline-formula id="ieqn-119">
<alternatives><inline-graphic xlink:href="ieqn-119.png"/><tex-math id="tex-ieqn-119"><![CDATA[${{\rm \sigma }_i}$]]></tex-math><mml:math id="mml-ieqn-119"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to A.</p></list-item>
<list-item><label>-</label><p>User-encrypt queries: The user-encrypt query always follows the user-sign query. When C receives the encryption query about <inline-formula id="ieqn-120">
<alternatives><inline-graphic xlink:href="ieqn-120.png"/><tex-math id="tex-ieqn-120"><![CDATA[$\left( {M,R,i{d_{{i^*}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-120"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-121">
<alternatives><inline-graphic xlink:href="ieqn-121.png"/><tex-math id="tex-ieqn-121"><![CDATA[$R$]]></tex-math><mml:math id="mml-ieqn-121"><mml:mi>R</mml:mi></mml:math>
</alternatives></inline-formula> represents the identity set of the receivers, namely <inline-formula id="ieqn-122">
<alternatives><inline-graphic xlink:href="ieqn-122.png"/><tex-math id="tex-ieqn-122"><![CDATA[$R = \left\{ {i{d_l}} \right\}_{l = 1}^n$]]></tex-math><mml:math id="mml-ieqn-122"><mml:mi>R</mml:mi><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula>, then C calculates signcryption <inline-formula id="ieqn-123">
<alternatives><inline-graphic xlink:href="ieqn-123.png"/><tex-math id="tex-ieqn-123"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-123"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> and returns to A.</p></list-item>
<list-item><label>-</label><p>Receiver-Decrypt-and-Verify queries: When C receives the decryption and verify query together about <inline-formula id="ieqn-124">
<alternatives><inline-graphic xlink:href="ieqn-124.png"/><tex-math id="tex-ieqn-124"><![CDATA[$\left( {SC,i{d_l},i{d_{{i^*}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-124"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>S</mml:mi><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-125">
<alternatives><inline-graphic xlink:href="ieqn-125.png"/><tex-math id="tex-ieqn-125"><![CDATA[$i{d_l} \in R$]]></tex-math><mml:math id="mml-ieqn-125"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mi>R</mml:mi></mml:math>
</alternatives></inline-formula>, if <inline-formula id="ieqn-126">
<alternatives><inline-graphic xlink:href="ieqn-126.png"/><tex-math id="tex-ieqn-126"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-126"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> is a valid singcryption, then C decrypts it, verifies <inline-formula id="ieqn-127">
<alternatives><inline-graphic xlink:href="ieqn-127.png"/><tex-math id="tex-ieqn-127"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-127"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>, and returns <inline-formula id="ieqn-128">
<alternatives><inline-graphic xlink:href="ieqn-128.png"/><tex-math id="tex-ieqn-128"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-128"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> to A.</p></list-item></list>
<p><bold>Challenge:</bold> A outputs a target plaintext pair <inline-formula id="ieqn-129">
<alternatives><inline-graphic xlink:href="ieqn-129.png"/><tex-math id="tex-ieqn-129"><![CDATA[$\left( {{M_0},{M_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-129"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and a private key <inline-formula id="ieqn-130">
<alternatives><inline-graphic xlink:href="ieqn-130.png"/><tex-math id="tex-ieqn-130"><![CDATA[$s{k_{i{d_{{i^*}}}}}$]]></tex-math><mml:math id="mml-ieqn-130"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. When Challenger C receives <inline-formula id="ieqn-131">
<alternatives><inline-graphic xlink:href="ieqn-131.png"/><tex-math id="tex-ieqn-131"><![CDATA[$\left( {{M_0},{M_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-131"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-132">
<alternatives><inline-graphic xlink:href="ieqn-132.png"/><tex-math id="tex-ieqn-132"><![CDATA[$s{k_{i{d_{{i^*}}}}}$]]></tex-math><mml:math id="mml-ieqn-132"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C randomly selects a message <inline-formula id="ieqn-133">
<alternatives><inline-graphic xlink:href="ieqn-133.png"/><tex-math id="tex-ieqn-133"><![CDATA[${M_\beta }$]]></tex-math><mml:math id="mml-ieqn-133"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-134">
<alternatives><inline-graphic xlink:href="ieqn-134.png"/><tex-math id="tex-ieqn-134"><![CDATA[$\beta \in \left\{ {0,1} \right\}$]]></tex-math><mml:math id="mml-ieqn-134"><mml:mi>&#x03B2;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, then generates the target signcryption <inline-formula id="ieqn-135">
<alternatives><inline-graphic xlink:href="ieqn-135.png"/><tex-math id="tex-ieqn-135"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-135"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> based on <inline-formula id="ieqn-136">
<alternatives><inline-graphic xlink:href="ieqn-136.png"/><tex-math id="tex-ieqn-136"><![CDATA[${M_\beta }$]]></tex-math><mml:math id="mml-ieqn-136"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-137">
<alternatives><inline-graphic xlink:href="ieqn-137.png"/><tex-math id="tex-ieqn-137"><![CDATA[$s{k_{i{d_{{i^*}}}}}$]]></tex-math><mml:math id="mml-ieqn-137"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-138">
<alternatives><inline-graphic xlink:href="ieqn-138.png"/><tex-math id="tex-ieqn-138"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-138"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> target receivers <inline-formula id="ieqn-139">
<alternatives><inline-graphic xlink:href="ieqn-139.png"/><tex-math id="tex-ieqn-139"><![CDATA[$i{d_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-139"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-140">
<alternatives><inline-graphic xlink:href="ieqn-140.png"/><tex-math id="tex-ieqn-140"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-140"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, and finally returns <inline-formula id="ieqn-141">
<alternatives><inline-graphic xlink:href="ieqn-141.png"/><tex-math id="tex-ieqn-141"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-141"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> to A.</p>
<p><bold>Phase 2:</bold> A makes multiple queries as those in Phase 1. The limitations here are described below. A cannot ask <inline-formula id="ieqn-142">
<alternatives><inline-graphic xlink:href="ieqn-142.png"/><tex-math id="tex-ieqn-142"><![CDATA[$s{k_{i{d_{{l^*}}}}}$]]></tex-math><mml:math id="mml-ieqn-142"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-143">
<alternatives><inline-graphic xlink:href="ieqn-143.png"/><tex-math id="tex-ieqn-143"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-143"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> target receivers <inline-formula id="ieqn-144">
<alternatives><inline-graphic xlink:href="ieqn-144.png"/><tex-math id="tex-ieqn-144"><![CDATA[$i{d_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-144"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-145">
<alternatives><inline-graphic xlink:href="ieqn-145.png"/><tex-math id="tex-ieqn-145"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-145"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> during the key generation query, and A cannot ask<inline-formula id="ieqn-146">
<alternatives><inline-graphic xlink:href="ieqn-146.png"/><tex-math id="tex-ieqn-146"><![CDATA[$\; S{C^*}$]]></tex-math><mml:math id="mml-ieqn-146"><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> during Receiver-Decrypt-and-Verify query.</p>
<p><bold>Guess:</bold> In the end, A outputs its guess <inline-formula id="ieqn-147">
<alternatives><inline-graphic xlink:href="ieqn-147.png"/><tex-math id="tex-ieqn-147"><![CDATA[$\beta ' \in \left\{ {0,1} \right\}$]]></tex-math><mml:math id="mml-ieqn-147"><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and wins the game if <inline-formula id="ieqn-148">
<alternatives><inline-graphic xlink:href="ieqn-148.png"/><tex-math id="tex-ieqn-148"><![CDATA[$\beta ' = \beta$]]></tex-math><mml:math id="mml-ieqn-148"><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mi>&#x03B2;</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>EHRs System Model in Blockchain</title>
<p>In this section, the EHRs system model in blockchain is introduced in detail. The model combines the EHRs system with the MA-IBSC scheme for multiple receivers, realizes the sharing of EHRs in the blockchain, and ensures the privacy and validity of EHRs. The system roles, EHRs storage mode, authentication cases, and the application of the signcryption scheme are introduced below.</p>
<sec id="s3_1">
<label>3.1</label>
<title>System Roles</title>
<p>There are three main roles in EHRs system in the blockchain: EHRs server, authority, and user.</p>
<p><bold>EHRs Server:</bold> The EHRs server is mainly responsible for generating public parameters <inline-formula id="ieqn-149">
<alternatives><inline-graphic xlink:href="ieqn-149.png"/><tex-math id="tex-ieqn-149"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-149"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> in EHRS system initialization, and distributing corresponding identity for each authority and each user in the system.</p>
<p><bold>Authority:</bold> The authorities include all medical departments: hospitals, pharmacies, health insurance companies, medical research institutes and so on. As the bookkeeping nodes in the blockchain, they package a set of transactions that are broadcast on the network and upload them to the new block created by them through the DPoS consensus mechanism.</p>
<p><bold>User:</bold> As ordinary nodes in the blockchain, users primarily create new transactions and publish them to the network. Users include patients, medical workers and common people. Patients create their own EHRs after treatment, and then adopt MA-IBSC scheme to share their private EHRs with other designated users in the blockchain.</p>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>EHRs Storage Mode</title>
<p>EHRs of patients are generally private data and cannot be directly uploaded to the blockchain for sharing. Therefore, we adopt the on-chain and off-chain storage mode and only upload the address of the stored EHRs to the blockchain. The EHRs are signcrypted and stored in the off-blockchain database of each node, and the decryption permission is set at the same time. This storage mode enables patient&#x2019;s EHRs to be safely shared among the users that the patient designates.</p>
<p>As shown in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>, when a patient creates his/her own new EHRs after diagnosis or treatment, he/she uses his/her secret key and the public keys of users, whom he/she wants to share the data with, to signcrypt the EHRs, and stores the signcrypted data in his/her off-blockchain database. Then he/she signs the address of the stored EHRs and publishes it to the blockchain.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Storage Mode of EHRs in Blockchain</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-1.png"/>
</fig>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Authentication Cases</title>
<p>To guarantee that the EHRs shared by the patient and the storage address of the EHRs broadcast by the patient in the blockchain are real, it is necessary to perform authentication. Authentication is mainly performed by verifying the signature of the sharer. Based on the system model and EHRs storage mode, authentication can be mainly classified into the following two cases:</p>
<list list-type="simple">
<list-item><label>-</label><p>Case 1 (Signature Authentication): Only the address of the stored EHRs is uploaded to the blockchain. Therefore, the patient needs to sign it with his/her own secret key, and other users can verify the authenticity and validity of the address.</p></list-item>
<list-item><label>-</label><p>Case 2 (Signcryption Authentication): All users can retrieve the patient&#x2019;s signcrypted EHRs with the address stored in the blockchain. However, only the users (such as doctors, family members, and friends) authorized by the patient can decrypt the EHRs with their secret key, and then verify the signature of the patient to ensure the authenticity of the patient&#x2019;s identity and the EHRs.</p></list-item>
</list>
</sec>
<sec id="s3_4">
<label>3.4</label>
<title>Application of the Sigcryption Scheme</title>
<p>For the purposes of realizing the signcryption of EHRs and the two authentication cases, we describe the relationships between the system roles and the MA-IBSC scheme for multiple receivers below.</p>
<p>First, the EHRs server runs the <bold>Global Setup</bold> algorithm to generate the public parameters of the system. Next, each authority performs <bold>Authority Setup</bold> algorithm to produce its own secret key and then cooperates with other authorities to generate the master secret key and the master public key of the system. After that, with the identity of each user in the system, each authority runs the <bold>KenGen</bold> algorithm and jointly distribute the secret key to the user. After receiving the secret key, the patient uses <bold>User-Sign</bold> algorithm to sign his/her own EHRs, executes <bold>User-Encrypt</bold> algorithm immediately, encrypts the signed EHRs with the public keys of the receivers whom he/she wants to share the data with. In this way, the decryption permission is set for these designated receivers. After storing the signcrypted EHRs in the off-blockchain database, the patient executes the <bold>User-Sign</bold> algorithm again and broadcasts the signed storage address of EHRs. All other nodes (authorities or users) can verify the validity of the address given by the patient by executing the <bold>Verify</bold> algorithm. Then, for a period of time, the bookkeeping node packs the storage addresses of EHRs signed by some patients, and uploads them to a new block, which is connected by the hash value of the previous block to form a blockchain. The data structure of blockchain is shown in <xref ref-type="fig" rid="fig-2">Fig. 2</xref>.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Data Structure of Blockchain in EHRs System</title>
</caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="fig-2.png"/>
</fig>
<p>When other users want to access the patient&#x2019;s EHRs, they retrieve the patient&#x2019;s signcrypted data in the off-blockchain database through the storage address on the blockchain and then run the <bold>Receiver-Decrypt</bold> algorithm. Only receivers with the decryption permission set by the patient can decrypt the signcrypted EHRs with their secret keys, and then run the <bold>Verify</bold> algorithm to ensure that the real EHRs are obtained.</p>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Proposed Signcryption Scheme</title>
<p>Based on the EHRs system of blockchain, we propose an identity-based signcryption with multiple authorities (MA-IBSC) scheme for multiple receivers. In the scheme, users are issued their secret keys from <inline-formula id="ieqn-150">
<alternatives><inline-graphic xlink:href="ieqn-150.png"/><tex-math id="tex-ieqn-150"><![CDATA[$N$]]></tex-math><mml:math id="mml-ieqn-150"><mml:mi>N</mml:mi></mml:math>
</alternatives></inline-formula> authorities. In addition, a user can send the same signcryption information to multiple receivers. The anonymity of the receivers is realized by Lagrange interpolation.</p>
<p>The detailed MA-IBSC scheme for multiple receivers is introduced bellow:</p>
<p><bold>Global Setup:</bold> The EHRs server chooses two suitable multiplicative cyclic groups <inline-formula id="ieqn-151">
<alternatives><inline-graphic xlink:href="ieqn-151.png"/><tex-math id="tex-ieqn-151"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-151"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-152">
<alternatives><inline-graphic xlink:href="ieqn-152.png"/><tex-math id="tex-ieqn-152"><![CDATA[${G_2}$]]></tex-math><mml:math id="mml-ieqn-152"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> with a prime order <inline-formula id="ieqn-153">
<alternatives><inline-graphic xlink:href="ieqn-153.png"/><tex-math id="tex-ieqn-153"><![CDATA[$p$]]></tex-math><mml:math id="mml-ieqn-153"><mml:mi>p</mml:mi></mml:math>
</alternatives></inline-formula>, equipped with a bilinear map <inline-formula id="ieqn-154">
<alternatives><inline-graphic xlink:href="ieqn-154.png"/><tex-math id="tex-ieqn-154"><![CDATA[$e:{G_1} \times {G_1} \to {G_2}$]]></tex-math><mml:math id="mml-ieqn-154"><mml:mi>e</mml:mi><mml:mo>:</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. Assuming that <inline-formula id="ieqn-155">
<alternatives><inline-graphic xlink:href="ieqn-155.png"/><tex-math id="tex-ieqn-155"><![CDATA[$g$]]></tex-math><mml:math id="mml-ieqn-155"><mml:mi>g</mml:mi></mml:math>
</alternatives></inline-formula> is a random generator of <inline-formula id="ieqn-156">
<alternatives><inline-graphic xlink:href="ieqn-156.png"/><tex-math id="tex-ieqn-156"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-156"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, an element <inline-formula id="ieqn-157">
<alternatives><inline-graphic xlink:href="ieqn-157.png"/><tex-math id="tex-ieqn-157"><![CDATA[${P_1}$]]></tex-math><mml:math id="mml-ieqn-157"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-158">
<alternatives><inline-graphic xlink:href="ieqn-158.png"/><tex-math id="tex-ieqn-158"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-158"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is randomly selected. There are four strong collision-resistant hash functions <inline-formula id="ieqn-159">
<alternatives><inline-graphic xlink:href="ieqn-159.png"/><tex-math id="tex-ieqn-159"><![CDATA[${H_0}:{\left\{ {0,1} \right\}^{{\lambda _1}}} \to Z_p^{\rm *}$]]></tex-math><mml:math id="mml-ieqn-159"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-160">
<alternatives><inline-graphic xlink:href="ieqn-160.png"/><tex-math id="tex-ieqn-160"><![CDATA[${H_1}:{\left\{ {0,1} \right\}^{{\lambda _1}}} \to {G_1}$]]></tex-math><mml:math id="mml-ieqn-160"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-161">
<alternatives><inline-graphic xlink:href="ieqn-161.png"/><tex-math id="tex-ieqn-161"><![CDATA[${H_2}:{G_1} \times {\left\{ {0,1} \right\}^{{\lambda _2}}} \to Z_p^{\rm *}$]]></tex-math><mml:math id="mml-ieqn-161"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-162">
<alternatives><inline-graphic xlink:href="ieqn-162.png"/><tex-math id="tex-ieqn-162"><![CDATA[${H_3}:{G_2} \to {\left\{ {0,1} \right\}^{{\lambda _1} + {\lambda _2}}}$]]></tex-math><mml:math id="mml-ieqn-162"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>:</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-163">
<alternatives><inline-graphic xlink:href="ieqn-163.png"/><tex-math id="tex-ieqn-163"><![CDATA[${\lambda _1}$]]></tex-math><mml:math id="mml-ieqn-163"><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-164">
<alternatives><inline-graphic xlink:href="ieqn-164.png"/><tex-math id="tex-ieqn-164"><![CDATA[${\lambda _2}$]]></tex-math><mml:math id="mml-ieqn-164"><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> represent the length of each user&#x2019;s identity and the length of message, respectively. Suppose that there are <inline-formula id="ieqn-165">
<alternatives><inline-graphic xlink:href="ieqn-165.png"/><tex-math id="tex-ieqn-165"><![CDATA[$N$]]></tex-math><mml:math id="mml-ieqn-165"><mml:mi>N</mml:mi></mml:math>
</alternatives></inline-formula> authorities in the system. The public parameters of the system are <inline-formula id="ieqn-166">
<alternatives><inline-graphic xlink:href="ieqn-166.png"/><tex-math id="tex-ieqn-166"><![CDATA[$params = \left\langle {p,g,{P_1},e,{G_1},{G_2},\; {H_0},{H_1},{H_2},{H_3},N} \right\rangle$]]></tex-math><mml:math id="mml-ieqn-166"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Authority Setup:</bold> Each authority runs this algorithm with the input of public parameters <inline-formula id="ieqn-167">
<alternatives><inline-graphic xlink:href="ieqn-167.png"/><tex-math id="tex-ieqn-167"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-167"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and identity <inline-formula id="ieqn-168">
<alternatives><inline-graphic xlink:href="ieqn-168.png"/><tex-math id="tex-ieqn-168"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-168"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-169">
<alternatives><inline-graphic xlink:href="ieqn-169.png"/><tex-math id="tex-ieqn-169"><![CDATA[$i \in \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-169"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. The two phases of generating master secret key <inline-formula id="ieqn-170">
<alternatives><inline-graphic xlink:href="ieqn-170.png"/><tex-math id="tex-ieqn-170"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-170"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, master public key <inline-formula id="ieqn-171">
<alternatives><inline-graphic xlink:href="ieqn-171.png"/><tex-math id="tex-ieqn-171"><![CDATA[$PK$]]></tex-math><mml:math id="mml-ieqn-171"><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:math>
</alternatives></inline-formula> and authority&#x2019;s secret key <inline-formula id="ieqn-172">
<alternatives><inline-graphic xlink:href="ieqn-172.png"/><tex-math id="tex-ieqn-172"><![CDATA[$s{k_{I{D_i}}}$]]></tex-math><mml:math id="mml-ieqn-172"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> , where <inline-formula id="ieqn-173">
<alternatives><inline-graphic xlink:href="ieqn-173.png"/><tex-math id="tex-ieqn-173"><![CDATA[$i \in \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-173"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, are described as follows:</p>
<p>- Phase 1 (generation of the master secret key of the system and the secret key of each authority):</p>
<p>1) First, each authority <inline-formula id="ieqn-174">
<alternatives><inline-graphic xlink:href="ieqn-174.png"/><tex-math id="tex-ieqn-174"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-174"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> randomly selects a polynomial <inline-formula id="ieqn-175">
<alternatives><inline-graphic xlink:href="ieqn-175.png"/><tex-math id="tex-ieqn-175"><![CDATA[${\rm P(x)}$]]></tex-math><mml:math id="mml-ieqn-175"><mml:mrow><mml:mi mathvariant="normal">P</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi mathvariant="normal">x</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-176">
<alternatives><inline-graphic xlink:href="ieqn-176.png"/><tex-math id="tex-ieqn-176"><![CDATA[$N - 1$]]></tex-math><mml:math id="mml-ieqn-176"><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
</alternatives></inline-formula> degree over <inline-formula id="ieqn-177">
<alternatives><inline-graphic xlink:href="ieqn-177.png"/><tex-math id="tex-ieqn-177"><![CDATA[$Z_p^*$]]></tex-math><mml:math id="mml-ieqn-177"><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula>:</p>
<p><disp-formula id="eqn-1">
<label>(1)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-1.png"/><tex-math id="tex-eqn-1"><![CDATA[$$P\left( x \right) = \left( {{a_{i0}} + {a_{i1}}x + \ldots + {a_{i\left( {N - 1} \right)}}{x^{N - 1}}} \right)\left( {mod\; p} \right)$$]]></tex-math><mml:math id="mml-eqn-1" display="block"><mml:mi>P</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>p</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p>To hide the polynomial coefficients, <inline-formula id="ieqn-178">
<alternatives><inline-graphic xlink:href="ieqn-178.png"/><tex-math id="tex-ieqn-178"><![CDATA[${A_{ik}} = {g^{{a_{ik}}}}$]]></tex-math><mml:math id="mml-ieqn-178"><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> is calculated and broadcast, where <inline-formula id="ieqn-179">
<alternatives><inline-graphic xlink:href="ieqn-179.png"/><tex-math id="tex-ieqn-179"><![CDATA[$k = \left( {0,1, \ldots ,N - 1} \right)$]]></tex-math><mml:math id="mml-ieqn-179"><mml:mi>k</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Second, it calculates secret shares <inline-formula id="ieqn-180">
<alternatives><inline-graphic xlink:href="ieqn-180.png"/><tex-math id="tex-ieqn-180"><![CDATA[${s_{ij}} = P\left( {{H_0}\left( {I{D_j}} \right)} \right)$]]></tex-math><mml:math id="mml-ieqn-180"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-181">
<alternatives><inline-graphic xlink:href="ieqn-181.png"/><tex-math id="tex-ieqn-181"><![CDATA[$j = \left( {1,2, \ldots ,N} \right)$]]></tex-math><mml:math id="mml-ieqn-181"><mml:mi>j</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Finally, it secretly sends <inline-formula id="ieqn-182">
<alternatives><inline-graphic xlink:href="ieqn-182.png"/><tex-math id="tex-ieqn-182"><![CDATA[${s_{ij}}$]]></tex-math><mml:math id="mml-ieqn-182"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-183">
<alternatives><inline-graphic xlink:href="ieqn-183.png"/><tex-math id="tex-ieqn-183"><![CDATA[$I{D_j}$]]></tex-math><mml:math id="mml-ieqn-183"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> for<inline-formula id="ieqn-184">
<alternatives><inline-graphic xlink:href="ieqn-184.png"/><tex-math id="tex-ieqn-184"><![CDATA[$\; j \ne i$]]></tex-math><mml:math id="mml-ieqn-184"><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>j</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>i</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p>2) After receiving the secret share <inline-formula id="ieqn-185">
<alternatives><inline-graphic xlink:href="ieqn-185.png"/><tex-math id="tex-ieqn-185"><![CDATA[${s_{ij}}$]]></tex-math><mml:math id="mml-ieqn-185"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> from <inline-formula id="ieqn-186">
<alternatives><inline-graphic xlink:href="ieqn-186.png"/><tex-math id="tex-ieqn-186"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-186"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, each authority <inline-formula id="ieqn-187">
<alternatives><inline-graphic xlink:href="ieqn-187.png"/><tex-math id="tex-ieqn-187"><![CDATA[$I{D_j}$]]></tex-math><mml:math id="mml-ieqn-187"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> verifies whether the equation <inline-formula id="ieqn-188">
<alternatives><inline-graphic xlink:href="ieqn-188.png"/><tex-math id="tex-ieqn-188"><![CDATA[${g^{{s_{ij}}}} = \mathop \prod \nolimits_{k = 0}^{N - 1} {({A_{ik}})^{{H_0}{{\left( {I{D_j}} \right)}^k}}}$]]></tex-math><mml:math id="mml-ieqn-188"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> holds. If it holds, the secret share <inline-formula id="ieqn-189">
<alternatives><inline-graphic xlink:href="ieqn-189.png"/><tex-math id="tex-ieqn-189"><![CDATA[${s_{ij}}$]]></tex-math><mml:math id="mml-ieqn-189"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is valid and the sender <inline-formula id="ieqn-190">
<alternatives><inline-graphic xlink:href="ieqn-190.png"/><tex-math id="tex-ieqn-190"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-190"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is considered to be honest. If not, <inline-formula id="ieqn-191">
<alternatives><inline-graphic xlink:href="ieqn-191.png"/><tex-math id="tex-ieqn-191"><![CDATA[$I{D_j}$]]></tex-math><mml:math id="mml-ieqn-191"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> broadcasts a complaint against <inline-formula id="ieqn-192">
<alternatives><inline-graphic xlink:href="ieqn-192.png"/><tex-math id="tex-ieqn-192"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-192"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. Then, to prove its honesty, <inline-formula id="ieqn-193">
<alternatives><inline-graphic xlink:href="ieqn-193.png"/><tex-math id="tex-ieqn-193"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-193"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> needs to keep broadcasting the secret shares <inline-formula id="ieqn-194">
<alternatives><inline-graphic xlink:href="ieqn-194.png"/><tex-math id="tex-ieqn-194"><![CDATA[${s_{ij}}$]]></tex-math><mml:math id="mml-ieqn-194"><mml:mrow><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> until the equation holds.</p>
<p>3) After the above interactions, <inline-formula id="ieqn-195">
<alternatives><inline-graphic xlink:href="ieqn-195.png"/><tex-math id="tex-ieqn-195"><![CDATA[$N$]]></tex-math><mml:math id="mml-ieqn-195"><mml:mi>N</mml:mi></mml:math>
</alternatives></inline-formula> authorities jointly generate the master secret key <inline-formula id="ieqn-196">
<alternatives><inline-graphic xlink:href="ieqn-196.png"/><tex-math id="tex-ieqn-196"><![CDATA[$s = \mathop \sum \nolimits_{i = 1}^N {a_{i0}}$]]></tex-math><mml:math id="mml-ieqn-196"><mml:mi>s</mml:mi><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. If the number of corrupt authorities is less than <inline-formula id="ieqn-197">
<alternatives><inline-graphic xlink:href="ieqn-197.png"/><tex-math id="tex-ieqn-197"><![CDATA[$N$]]></tex-math><mml:math id="mml-ieqn-197"><mml:mi>N</mml:mi></mml:math>
</alternatives></inline-formula>, they cannot recover <inline-formula id="ieqn-198">
<alternatives><inline-graphic xlink:href="ieqn-198.png"/><tex-math id="tex-ieqn-198"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-198"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>. The secret key of each authority <inline-formula id="ieqn-199">
<alternatives><inline-graphic xlink:href="ieqn-199.png"/><tex-math id="tex-ieqn-199"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-199"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is the constant term of its randomly selected polynomial, namely, <inline-formula id="ieqn-200">
<alternatives><inline-graphic xlink:href="ieqn-200.png"/><tex-math id="tex-ieqn-200"><![CDATA[$s{k_{I{D_i}}} = {a_{i0}}$]]></tex-math><mml:math id="mml-ieqn-200"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-201">
<alternatives><inline-graphic xlink:href="ieqn-201.png"/><tex-math id="tex-ieqn-201"><![CDATA[$i \in \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-201"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>- Phase 2 (generation of the master public key of system): In Phase 1, each authority has broadcast a publicly verifiable value <inline-formula id="ieqn-202">
<alternatives><inline-graphic xlink:href="ieqn-202.png"/><tex-math id="tex-ieqn-202"><![CDATA[$\left\{ {{A_{i0}} = {g^{{a_{i0}}}}} \right\}$]]></tex-math><mml:math id="mml-ieqn-202"><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-203">
<alternatives><inline-graphic xlink:href="ieqn-203.png"/><tex-math id="tex-ieqn-203"><![CDATA[$i \in \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-203"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Thus, the master public key <inline-formula id="ieqn-204">
<alternatives><inline-graphic xlink:href="ieqn-204.png"/><tex-math id="tex-ieqn-204"><![CDATA[$PK$]]></tex-math><mml:math id="mml-ieqn-204"><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:math>
</alternatives></inline-formula> is calculated as:</p>
<p><disp-formula id="eqn-2">
<label>(2)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-2.png"/><tex-math id="tex-eqn-2"><![CDATA[$$PK = \mathop \prod \nolimits_{i = 1}^N {A_{i0}} = \mathop \prod \nolimits_{i = 1}^N {g^{{a_{i0}}}} = {g^{\mathop \sum \nolimits_{i = 1}^N {a_{i0}}}} = {g^s} \in {G_1}$$]]></tex-math><mml:math id="mml-eqn-2" display="block"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p>Finally, each authority adds parameters <inline-formula id="ieqn-205">
<alternatives><inline-graphic xlink:href="ieqn-205.png"/><tex-math id="tex-ieqn-205"><![CDATA[$\left\{ {\left( {I{D_i},{A_{i0}}} \right)} \right\}_{i = 1}^N$]]></tex-math><mml:math id="mml-ieqn-205"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-206">
<alternatives><inline-graphic xlink:href="ieqn-206.png"/><tex-math id="tex-ieqn-206"><![CDATA[$PK$]]></tex-math><mml:math id="mml-ieqn-206"><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-207">
<alternatives><inline-graphic xlink:href="ieqn-207.png"/><tex-math id="tex-ieqn-207"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-207"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, which is finally expressed as:</p>
<p><disp-formula id="eqn-3">
<label>(3)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-3.png"/><tex-math id="tex-eqn-3"><![CDATA[$$params = \left\langle {p,g,{P_1},e,{G_1},{G_2},{H_0},{H_1},{H_2},{H_3},N,\left\{ {\left( {I{D_i},{A_{i0}}} \right)} \right\}_{i = 1}^N,PK} \right\rangle$$]]></tex-math><mml:math id="mml-eqn-3" display="block"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p><bold>KeyGen:</bold> When a user with his/her identity <inline-formula id="ieqn-208">
<alternatives><inline-graphic xlink:href="ieqn-208.png"/><tex-math id="tex-ieqn-208"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-208"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> registers in the EHRs system of blockchain, he/she obtains his/her public key <inline-formula id="ieqn-209">
<alternatives><inline-graphic xlink:href="ieqn-209.png"/><tex-math id="tex-ieqn-209"><![CDATA[$p{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-209"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and secret key <inline-formula id="ieqn-210">
<alternatives><inline-graphic xlink:href="ieqn-210.png"/><tex-math id="tex-ieqn-210"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-210"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> from <inline-formula id="ieqn-211">
<alternatives><inline-graphic xlink:href="ieqn-211.png"/><tex-math id="tex-ieqn-211"><![CDATA[$N$]]></tex-math><mml:math id="mml-ieqn-211"><mml:mi>N</mml:mi></mml:math>
</alternatives></inline-formula> authorities. The process consists of the following three phases.</p>
<list list-type="simple">
<list-item><label>-</label><p>Phase 1 (generation of the public key and partial secret key): First, every authority <inline-formula id="ieqn-212">
<alternatives><inline-graphic xlink:href="ieqn-212.png"/><tex-math id="tex-ieqn-212"><![CDATA[$I{D_j}$]]></tex-math><mml:math id="mml-ieqn-212"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-213">
<alternatives><inline-graphic xlink:href="ieqn-213.png"/><tex-math id="tex-ieqn-213"><![CDATA[$j \in \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-213"><mml:mi>j</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, calculates the user&#x2019;s public key <inline-formula id="ieqn-214">
<alternatives><inline-graphic xlink:href="ieqn-214.png"/><tex-math id="tex-ieqn-214"><![CDATA[$p{k_{i{d_i}}} = {H_1}\left( {i{d_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-214"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> with his/her identity <inline-formula id="ieqn-215">
<alternatives><inline-graphic xlink:href="ieqn-215.png"/><tex-math id="tex-ieqn-215"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-215"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, then calculates partial secret key <inline-formula id="ieqn-216">
<alternatives><inline-graphic xlink:href="ieqn-216.png"/><tex-math id="tex-ieqn-216"><![CDATA[$ps{k_{i{d_i},j}} = {\left( {p{k_{i{d_i}}} \cdot {P_1}} \right)^{{a_{j0}}}}$]]></tex-math><mml:math id="mml-ieqn-216"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> and secretly sends it to <inline-formula id="ieqn-217">
<alternatives><inline-graphic xlink:href="ieqn-217.png"/><tex-math id="tex-ieqn-217"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-217"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p></list-item>
<list-item><label>-</label><p>Phase 2 (verification of the partial secret key): After receiving the <inline-formula id="ieqn-218">
<alternatives><inline-graphic xlink:href="ieqn-218.png"/><tex-math id="tex-ieqn-218"><![CDATA[$ps{k_{i{d_{i,j}}}}$]]></tex-math><mml:math id="mml-ieqn-218"><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> from authority <inline-formula id="ieqn-219">
<alternatives><inline-graphic xlink:href="ieqn-219.png"/><tex-math id="tex-ieqn-219"><![CDATA[$I{D_j}$]]></tex-math><mml:math id="mml-ieqn-219"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-220">
<alternatives><inline-graphic xlink:href="ieqn-220.png"/><tex-math id="tex-ieqn-220"><![CDATA[$i{d_i}\;$]]></tex-math><mml:math id="mml-ieqn-220"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:math>
</alternatives></inline-formula>verifies whether the equation <inline-formula id="ieqn-221">
<alternatives><inline-graphic xlink:href="ieqn-221.png"/><tex-math id="tex-ieqn-221"><![CDATA[$e\left( {ps{k_{i{d_i},j}},g} \right) = ?e\left( {p{k_{i{d_i}}},{A_{j0}}} \right)$]]></tex-math><mml:math id="mml-ieqn-221"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mo>?</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> holds. If it holds, the partial secret key is valid. If not, the authority <inline-formula id="ieqn-222">
<alternatives><inline-graphic xlink:href="ieqn-222.png"/><tex-math id="tex-ieqn-222"><![CDATA[$I{D_j}$]]></tex-math><mml:math id="mml-ieqn-222"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> needs to transmit the partial secret key again until the equation holds.</p></list-item>
<list-item><label>-</label><p>Phase 3 (generation of the secret key): Through the above interactions, user <inline-formula id="ieqn-223">
<alternatives><inline-graphic xlink:href="ieqn-223.png"/><tex-math id="tex-ieqn-223"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-223"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> receives all partial secret keys from <inline-formula id="ieqn-224">
<alternatives><inline-graphic xlink:href="ieqn-224.png"/><tex-math id="tex-ieqn-224"><![CDATA[$N$]]></tex-math><mml:math id="mml-ieqn-224"><mml:mi>N</mml:mi></mml:math>
</alternatives></inline-formula> authorities, and then calculates his/her secret key <inline-formula id="ieqn-225">
<alternatives><inline-graphic xlink:href="ieqn-225.png"/><tex-math id="tex-ieqn-225"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-225"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> as:</p></list-item></list>
<p><disp-formula id="eqn-4">
<label>(4)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-4.png"/><tex-math id="tex-eqn-4"><![CDATA[$$s{k_{i{d_i}}} = \mathop \prod \nolimits_{j = 1}^N \; ps{k_{i{d_i},j}} = \mathop \prod \nolimits_{j = 1}^N {\left( {p{k_{i{d_i}}} \cdot {P_1}} \right)^{{a_{j0}}}} = {\left( {p{k_{i{d_i}}} \cdot {P_1}} \right)^s}$$]]></tex-math><mml:math id="mml-eqn-4" display="block"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>p</mml:mi><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>s</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p><bold>User-Sign:</bold> To sign a message<inline-formula id="ieqn-226">
<alternatives><inline-graphic xlink:href="ieqn-226.png"/><tex-math id="tex-ieqn-226"><![CDATA[$\; M$]]></tex-math><mml:math id="mml-ieqn-226"><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>, user (mainly refers to the patient user in the system) <inline-formula id="ieqn-227">
<alternatives><inline-graphic xlink:href="ieqn-227.png"/><tex-math id="tex-ieqn-227"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-227"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> selects a random integer <inline-formula id="ieqn-228">
<alternatives><inline-graphic xlink:href="ieqn-228.png"/><tex-math id="tex-ieqn-228"><![CDATA[$r \in Z_q^*$]]></tex-math><mml:math id="mml-ieqn-228"><mml:mi>r</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>q</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula>, and then calculates <inline-formula id="ieqn-229">
<alternatives><inline-graphic xlink:href="ieqn-229.png"/><tex-math id="tex-ieqn-229"><![CDATA[$X = {g^r}$]]></tex-math><mml:math id="mml-ieqn-229"><mml:mi>X</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-230">
<alternatives><inline-graphic xlink:href="ieqn-230.png"/><tex-math id="tex-ieqn-230"><![CDATA[$h = {H_2}\left( {M,X} \right)$]]></tex-math><mml:math id="mml-ieqn-230"><mml:mi>h</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>X</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-231">
<alternatives><inline-graphic xlink:href="ieqn-231.png"/><tex-math id="tex-ieqn-231"><![CDATA[$W = s{k_{i{d_i}}}^hp{k_{i{d_i}}}^r$]]></tex-math><mml:math id="mml-ieqn-231"><mml:mi>W</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mi>s</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:msup><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula>. The signature <inline-formula id="ieqn-232">
<alternatives><inline-graphic xlink:href="ieqn-232.png"/><tex-math id="tex-ieqn-232"><![CDATA[${\sigma _i}$]]></tex-math><mml:math id="mml-ieqn-232"><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of message <inline-formula id="ieqn-233">
<alternatives><inline-graphic xlink:href="ieqn-233.png"/><tex-math id="tex-ieqn-233"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-233"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> is <inline-formula id="ieqn-234">
<alternatives><inline-graphic xlink:href="ieqn-234.png"/><tex-math id="tex-ieqn-234"><![CDATA[${\sigma _i} = \left( {X,W} \right)$]]></tex-math><mml:math id="mml-ieqn-234"><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>User-Encrypt:</bold> To complete the signcryption of <inline-formula id="ieqn-235">
<alternatives><inline-graphic xlink:href="ieqn-235.png"/><tex-math id="tex-ieqn-235"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-235"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>, this algorithm is usually used after the <bold>User-Sign</bold> algorithm. Encryption is mainly divided into the following six steps. First, user <inline-formula id="ieqn-236">
<alternatives><inline-graphic xlink:href="ieqn-236.png"/><tex-math id="tex-ieqn-236"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-236"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> calculates <inline-formula id="ieqn-237">
<alternatives><inline-graphic xlink:href="ieqn-237.png"/><tex-math id="tex-ieqn-237"><![CDATA[$V = e\left( {P{K^r},{P_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-237"><mml:mi>V</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-238">
<alternatives><inline-graphic xlink:href="ieqn-238.png"/><tex-math id="tex-ieqn-238"><![CDATA[$Z = {H_3}\left( V \right) \oplus (i{d_i}||M)$]]></tex-math><mml:math id="mml-ieqn-238"><mml:mi>Z</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>V</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>M</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math>
</alternatives></inline-formula>. Second, he/she selects other users whom he/she wants to share message <inline-formula id="ieqn-239">
<alternatives><inline-graphic xlink:href="ieqn-239.png"/><tex-math id="tex-ieqn-239"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-239"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> with, counts the number <inline-formula id="ieqn-240">
<alternatives><inline-graphic xlink:href="ieqn-240.png"/><tex-math id="tex-ieqn-240"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-240"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> of these receivers, calculates <inline-formula id="ieqn-241">
<alternatives><inline-graphic xlink:href="ieqn-241.png"/><tex-math id="tex-ieqn-241"><![CDATA[${x_l} = {H_0}\left( {i{d_l}} \right)$]]></tex-math><mml:math id="mml-ieqn-241"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-242">
<alternatives><inline-graphic xlink:href="ieqn-242.png"/><tex-math id="tex-ieqn-242"><![CDATA[${y_l} = p{k_{i{d_l}}}^r$]]></tex-math><mml:math id="mml-ieqn-242"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula> based on the identity <inline-formula id="ieqn-243">
<alternatives><inline-graphic xlink:href="ieqn-243.png"/><tex-math id="tex-ieqn-243"><![CDATA[$i{d_l}$]]></tex-math><mml:math id="mml-ieqn-243"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of the <inline-formula id="ieqn-244">
<alternatives><inline-graphic xlink:href="ieqn-244.png"/><tex-math id="tex-ieqn-244"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-244"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> receivers, where <inline-formula id="ieqn-245">
<alternatives><inline-graphic xlink:href="ieqn-245.png"/><tex-math id="tex-ieqn-245"><![CDATA[$l = \left( {1,2, \ldots ,n} \right)$]]></tex-math><mml:math id="mml-ieqn-245"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, and then gets <inline-formula id="ieqn-246">
<alternatives><inline-graphic xlink:href="ieqn-246.png"/><tex-math id="tex-ieqn-246"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-246"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> sets of data: <inline-formula id="ieqn-247">
<alternatives><inline-graphic xlink:href="ieqn-247.png"/><tex-math id="tex-ieqn-247"><![CDATA[$\left( {{x_1},{y_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-247"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>,<inline-formula id="ieqn-248">
<alternatives><inline-graphic xlink:href="ieqn-248.png"/><tex-math id="tex-ieqn-248"><![CDATA[$\; \left( {{x_2},{y_2}} \right)$]]></tex-math><mml:math id="mml-ieqn-248"><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-249">
<alternatives><inline-graphic xlink:href="ieqn-249.png"/><tex-math id="tex-ieqn-249"><![CDATA[$\ldots$]]></tex-math><mml:math id="mml-ieqn-249"><mml:mo>&#x2026;</mml:mo></mml:math>
</alternatives></inline-formula> ,<inline-formula id="ieqn-250">
<alternatives><inline-graphic xlink:href="ieqn-250.png"/><tex-math id="tex-ieqn-250"><![CDATA[$\; \left( {{x_n},{y_n}} \right)$]]></tex-math><mml:math id="mml-ieqn-250"><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Third, <inline-formula id="ieqn-251">
<alternatives><inline-graphic xlink:href="ieqn-251.png"/><tex-math id="tex-ieqn-251"><![CDATA[$n - 1$]]></tex-math><mml:math id="mml-ieqn-251"><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
</alternatives></inline-formula> degree polynomial <inline-formula id="ieqn-252">
<alternatives><inline-graphic xlink:href="ieqn-252.png"/><tex-math id="tex-ieqn-252"><![CDATA[$F\left( x \right)$]]></tex-math><mml:math id="mml-ieqn-252"><mml:mi>F</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> is constructed by Lagrange interpolation, so that <inline-formula id="ieqn-253">
<alternatives><inline-graphic xlink:href="ieqn-253.png"/><tex-math id="tex-ieqn-253"><![CDATA[$F\left( {{x_l}} \right) = {y_l}$]]></tex-math><mml:math id="mml-ieqn-253"><mml:mi>F</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-254">
<alternatives><inline-graphic xlink:href="ieqn-254.png"/><tex-math id="tex-ieqn-254"><![CDATA[$l \in \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-254"><mml:mi>l</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Fourth, for <inline-formula id="ieqn-255">
<alternatives><inline-graphic xlink:href="ieqn-255.png"/><tex-math id="tex-ieqn-255"><![CDATA[$l = \left( {1,2, \ldots ,n} \right)$]]></tex-math><mml:math id="mml-ieqn-255"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, the user <inline-formula id="ieqn-256">
<alternatives><inline-graphic xlink:href="ieqn-256.png"/><tex-math id="tex-ieqn-256"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-256"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> calculates</p>
<p><disp-formula id="eqn-5">
<label>(5)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-5.png"/><tex-math id="tex-eqn-5"><![CDATA[$${f_l}\left( x \right) = \mathop \prod \nolimits_{1 \le m \ne l \le n} \displaystyle{{x - {x_m}} \over {{x_l} - {x_m}}} = {b_{l,1}} + {b_{l,1}}x + \ldots + {b_{l,n}}{x^{n - 1}}$$]]></tex-math><mml:math id="mml-eqn-5" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>x</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msub><mml:mrow><mml:mo movablelimits="false">&#x220F;</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>m</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>l</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>l</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mi>x</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mstyle></mml:math>
</alternatives></disp-formula></p>
<p>After that, for<inline-formula id="ieqn-257">
<alternatives><inline-graphic xlink:href="ieqn-257.png"/><tex-math id="tex-ieqn-257"><![CDATA[${\rm \; }l = \left( {1,2, \ldots ,n} \right)$]]></tex-math><mml:math id="mml-ieqn-257"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-258">
<alternatives><inline-graphic xlink:href="ieqn-258.png"/><tex-math id="tex-ieqn-258"><![CDATA[${L_l} = \mathop \sum \nolimits_{m = 1}^n {b_{m,l}}{y_m}$]]></tex-math><mml:math id="mml-ieqn-258"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msubsup><mml:mrow><mml:mo movablelimits="false">&#x2211;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is calculated. Finally, the signcryption of <inline-formula id="ieqn-259">
<alternatives><inline-graphic xlink:href="ieqn-259.png"/><tex-math id="tex-ieqn-259"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-259"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> is expressed as:</p>
<p><disp-formula id="eqn-6">
<label>(6)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-6.png"/><tex-math id="tex-eqn-6"><![CDATA[$$SC = \left\langle {{L_1},{L_2}, \ldots ,{L_n},{\sigma _i} = \left( {X,W} \right),Z} \right\rangle$$]]></tex-math><mml:math id="mml-eqn-6" display="block"><mml:mi>S</mml:mi><mml:mi>C</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>Z</mml:mi></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p>As you can see, the identity information of receivers is not directly displayed in the <inline-formula id="ieqn-260">
<alternatives><inline-graphic xlink:href="ieqn-260.png"/><tex-math id="tex-ieqn-260"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-260"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Verify:</bold> To verify the validity of signature <inline-formula id="ieqn-261">
<alternatives><inline-graphic xlink:href="ieqn-261.png"/><tex-math id="tex-ieqn-261"><![CDATA[${{\rm \sigma }_i}$]]></tex-math><mml:math id="mml-ieqn-261"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> from user <inline-formula id="ieqn-262">
<alternatives><inline-graphic xlink:href="ieqn-262.png"/><tex-math id="tex-ieqn-262"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-262"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, first, other users calculate <inline-formula id="ieqn-263">
<alternatives><inline-graphic xlink:href="ieqn-263.png"/><tex-math id="tex-ieqn-263"><![CDATA[$h = {H_1}\left( {M,X} \right)$]]></tex-math><mml:math id="mml-ieqn-263"><mml:mi>h</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>X</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, and then verify whether the equation <inline-formula id="ieqn-264">
<alternatives><inline-graphic xlink:href="ieqn-264.png"/><tex-math id="tex-ieqn-264"><![CDATA[$e\left( {g,W} \right) = ?e\left( {P{K^h} \cdot X,p{k_{i{d_i}}}} \right) \cdot e\left( {P{K^h},{P_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-264"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mo>?</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> holds or not. If it holds, the signature from <inline-formula id="ieqn-265">
<alternatives><inline-graphic xlink:href="ieqn-265.png"/><tex-math id="tex-ieqn-265"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-265"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is valid and it returns <inline-formula id="ieqn-266">
<alternatives><inline-graphic xlink:href="ieqn-266.png"/><tex-math id="tex-ieqn-266"><![CDATA[$Accept$]]></tex-math><mml:math id="mml-ieqn-266"><mml:mi>A</mml:mi><mml:mi>c</mml:mi><mml:mi>c</mml:mi><mml:mi>e</mml:mi><mml:mi>p</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>. If not, it returns <inline-formula id="ieqn-267">
<alternatives><inline-graphic xlink:href="ieqn-267.png"/><tex-math id="tex-ieqn-267"><![CDATA[$Reject$]]></tex-math><mml:math id="mml-ieqn-267"><mml:mi>R</mml:mi><mml:mi>e</mml:mi><mml:mi>j</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Receiver-Decrypt:</bold> Only the receiver with identity <inline-formula id="ieqn-268">
<alternatives><inline-graphic xlink:href="ieqn-268.png"/><tex-math id="tex-ieqn-268"><![CDATA[$\left\{ {i{d_l}} \right\}_{l = 1}^n$]]></tex-math><mml:math id="mml-ieqn-268"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula> designated by sharer <inline-formula id="ieqn-269">
<alternatives><inline-graphic xlink:href="ieqn-269.png"/><tex-math id="tex-ieqn-269"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-269"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> has the right to decrypt the signcryption <inline-formula id="ieqn-270">
<alternatives><inline-graphic xlink:href="ieqn-270.png"/><tex-math id="tex-ieqn-270"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-270"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> and obtain message <inline-formula id="ieqn-271">
<alternatives><inline-graphic xlink:href="ieqn-271.png"/><tex-math id="tex-ieqn-271"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-271"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula>. The receiver <inline-formula id="ieqn-272">
<alternatives><inline-graphic xlink:href="ieqn-272.png"/><tex-math id="tex-ieqn-272"><![CDATA[$i{d_l}$]]></tex-math><mml:math id="mml-ieqn-272"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> takes <inline-formula id="ieqn-273">
<alternatives><inline-graphic xlink:href="ieqn-273.png"/><tex-math id="tex-ieqn-273"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-273"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-274">
<alternatives><inline-graphic xlink:href="ieqn-274.png"/><tex-math id="tex-ieqn-274"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-274"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, his/her identity <inline-formula id="ieqn-275">
<alternatives><inline-graphic xlink:href="ieqn-275.png"/><tex-math id="tex-ieqn-275"><![CDATA[$i{d_l}$]]></tex-math><mml:math id="mml-ieqn-275"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and secret key <inline-formula id="ieqn-276">
<alternatives><inline-graphic xlink:href="ieqn-276.png"/><tex-math id="tex-ieqn-276"><![CDATA[$s{k_{i{d_l}}}$]]></tex-math><mml:math id="mml-ieqn-276"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> as inputs to run this algorithm. He/she first calculates <inline-formula id="ieqn-277">
<alternatives><inline-graphic xlink:href="ieqn-277.png"/><tex-math id="tex-ieqn-277"><![CDATA[${x_l} = {H_0}\left( {i{d_l}} \right)$]]></tex-math><mml:math id="mml-ieqn-277"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-278">
<alternatives><inline-graphic xlink:href="ieqn-278.png"/><tex-math id="tex-ieqn-278"><![CDATA[${{\rm \delta }_l} = {L_1} + {x_l}{L_2} + \ldots + ({x_l}^{n - 1}modp){L_n}$]]></tex-math><mml:math id="mml-ieqn-278"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03B4;</mml:mi></mml:mrow><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mi>m</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mi>p</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-279">
<alternatives><inline-graphic xlink:href="ieqn-279.png"/><tex-math id="tex-ieqn-279"><![CDATA[${V}^{\prime} = \displaystyle{{e\left( {X,s{k_{i{d_l}}}} \right)} \over {e\left( {PK,{\delta _l}} \right)}}$]]></tex-math><mml:math id="mml-ieqn-279"><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula> and then gets the message <inline-formula id="ieqn-280">
<alternatives><inline-graphic xlink:href="ieqn-280.png"/><tex-math id="tex-ieqn-280"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-280"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> and the identity <inline-formula id="ieqn-281">
<alternatives><inline-graphic xlink:href="ieqn-281.png"/><tex-math id="tex-ieqn-281"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-281"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of the signer through the following calculation:</p>
<p><disp-formula id="eqn-7">
<label>(7)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-7.png"/><tex-math id="tex-eqn-7"><![CDATA[$${H_3}\left( {{V}^{\prime}} \right) \oplus Z = (i{d_i}||M)$$]]></tex-math><mml:math id="mml-eqn-7" display="block"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>Z</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>M</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math>
</alternatives></disp-formula></p>
<p><bold>Correctness:</bold></p>
<p>1) The correctness of signature <inline-formula id="ieqn-282">
<alternatives><inline-graphic xlink:href="ieqn-282.png"/><tex-math id="tex-ieqn-282"><![CDATA[${{\rm \sigma }_i}$]]></tex-math><mml:math id="mml-ieqn-282"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> from user <inline-formula id="ieqn-283">
<alternatives><inline-graphic xlink:href="ieqn-283.png"/><tex-math id="tex-ieqn-283"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-283"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is derived from the following equation:</p>
<p><disp-formula id="eqn-8">
<label>(8)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-8.png"/><tex-math id="tex-eqn-8"><![CDATA[$$\eqalign{&e( {g,W} ) = e( {g,s{k_{i{d_i}}}^hp{k_{i{d_i}}}^r} )\cr&\quad= e( {g,{{( {p{k_{i{d_i}}}\cdot {P_1}} )}^{sh}}p{k_{i{d_i}}}^r} )\cr&\quad= e( {g,p{k_{i{d_i}}}^{sh + r}} )\cdot e( {g,{P_1}^{sh}} )\cr&\quad= e( {{g^{sh}}{g^r},p{k_{i{d_i}}}} )\cdot e( {{g^{sh}}\cdot {P_1}} )\cr&\quad= e( {P{K^h}\cdot X,p{k_{i{d_i}}}} )\cdot e( {P{K^h},{P_1}} )}$$]]></tex-math><mml:math id="mml-eqn-8" display="block"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:msup><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>h</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mi>r</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p>2) When <inline-formula id="ieqn-284">
<alternatives><inline-graphic xlink:href="ieqn-284.png"/><tex-math id="tex-ieqn-284"><![CDATA[${V}^{\prime} = V$]]></tex-math><mml:math id="mml-ieqn-284"><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mi>V</mml:mi></mml:math>
</alternatives></inline-formula>, message <inline-formula id="ieqn-285">
<alternatives><inline-graphic xlink:href="ieqn-285.png"/><tex-math id="tex-ieqn-285"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-285"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> of the user <inline-formula id="ieqn-286">
<alternatives><inline-graphic xlink:href="ieqn-286.png"/><tex-math id="tex-ieqn-286"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-286"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> can be obtained. For each <inline-formula id="ieqn-287">
<alternatives><inline-graphic xlink:href="ieqn-287.png"/><tex-math id="tex-ieqn-287"><![CDATA[$l \in \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-287"><mml:mi>l</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, there is <inline-formula id="ieqn-288">
<alternatives><inline-graphic xlink:href="ieqn-288.png"/><tex-math id="tex-ieqn-288"><![CDATA[${y_l} = p{k_{i{d_l}}}^r$]]></tex-math><mml:math id="mml-ieqn-288"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula>. According to Lagrange interpolation, we can calculate:</p>
<p><disp-formula id="eqn-9">
<label>(9)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-9.png"/><tex-math id="tex-eqn-9"><![CDATA[$$\eqalign{&{\delta _l} = {L_1} + {x_l}{L_2} + \ldots + {x_l}^{n - 1}{L_n}\cr&= \left( {{b_{1,1}}{y_1} + \ldots + {b_{n,1}}{y_n}} \right) + \left( {{x_l}{b_{1,2}}{y_1} + \ldots + {x_l}{b_{n,2}}{y_n}} \right) + \ldots + \left( {{x_l}^{n - 1}{b_{1,n}}{y_1} + \ldots + {x_l}^{n - 1}{b_{n,n}}{y_n}} \right)\cr&= \left( {{b_{1,1}} + {b_{1,2}}{x_l} + \ldots + {b_{1,n}}{x_l}^{n - 1}} \right){y_1} + \left( {{b_{2,1}} + {b_{2,2}}{x_l} + \ldots + {b_{2,n}}{x_l}^{n - 1}} \right){y_2} + .. \cr&\qquad+ \left( {{b_{n,1}} + {b_{n,2}}{x_l} + \ldots + {b_{n,n}}{x_l}^{n - 1}} \right){y_n}\cr&= {y_l} = p{k_{i{d_l}}}^r}$$]]></tex-math><mml:math id="mml-eqn-9" display="block"><mml:mrow><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></disp-formula></p>
<p>Thus, the correctness of decryption is derived from the following two equations:</p>
<p><disp-formula id="eqn-10">
<label>(10)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-10.png"/><tex-math id="tex-eqn-10"><![CDATA[$$\eqalign{&{V}^{\prime} &= \displaystyle{{e\left( {X,s{k_{i{d_l}}}} \right)} \over {e\left( {PK,{\delta _l}} \right)}}\cr&&= \displaystyle{{e\left( {{g^r},{{\left( {p{k_{i{d_l}}}\cdot {P_1}} \right)}^s}} \right)} \over {e\left( {{g^s},{y_l}} \right)}}\cr&&= \displaystyle{{e\left( {{g^s},p{k_{i{d_l}}}^r} \right)\cdot e\left( {{g^s},{P_1}^r} \right)} \over {e\left( {{g^s},p{k_{i{d_l}}}^r} \right)}}\cr&&= e{\left( {PK,{P_1}} \right)^r} = V}$$]]></tex-math><mml:math id="mml-eqn-10" display="block"><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mi>s</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle><mml:mspace linebreak="newline"></mml:mspace><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>V</mml:mi></mml:math>
</alternatives></disp-formula></p>
<p>and</p>
<p><disp-formula id="eqn-11">
<label>(11)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-11.png"/><tex-math id="tex-eqn-11"><![CDATA[$${H_3}\left( {{V}^{\prime}} \right) \oplus Z = {H_3}\left( V \right) \oplus Z = (i{d_i}||M)$$]]></tex-math><mml:math id="mml-eqn-11" display="block"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>Z</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mi>V</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>Z</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>M</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math>
</alternatives></disp-formula></p>
</sec>
<sec id="s5">
<label>5</label>
<title>Security Analysis and Performance Evaluation</title>
<sec id="s5_1">
<label>5.1</label>
<title>Security Proof</title>
<p>In this section, Theorem 1 and Theorem 2 respectively prove the unforgeability and confidentiality of signcryption.</p>
<p>The master secret key <inline-formula id="ieqn-289">
<alternatives><inline-graphic xlink:href="ieqn-289.png"/><tex-math id="tex-ieqn-289"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-289"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> is randomly generated by <inline-formula id="ieqn-290">
<alternatives><inline-graphic xlink:href="ieqn-290.png"/><tex-math id="tex-ieqn-290"><![CDATA[$N$]]></tex-math><mml:math id="mml-ieqn-290"><mml:mi>N</mml:mi></mml:math>
</alternatives></inline-formula> authorities by the distributed key generation and no one knows the real value of <inline-formula id="ieqn-291">
<alternatives><inline-graphic xlink:href="ieqn-291.png"/><tex-math id="tex-ieqn-291"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-291"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, so <inline-formula id="ieqn-292">
<alternatives><inline-graphic xlink:href="ieqn-292.png"/><tex-math id="tex-ieqn-292"><![CDATA[${g^s}$]]></tex-math><mml:math id="mml-ieqn-292"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> cannot be used as an instance of CDH problem. Here, we set <inline-formula id="ieqn-293">
<alternatives><inline-graphic xlink:href="ieqn-293.png"/><tex-math id="tex-ieqn-293"><![CDATA[$PK = {g^{as}}$]]></tex-math><mml:math id="mml-ieqn-293"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, where<inline-formula id="ieqn-294">
<alternatives><inline-graphic xlink:href="ieqn-294.png"/><tex-math id="tex-ieqn-294"><![CDATA[${\rm \; }{g^a}$]]></tex-math><mml:math id="mml-ieqn-294"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>a</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> is a CDH instance. <inline-formula id="ieqn-295">
<alternatives><inline-graphic xlink:href="ieqn-295.png"/><tex-math id="tex-ieqn-295"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-295"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> is still generated by all authorities randomly and unknown to others, <inline-formula id="ieqn-296">
<alternatives><inline-graphic xlink:href="ieqn-296.png"/><tex-math id="tex-ieqn-296"><![CDATA[$a$]]></tex-math><mml:math id="mml-ieqn-296"><mml:mi>a</mml:mi></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-297">
<alternatives><inline-graphic xlink:href="ieqn-297.png"/><tex-math id="tex-ieqn-297"><![CDATA[${\rm s}$]]></tex-math><mml:math id="mml-ieqn-297"><mml:mrow><mml:mi mathvariant="normal">s</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula> are independent of each other. For any PPT adversary, even if he/she corrupts <inline-formula id="ieqn-298">
<alternatives><inline-graphic xlink:href="ieqn-298.png"/><tex-math id="tex-ieqn-298"><![CDATA[$N - 1$]]></tex-math><mml:math id="mml-ieqn-298"><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:math>
</alternatives></inline-formula> authorities, he/she cannot recover the value <inline-formula id="ieqn-299">
<alternatives><inline-graphic xlink:href="ieqn-299.png"/><tex-math id="tex-ieqn-299"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-299"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>. Therefore, for the PPT adversary, <inline-formula id="ieqn-300">
<alternatives><inline-graphic xlink:href="ieqn-300.png"/><tex-math id="tex-ieqn-300"><![CDATA[$PK = {g^s} \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-300"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-301">
<alternatives><inline-graphic xlink:href="ieqn-301.png"/><tex-math id="tex-ieqn-301"><![CDATA[$PK = {g^{as}} \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-301"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> are indistinguishable.</p>
<p><bold>Theorem 1:</bold> In the random oracle model, if there is a probabilistic polynomial time (PPT) adversary F, who can win the <bold>Definition 1</bold> game in Section 2.5 with a non-negligible advantage <inline-formula id="ieqn-302">
<alternatives><inline-graphic xlink:href="ieqn-302.png"/><tex-math id="tex-ieqn-302"><![CDATA[${\epsilon }$]]></tex-math><mml:math id="mml-ieqn-302"><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula> within time<inline-formula id="ieqn-303">
<alternatives><inline-graphic xlink:href="ieqn-303.png"/><tex-math id="tex-ieqn-303"><![CDATA[${\rm \; \tau }$]]></tex-math><mml:math id="mml-ieqn-303"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula>, then there is an algorithm C that can solve the CDH problem with the advantage <inline-formula id="ieqn-304">
<alternatives><inline-graphic xlink:href="ieqn-304.png"/><tex-math id="tex-ieqn-304"><![CDATA[${\epsilon }^{\prime} \ge \epsilon - \displaystyle{{{Q_{{H_2}}}({Q_{US}} + {Q_{UE}})} \over {{2^k}}}$]]></tex-math><mml:math id="mml-ieqn-304"><mml:msup><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2265;</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula> within time <inline-formula id="ieqn-305">
<alternatives><inline-graphic xlink:href="ieqn-305.png"/><tex-math id="tex-ieqn-305"><![CDATA[${\tau }^{\prime} \approx \tau + {Q_{UE}}O\left( {{\tau _1}} \right)$]]></tex-math><mml:math id="mml-ieqn-305"><mml:msup><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2248;</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi>O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-306">
<alternatives><inline-graphic xlink:href="ieqn-306.png"/><tex-math id="tex-ieqn-306"><![CDATA[${\tau _1}$]]></tex-math><mml:math id="mml-ieqn-306"><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is the running time of <inline-formula id="ieqn-307">
<alternatives><inline-graphic xlink:href="ieqn-307.png"/><tex-math id="tex-ieqn-307"><![CDATA[$e$]]></tex-math><mml:math id="mml-ieqn-307"><mml:mi>e</mml:mi></mml:math>
</alternatives></inline-formula>. (PPT adversary can make <inline-formula id="ieqn-308">
<alternatives><inline-graphic xlink:href="ieqn-308.png"/><tex-math id="tex-ieqn-308"><![CDATA[${{\rm Q}_S}$]]></tex-math><mml:math id="mml-ieqn-308"><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> secret key quires, <inline-formula id="ieqn-309">
<alternatives><inline-graphic xlink:href="ieqn-309.png"/><tex-math id="tex-ieqn-309"><![CDATA[${Q_K}$]]></tex-math><mml:math id="mml-ieqn-309"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>K</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> key generation quires, <inline-formula id="ieqn-310">
<alternatives><inline-graphic xlink:href="ieqn-310.png"/><tex-math id="tex-ieqn-310"><![CDATA[${Q_{US}}$]]></tex-math><mml:math id="mml-ieqn-310"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> user-sign quires, <inline-formula id="ieqn-311">
<alternatives><inline-graphic xlink:href="ieqn-311.png"/><tex-math id="tex-ieqn-311"><![CDATA[${Q_{UE}}$]]></tex-math><mml:math id="mml-ieqn-311"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> user-encrypt quires and <inline-formula id="ieqn-312">
<alternatives><inline-graphic xlink:href="ieqn-312.png"/><tex-math id="tex-ieqn-312"><![CDATA[${Q_{{H_0}}}$]]></tex-math><mml:math id="mml-ieqn-312"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>,<inline-formula id="ieqn-313">
<alternatives><inline-graphic xlink:href="ieqn-313.png"/><tex-math id="tex-ieqn-313"><![CDATA[${\rm \; }{Q_{{H_1}}}$]]></tex-math><mml:math id="mml-ieqn-313"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>,<inline-formula id="ieqn-314">
<alternatives><inline-graphic xlink:href="ieqn-314.png"/><tex-math id="tex-ieqn-314"><![CDATA[${\rm \; }{Q_{{H_2}}}$]]></tex-math><mml:math id="mml-ieqn-314"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-315">
<alternatives><inline-graphic xlink:href="ieqn-315.png"/><tex-math id="tex-ieqn-315"><![CDATA[${Q_{{H_3}}}$]]></tex-math><mml:math id="mml-ieqn-315"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> hash function <inline-formula id="ieqn-316">
<alternatives><inline-graphic xlink:href="ieqn-316.png"/><tex-math id="tex-ieqn-316"><![CDATA[${H_0}$]]></tex-math><mml:math id="mml-ieqn-316"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-317">
<alternatives><inline-graphic xlink:href="ieqn-317.png"/><tex-math id="tex-ieqn-317"><![CDATA[${H_1}$]]></tex-math><mml:math id="mml-ieqn-317"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-318">
<alternatives><inline-graphic xlink:href="ieqn-318.png"/><tex-math id="tex-ieqn-318"><![CDATA[${H_2}$]]></tex-math><mml:math id="mml-ieqn-318"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>,<inline-formula id="ieqn-319">
<alternatives><inline-graphic xlink:href="ieqn-319.png"/><tex-math id="tex-ieqn-319"><![CDATA[$\; {H_3}$]]></tex-math><mml:math id="mml-ieqn-319"><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> quires at most).</p>
<p><bold>Proof:</bold> The following shows how algorithm C uses F to solve the CDH problem with probability <inline-formula id="ieqn-320">
<alternatives><inline-graphic xlink:href="ieqn-320.png"/><tex-math id="tex-ieqn-320"><![CDATA[${\epsilon '}$]]></tex-math><mml:math id="mml-ieqn-320"><mml:mrow><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> within time <inline-formula id="ieqn-321">
<alternatives><inline-graphic xlink:href="ieqn-321.png"/><tex-math id="tex-ieqn-321"><![CDATA[${\rm \tau '}$]]></tex-math><mml:math id="mml-ieqn-321"><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>First, C gets an instance <inline-formula id="ieqn-322">
<alternatives><inline-graphic xlink:href="ieqn-322.png"/><tex-math id="tex-ieqn-322"><![CDATA[$\left\langle {{G_1},{G_2},p,g,e,{g^a},{g^b}} \right\rangle$]]></tex-math><mml:math id="mml-ieqn-322"><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>a</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> of CDH problem, whose goal is to calculate <inline-formula id="ieqn-323">
<alternatives><inline-graphic xlink:href="ieqn-323.png"/><tex-math id="tex-ieqn-323"><![CDATA[${g^{ab}} \in {G_1}$]]></tex-math><mml:math id="mml-ieqn-323"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. C simulates a challenger to play the following game with F.</p>
<p><bold>Global Setup:</bold> Challenger C executes global setup algorithm, inputs parameter <inline-formula id="ieqn-324">
<alternatives><inline-graphic xlink:href="ieqn-324.png"/><tex-math id="tex-ieqn-324"><![CDATA[$\lambda$]]></tex-math><mml:math id="mml-ieqn-324"><mml:mi>&#x03BB;</mml:mi></mml:math>
</alternatives></inline-formula>, outputs public parameter <inline-formula id="ieqn-325">
<alternatives><inline-graphic xlink:href="ieqn-325.png"/><tex-math id="tex-ieqn-325"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-325"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and sends it to F.</p>
<p><bold>Authority Setup:</bold> C represents all authorities to run the authority setup algorithm and generate secret key <inline-formula id="ieqn-326">
<alternatives><inline-graphic xlink:href="ieqn-326.png"/><tex-math id="tex-ieqn-326"><![CDATA[$s{k_{I{D_i}}}$]]></tex-math><mml:math id="mml-ieqn-326"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> for each authority <inline-formula id="ieqn-327">
<alternatives><inline-graphic xlink:href="ieqn-327.png"/><tex-math id="tex-ieqn-327"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-327"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-328">
<alternatives><inline-graphic xlink:href="ieqn-328.png"/><tex-math id="tex-ieqn-328"><![CDATA[$i \in \left\{ {1,2, \ldots N} \right\}$]]></tex-math><mml:math id="mml-ieqn-328"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, so only C knows the real value <inline-formula id="ieqn-329">
<alternatives><inline-graphic xlink:href="ieqn-329.png"/><tex-math id="tex-ieqn-329"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-329"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> of the master secret key. However, C sets the master secret key as <inline-formula id="ieqn-330">
<alternatives><inline-graphic xlink:href="ieqn-330.png"/><tex-math id="tex-ieqn-330"><![CDATA[$a\cdot s$]]></tex-math><mml:math id="mml-ieqn-330"><mml:mi>a</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, and sets the public key as <inline-formula id="ieqn-331">
<alternatives><inline-graphic xlink:href="ieqn-331.png"/><tex-math id="tex-ieqn-331"><![CDATA[$PK = {g^{as}}$]]></tex-math><mml:math id="mml-ieqn-331"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>. Because <inline-formula id="ieqn-332">
<alternatives><inline-graphic xlink:href="ieqn-332.png"/><tex-math id="tex-ieqn-332"><![CDATA[$s$]]></tex-math><mml:math id="mml-ieqn-332"><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-333">
<alternatives><inline-graphic xlink:href="ieqn-333.png"/><tex-math id="tex-ieqn-333"><![CDATA[$a\cdot s$]]></tex-math><mml:math id="mml-ieqn-333"><mml:mi>a</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> are unknown to F, <inline-formula id="ieqn-334">
<alternatives><inline-graphic xlink:href="ieqn-334.png"/><tex-math id="tex-ieqn-334"><![CDATA[${g^s}$]]></tex-math><mml:math id="mml-ieqn-334"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-335">
<alternatives><inline-graphic xlink:href="ieqn-335.png"/><tex-math id="tex-ieqn-335"><![CDATA[${g^{as}}$]]></tex-math><mml:math id="mml-ieqn-335"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> are indistinguishable to F. Finally, C adds parameters <inline-formula id="ieqn-336">
<alternatives><inline-graphic xlink:href="ieqn-336.png"/><tex-math id="tex-ieqn-336"><![CDATA[$\left\{ {\left( {I{D_i},{A_{i0}}} \right)} \right\}_{i = 1}^N$]]></tex-math><mml:math id="mml-ieqn-336"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-337">
<alternatives><inline-graphic xlink:href="ieqn-337.png"/><tex-math id="tex-ieqn-337"><![CDATA[$PK = {g^{as}}$]]></tex-math><mml:math id="mml-ieqn-337"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-338">
<alternatives><inline-graphic xlink:href="ieqn-338.png"/><tex-math id="tex-ieqn-338"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-338"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>. F can obtain <inline-formula id="ieqn-339">
<alternatives><inline-graphic xlink:href="ieqn-339.png"/><tex-math id="tex-ieqn-339"><![CDATA[$params = \left\langle {p,g,{P_1},e,{G_1},{G_2},{H_0},{H_1},{H_2},{H_3},N,\left\{ {\left( {I{D_i},{A_{i0}}} \right)} \right\}_{i = 1}^N,PK} \right\rangle$]]></tex-math><mml:math id="mml-ieqn-339"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> from C. After receiving the <inline-formula id="ieqn-340">
<alternatives><inline-graphic xlink:href="ieqn-340.png"/><tex-math id="tex-ieqn-340"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-340"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, F outputs the target identity <inline-formula id="ieqn-341">
<alternatives><inline-graphic xlink:href="ieqn-341.png"/><tex-math id="tex-ieqn-341"><![CDATA[$i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-341"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p><inline-formula id="ieqn-342">
<alternatives><inline-graphic xlink:href="ieqn-342.png"/><tex-math id="tex-ieqn-342"><![CDATA[${H_0}$]]></tex-math><mml:math id="mml-ieqn-342"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-343">
<alternatives><inline-graphic xlink:href="ieqn-343.png"/><tex-math id="tex-ieqn-343"><![CDATA[${H_1}$]]></tex-math><mml:math id="mml-ieqn-343"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-344">
<alternatives><inline-graphic xlink:href="ieqn-344.png"/><tex-math id="tex-ieqn-344"><![CDATA[${H_2}$]]></tex-math><mml:math id="mml-ieqn-344"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-345">
<alternatives><inline-graphic xlink:href="ieqn-345.png"/><tex-math id="tex-ieqn-345"><![CDATA[${H_3}$]]></tex-math><mml:math id="mml-ieqn-345"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> are random oracle models controlled by C. The query results of <inline-formula id="ieqn-346">
<alternatives><inline-graphic xlink:href="ieqn-346.png"/><tex-math id="tex-ieqn-346"><![CDATA[${H_0}$]]></tex-math><mml:math id="mml-ieqn-346"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-347">
<alternatives><inline-graphic xlink:href="ieqn-347.png"/><tex-math id="tex-ieqn-347"><![CDATA[${H_1}$]]></tex-math><mml:math id="mml-ieqn-347"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-348">
<alternatives><inline-graphic xlink:href="ieqn-348.png"/><tex-math id="tex-ieqn-348"><![CDATA[${H_2}$]]></tex-math><mml:math id="mml-ieqn-348"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-349">
<alternatives><inline-graphic xlink:href="ieqn-349.png"/><tex-math id="tex-ieqn-349"><![CDATA[${H_3}$]]></tex-math><mml:math id="mml-ieqn-349"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> are stored in <inline-formula id="ieqn-350">
<alternatives><inline-graphic xlink:href="ieqn-350.png"/><tex-math id="tex-ieqn-350"><![CDATA[${H_0} - list$]]></tex-math><mml:math id="mml-ieqn-350"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-351">
<alternatives><inline-graphic xlink:href="ieqn-351.png"/><tex-math id="tex-ieqn-351"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-351"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-352">
<alternatives><inline-graphic xlink:href="ieqn-352.png"/><tex-math id="tex-ieqn-352"><![CDATA[${H_2} - list$]]></tex-math><mml:math id="mml-ieqn-352"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-353">
<alternatives><inline-graphic xlink:href="ieqn-353.png"/><tex-math id="tex-ieqn-353"><![CDATA[${H_3} - list$]]></tex-math><mml:math id="mml-ieqn-353"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> respectively.</p>
<p><bold>Queries:</bold> Forger F performs some queries to Challenger C:</p>
<p>- <inline-formula id="ieqn-354">
<alternatives><inline-graphic xlink:href="ieqn-354.png"/><tex-math id="tex-ieqn-354"><![CDATA[${H_0}$]]></tex-math><mml:math id="mml-ieqn-354"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> queries: C enters an identity <inline-formula id="ieqn-355">
<alternatives><inline-graphic xlink:href="ieqn-355.png"/><tex-math id="tex-ieqn-355"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-355"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> or <inline-formula id="ieqn-356">
<alternatives><inline-graphic xlink:href="ieqn-356.png"/><tex-math id="tex-ieqn-356"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-356"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> into <inline-formula id="ieqn-357">
<alternatives><inline-graphic xlink:href="ieqn-357.png"/><tex-math id="tex-ieqn-357"><![CDATA[${H_0}$]]></tex-math><mml:math id="mml-ieqn-357"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. If there is <inline-formula id="ieqn-358">
<alternatives><inline-graphic xlink:href="ieqn-358.png"/><tex-math id="tex-ieqn-358"><![CDATA[$\left( {I{D_i},{x_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-358"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> or <inline-formula id="ieqn-359">
<alternatives><inline-graphic xlink:href="ieqn-359.png"/><tex-math id="tex-ieqn-359"><![CDATA[$\left( {i{d_i},{x_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-359"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-360">
<alternatives><inline-graphic xlink:href="ieqn-360.png"/><tex-math id="tex-ieqn-360"><![CDATA[${H_0} - list$]]></tex-math><mml:math id="mml-ieqn-360"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, returns <inline-formula id="ieqn-361">
<alternatives><inline-graphic xlink:href="ieqn-361.png"/><tex-math id="tex-ieqn-361"><![CDATA[${x_i}$]]></tex-math><mml:math id="mml-ieqn-361"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, otherwise C performs the following steps:</p>
<p>1) Randomly selects an integer <inline-formula id="ieqn-362">
<alternatives><inline-graphic xlink:href="ieqn-362.png"/><tex-math id="tex-ieqn-362"><![CDATA[${x_i} \in Z_p^{\rm *}$]]></tex-math><mml:math id="mml-ieqn-362"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msubsup></mml:math>
</alternatives></inline-formula>;</p>
<p>2) Saves <inline-formula id="ieqn-363">
<alternatives><inline-graphic xlink:href="ieqn-363.png"/><tex-math id="tex-ieqn-363"><![CDATA[$\left( {I{D_i},{x_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-363"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> or <inline-formula id="ieqn-364">
<alternatives><inline-graphic xlink:href="ieqn-364.png"/><tex-math id="tex-ieqn-364"><![CDATA[$\left( {i{d_i},{x_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-364"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-365">
<alternatives><inline-graphic xlink:href="ieqn-365.png"/><tex-math id="tex-ieqn-365"><![CDATA[${H_0} - list$]]></tex-math><mml:math id="mml-ieqn-365"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>;</p>
<p>3) Returns <inline-formula id="ieqn-366">
<alternatives><inline-graphic xlink:href="ieqn-366.png"/><tex-math id="tex-ieqn-366"><![CDATA[${x_i}$]]></tex-math><mml:math id="mml-ieqn-366"><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>- <inline-formula id="ieqn-367">
<alternatives><inline-graphic xlink:href="ieqn-367.png"/><tex-math id="tex-ieqn-367"><![CDATA[${H_1}$]]></tex-math><mml:math id="mml-ieqn-367"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> queries: C enters an identity <inline-formula id="ieqn-368">
<alternatives><inline-graphic xlink:href="ieqn-368.png"/><tex-math id="tex-ieqn-368"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-368"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> into<inline-formula id="ieqn-369">
<alternatives><inline-graphic xlink:href="ieqn-369.png"/><tex-math id="tex-ieqn-369"><![CDATA[${\rm \; }{H_1}$]]></tex-math><mml:math id="mml-ieqn-369"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. If there is <inline-formula id="ieqn-370">
<alternatives><inline-graphic xlink:href="ieqn-370.png"/><tex-math id="tex-ieqn-370"><![CDATA[$\left( {i{d_i},{k_i},p{k_{i{d_i}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-370"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-371">
<alternatives><inline-graphic xlink:href="ieqn-371.png"/><tex-math id="tex-ieqn-371"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-371"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, returns <inline-formula id="ieqn-372">
<alternatives><inline-graphic xlink:href="ieqn-372.png"/><tex-math id="tex-ieqn-372"><![CDATA[$p{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-372"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, otherwise C performs the following steps:</p>
<p>1) Randomly selects an integer <inline-formula id="ieqn-373">
<alternatives><inline-graphic xlink:href="ieqn-373.png"/><tex-math id="tex-ieqn-373"><![CDATA[${k_i} \in Z_p^*$]]></tex-math><mml:math id="mml-ieqn-373"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula>;</p>
<p>2) If <inline-formula id="ieqn-374">
<alternatives><inline-graphic xlink:href="ieqn-374.png"/><tex-math id="tex-ieqn-374"><![CDATA[$i{d_i} = i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-374"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, (where <inline-formula id="ieqn-375">
<alternatives><inline-graphic xlink:href="ieqn-375.png"/><tex-math id="tex-ieqn-375"><![CDATA[$i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-375"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is C random guess of the identity that F will attack) calculates <inline-formula id="ieqn-376">
<alternatives><inline-graphic xlink:href="ieqn-376.png"/><tex-math id="tex-ieqn-376"><![CDATA[$\displaystyle{{{g^{{k_i}}}} \over {{P_1}}}$]]></tex-math><mml:math id="mml-ieqn-376"><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>, otherwise calculates <inline-formula id="ieqn-377">
<alternatives><inline-graphic xlink:href="ieqn-377.png"/><tex-math id="tex-ieqn-377"><![CDATA[${g^{{k_i}}}$]]></tex-math><mml:math id="mml-ieqn-377"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>;</p>
<p>3) Saves <inline-formula id="ieqn-378">
<alternatives><inline-graphic xlink:href="ieqn-378.png"/><tex-math id="tex-ieqn-378"><![CDATA[$\left( {i{d_i},{k_i},p{k_{i{d_i}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-378"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-379">
<alternatives><inline-graphic xlink:href="ieqn-379.png"/><tex-math id="tex-ieqn-379"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-379"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>;</p>
<p>4) Returns <inline-formula id="ieqn-380">
<alternatives><inline-graphic xlink:href="ieqn-380.png"/><tex-math id="tex-ieqn-380"><![CDATA[$p{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-380"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>- <inline-formula id="ieqn-381">
<alternatives><inline-graphic xlink:href="ieqn-381.png"/><tex-math id="tex-ieqn-381"><![CDATA[${H_2}$]]></tex-math><mml:math id="mml-ieqn-381"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> queries: C enters an array <inline-formula id="ieqn-382">
<alternatives><inline-graphic xlink:href="ieqn-382.png"/><tex-math id="tex-ieqn-382"><![CDATA[$\left( {{M_i},{X_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-382"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> into <inline-formula id="ieqn-383">
<alternatives><inline-graphic xlink:href="ieqn-383.png"/><tex-math id="tex-ieqn-383"><![CDATA[${H_2}$]]></tex-math><mml:math id="mml-ieqn-383"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. If there is <inline-formula id="ieqn-384">
<alternatives><inline-graphic xlink:href="ieqn-384.png"/><tex-math id="tex-ieqn-384"><![CDATA[$\left( {{M_i},{X_i},{h_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-384"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-385">
<alternatives><inline-graphic xlink:href="ieqn-385.png"/><tex-math id="tex-ieqn-385"><![CDATA[${H_2} - list$]]></tex-math><mml:math id="mml-ieqn-385"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, returns <inline-formula id="ieqn-386">
<alternatives><inline-graphic xlink:href="ieqn-386.png"/><tex-math id="tex-ieqn-386"><![CDATA[${h_i}$]]></tex-math><mml:math id="mml-ieqn-386"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, otherwise C performs the following steps:</p>
<p>1) Randomly selects an integer <inline-formula id="ieqn-387">
<alternatives><inline-graphic xlink:href="ieqn-387.png"/><tex-math id="tex-ieqn-387"><![CDATA[${h_i} \in Z_p^*$]]></tex-math><mml:math id="mml-ieqn-387"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula>;</p>
<p>2) Saves <inline-formula id="ieqn-388">
<alternatives><inline-graphic xlink:href="ieqn-388.png"/><tex-math id="tex-ieqn-388"><![CDATA[$\left( {{M_i},{X_i},{h_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-388"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>X</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-389">
<alternatives><inline-graphic xlink:href="ieqn-389.png"/><tex-math id="tex-ieqn-389"><![CDATA[${H_2} - list$]]></tex-math><mml:math id="mml-ieqn-389"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>;</p>
<p>3) Returns <inline-formula id="ieqn-390">
<alternatives><inline-graphic xlink:href="ieqn-390.png"/><tex-math id="tex-ieqn-390"><![CDATA[${h_i}$]]></tex-math><mml:math id="mml-ieqn-390"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>- <inline-formula id="ieqn-391">
<alternatives><inline-graphic xlink:href="ieqn-391.png"/><tex-math id="tex-ieqn-391"><![CDATA[${H_3}$]]></tex-math><mml:math id="mml-ieqn-391"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> queries: C enters an element <inline-formula id="ieqn-392">
<alternatives><inline-graphic xlink:href="ieqn-392.png"/><tex-math id="tex-ieqn-392"><![CDATA[${V_i} \in {G_2}$]]></tex-math><mml:math id="mml-ieqn-392"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> into <inline-formula id="ieqn-393">
<alternatives><inline-graphic xlink:href="ieqn-393.png"/><tex-math id="tex-ieqn-393"><![CDATA[${H_3}$]]></tex-math><mml:math id="mml-ieqn-393"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. If there is <inline-formula id="ieqn-394">
<alternatives><inline-graphic xlink:href="ieqn-394.png"/><tex-math id="tex-ieqn-394"><![CDATA[$\left( {{V_i},{\rho _i}} \right)$]]></tex-math><mml:math id="mml-ieqn-394"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-395">
<alternatives><inline-graphic xlink:href="ieqn-395.png"/><tex-math id="tex-ieqn-395"><![CDATA[${H_3} - list$]]></tex-math><mml:math id="mml-ieqn-395"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, returns <inline-formula id="ieqn-396">
<alternatives><inline-graphic xlink:href="ieqn-396.png"/><tex-math id="tex-ieqn-396"><![CDATA[${\rho _i}$]]></tex-math><mml:math id="mml-ieqn-396"><mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> otherwise C performs the following steps:</p>
<p>1) Randomly selects a character string <inline-formula id="ieqn-397">
<alternatives><inline-graphic xlink:href="ieqn-397.png"/><tex-math id="tex-ieqn-397"><![CDATA[${\rho _i} \in {\left\{ {0,1} \right\}^{{\lambda _1} + {\lambda _2}}}$]]></tex-math><mml:math id="mml-ieqn-397"><mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>;</p>
<p>2) Saves <inline-formula id="ieqn-398">
<alternatives><inline-graphic xlink:href="ieqn-398.png"/><tex-math id="tex-ieqn-398"><![CDATA[$\left( {{V_i},{\rho _i}} \right)$]]></tex-math><mml:math id="mml-ieqn-398"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-399">
<alternatives><inline-graphic xlink:href="ieqn-399.png"/><tex-math id="tex-ieqn-399"><![CDATA[${H_3} - list$]]></tex-math><mml:math id="mml-ieqn-399"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>;</p>
<p>3) Returns <inline-formula id="ieqn-400">
<alternatives><inline-graphic xlink:href="ieqn-400.png"/><tex-math id="tex-ieqn-400"><![CDATA[${\rho _i}$]]></tex-math><mml:math id="mml-ieqn-400"><mml:mrow><mml:msub><mml:mi>&#x03C1;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>- Secret key queries: F requests secret keys <inline-formula id="ieqn-401">
<alternatives><inline-graphic xlink:href="ieqn-401.png"/><tex-math id="tex-ieqn-401"><![CDATA[${\rm s}{{\rm k}_{I{D_{i \in {Q_S}}}}}$]]></tex-math><mml:math id="mml-ieqn-401"><mml:mrow><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">k</mml:mi></mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of authority <inline-formula id="ieqn-402">
<alternatives><inline-graphic xlink:href="ieqn-402.png"/><tex-math id="tex-ieqn-402"><![CDATA[${\rm I}{{\rm D}_{i \in {Q_S}}}$]]></tex-math><mml:math id="mml-ieqn-402"><mml:mrow><mml:mi mathvariant="normal">I</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">D</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-403">
<alternatives><inline-graphic xlink:href="ieqn-403.png"/><tex-math id="tex-ieqn-403"><![CDATA[${Q_S} \subset \left\{ {1,2, \ldots ,N} \right\}$]]></tex-math><mml:math id="mml-ieqn-403"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2282;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> represents the index set of corrupt authorities. Because C generates the secret keys of all authorities , C can answer the queries from F.</p>
<p>- Key generation queries: F asks C about the secret key <inline-formula id="ieqn-404">
<alternatives><inline-graphic xlink:href="ieqn-404.png"/><tex-math id="tex-ieqn-404"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-404"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of the identity <inline-formula id="ieqn-405">
<alternatives><inline-graphic xlink:href="ieqn-405.png"/><tex-math id="tex-ieqn-405"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-405"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. If <inline-formula id="ieqn-406">
<alternatives><inline-graphic xlink:href="ieqn-406.png"/><tex-math id="tex-ieqn-406"><![CDATA[$i{d_i} = i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-406"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C does not answer this query and terminate the game. Otherwise, C looks for <inline-formula id="ieqn-407">
<alternatives><inline-graphic xlink:href="ieqn-407.png"/><tex-math id="tex-ieqn-407"><![CDATA[$\left( {i{d_i},{k_i},p{k_{i{d_i}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-407"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-408">
<alternatives><inline-graphic xlink:href="ieqn-408.png"/><tex-math id="tex-ieqn-408"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-408"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, calculates <inline-formula id="ieqn-409">
<alternatives><inline-graphic xlink:href="ieqn-409.png"/><tex-math id="tex-ieqn-409"><![CDATA[$s{k_{i{d_i}}} = {\left( {{g^{{k_i}}} \cdot {P_1}} \right)^{as}}$]]></tex-math><mml:math id="mml-ieqn-409"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, and then returns it to F.</p>
<p>- User-sign queries: F asks C for the signature <inline-formula id="ieqn-410">
<alternatives><inline-graphic xlink:href="ieqn-410.png"/><tex-math id="tex-ieqn-410"><![CDATA[${{\rm \sigma }_i}$]]></tex-math><mml:math id="mml-ieqn-410"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of a tuple <inline-formula id="ieqn-411">
<alternatives><inline-graphic xlink:href="ieqn-411.png"/><tex-math id="tex-ieqn-411"><![CDATA[$\left( {i{d_i},M} \right)$]]></tex-math><mml:math id="mml-ieqn-411"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>M</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. If <inline-formula id="ieqn-412">
<alternatives><inline-graphic xlink:href="ieqn-412.png"/><tex-math id="tex-ieqn-412"><![CDATA[$i{d_i} \ne i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-412"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2260;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C will get the correct <inline-formula id="ieqn-413">
<alternatives><inline-graphic xlink:href="ieqn-413.png"/><tex-math id="tex-ieqn-413"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-413"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> from key generation queries, and then calculates the signature <inline-formula id="ieqn-414">
<alternatives><inline-graphic xlink:href="ieqn-414.png"/><tex-math id="tex-ieqn-414"><![CDATA[${\sigma _i}$]]></tex-math><mml:math id="mml-ieqn-414"><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and transmits it to F. If <inline-formula id="ieqn-415">
<alternatives><inline-graphic xlink:href="ieqn-415.png"/><tex-math id="tex-ieqn-415"><![CDATA[$i{d_i} = i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-415"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C cannot obtain <inline-formula id="ieqn-416">
<alternatives><inline-graphic xlink:href="ieqn-416.png"/><tex-math id="tex-ieqn-416"><![CDATA[$s{k_{i{d_{{i^*}}}}}$]]></tex-math><mml:math id="mml-ieqn-416"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> from key generation queries to calculate the signature directly. However, C can answer F&#x2019;s query through the following steps: 1) C randomly selects <inline-formula id="ieqn-417">
<alternatives><inline-graphic xlink:href="ieqn-417.png"/><tex-math id="tex-ieqn-417"><![CDATA[$r' \in Z_p^*$]]></tex-math><mml:math id="mml-ieqn-417"><mml:msup><mml:mi>r</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula> and calculates <inline-formula id="ieqn-418">
<alternatives><inline-graphic xlink:href="ieqn-418.png"/><tex-math id="tex-ieqn-418"><![CDATA[$X' = {g^{r'}}$]]></tex-math><mml:math id="mml-ieqn-418"><mml:msup><mml:mi>X</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>. 2) C finds <inline-formula id="ieqn-419">
<alternatives><inline-graphic xlink:href="ieqn-419.png"/><tex-math id="tex-ieqn-419"><![CDATA[$\left( {M,{X}^{\prime},h'} \right)$]]></tex-math><mml:math id="mml-ieqn-419"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-420">
<alternatives><inline-graphic xlink:href="ieqn-420.png"/><tex-math id="tex-ieqn-420"><![CDATA[${H_2} - list$]]></tex-math><mml:math id="mml-ieqn-420"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> list and gets <inline-formula id="ieqn-421">
<alternatives><inline-graphic xlink:href="ieqn-421.png"/><tex-math id="tex-ieqn-421"><![CDATA[$h'$]]></tex-math><mml:math id="mml-ieqn-421"><mml:msup><mml:mi>h</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:math>
</alternatives></inline-formula>. 3) C finds <inline-formula id="ieqn-422">
<alternatives><inline-graphic xlink:href="ieqn-422.png"/><tex-math id="tex-ieqn-422"><![CDATA[$\left( {i{d_i},{k_i},p{k_{i{d_i}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-422"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-423">
<alternatives><inline-graphic xlink:href="ieqn-423.png"/><tex-math id="tex-ieqn-423"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-423"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> (if it cannot be found, C chooses <inline-formula id="ieqn-424">
<alternatives><inline-graphic xlink:href="ieqn-424.png"/><tex-math id="tex-ieqn-424"><![CDATA[${k_i} \in Z_p^*$]]></tex-math><mml:math id="mml-ieqn-424"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula>, then calculates <inline-formula id="ieqn-425">
<alternatives><inline-graphic xlink:href="ieqn-425.png"/><tex-math id="tex-ieqn-425"><![CDATA[$p{k_{i{d_i}}} = \displaystyle{{{g^{{k_i}}}} \over {{P_1}}}$]]></tex-math><mml:math id="mml-ieqn-425"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula> and stores <inline-formula id="ieqn-426">
<alternatives><inline-graphic xlink:href="ieqn-426.png"/><tex-math id="tex-ieqn-426"><![CDATA[$\left( {i{d_i},{k_i},p{k_{i{d_i}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-426"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-427">
<alternatives><inline-graphic xlink:href="ieqn-427.png"/><tex-math id="tex-ieqn-427"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-427"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>). 4) C calculates <inline-formula id="ieqn-428">
<alternatives><inline-graphic xlink:href="ieqn-428.png"/><tex-math id="tex-ieqn-428"><![CDATA[${\rm {W}^{\prime}} = s{k_{i{d_i}}}^{{h}^{\prime}}p{k_{i{d_i}}}^{{r}^{\prime}} = \displaystyle{{{g^{{k_i}\left( {as \cdot {h}^{\prime} + {r}^{\prime}} \right)}}} \over {{P_1}^{{r}^{\prime}}}}$]]></tex-math><mml:math id="mml-ieqn-428"><mml:mrow><mml:msup><mml:mrow><mml:mi mathvariant="normal">W</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>s</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x002B;</mml:mo><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>, and then gets <inline-formula id="ieqn-429">
<alternatives><inline-graphic xlink:href="ieqn-429.png"/><tex-math id="tex-ieqn-429"><![CDATA[${{\rm \sigma }_i} = \left( {X',W'} \right)$]]></tex-math><mml:math id="mml-ieqn-429"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>W</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and returns it to F.</p>
<p>- User-encrypt queries: To forge a signcryption, the query is executed after the user-sign query. When C receives the encryption query about <inline-formula id="ieqn-430">
<alternatives><inline-graphic xlink:href="ieqn-430.png"/><tex-math id="tex-ieqn-430"><![CDATA[$\left( {M,R,i{d_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-430"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-431">
<alternatives><inline-graphic xlink:href="ieqn-431.png"/><tex-math id="tex-ieqn-431"><![CDATA[$i{d_i} = i{d_{{i^*}}}$]]></tex-math><mml:math id="mml-ieqn-431"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-432">
<alternatives><inline-graphic xlink:href="ieqn-432.png"/><tex-math id="tex-ieqn-432"><![CDATA[$R$]]></tex-math><mml:math id="mml-ieqn-432"><mml:mi>R</mml:mi></mml:math>
</alternatives></inline-formula> represents a receiver set <inline-formula id="ieqn-433">
<alternatives><inline-graphic xlink:href="ieqn-433.png"/><tex-math id="tex-ieqn-433"><![CDATA[$\left\{ {i{d_l}} \right\}_{l = 1}^n$]]></tex-math><mml:math id="mml-ieqn-433"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula> (<inline-formula id="ieqn-434">
<alternatives><inline-graphic xlink:href="ieqn-434.png"/><tex-math id="tex-ieqn-434"><![CDATA[$l$]]></tex-math><mml:math id="mml-ieqn-434"><mml:mi>l</mml:mi></mml:math>
</alternatives></inline-formula> represents the identity of receivers and <inline-formula id="ieqn-435">
<alternatives><inline-graphic xlink:href="ieqn-435.png"/><tex-math id="tex-ieqn-435"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-435"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> represents the number of receivers), C answers F through the following steps: 1) C calculates <inline-formula id="ieqn-436">
<alternatives><inline-graphic xlink:href="ieqn-436.png"/><tex-math id="tex-ieqn-436"><![CDATA[${V}^{\prime} = e\left( {P{K^{{r}^{\prime}}},{P_1}} \right) = e\left( {{g^{as \cdot {r^{'}}}},{P_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-436"><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, and then finds <inline-formula id="ieqn-437">
<alternatives><inline-graphic xlink:href="ieqn-437.png"/><tex-math id="tex-ieqn-437"><![CDATA[$\left( {V',\rho '} \right)$]]></tex-math><mml:math id="mml-ieqn-437"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mi>V</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-438">
<alternatives><inline-graphic xlink:href="ieqn-438.png"/><tex-math id="tex-ieqn-438"><![CDATA[${H_3} - list$]]></tex-math><mml:math id="mml-ieqn-438"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>. 2) C calculates<inline-formula id="ieqn-439">
<alternatives><inline-graphic xlink:href="ieqn-439.png"/><tex-math id="tex-ieqn-439"><![CDATA[$\; Z' = \rho ' \oplus (i{d_i}||M)$]]></tex-math><mml:math id="mml-ieqn-439"><mml:mspace width="thickmathspace"></mml:mspace><mml:msup><mml:mi>Z</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x003D;</mml:mo><mml:msup><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x2295;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>M</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math>
</alternatives></inline-formula>; 3) C finds <inline-formula id="ieqn-440">
<alternatives><inline-graphic xlink:href="ieqn-440.png"/><tex-math id="tex-ieqn-440"><![CDATA[$\left( {i{d_l},{x_l}} \right)$]]></tex-math><mml:math id="mml-ieqn-440"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <italic>H</italic><sub>0</sub> &#x2013; <italic>list</italic>, calculates <inline-formula id="ieqn-442">
<alternatives><inline-graphic xlink:href="ieqn-442.png"/><tex-math id="tex-ieqn-442"><![CDATA[${y_l} = p{k_{i{d_l}}}^{{r}^{\prime}}$]]></tex-math><mml:math id="mml-ieqn-442"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:math>
</alternatives></inline-formula> and gets <inline-formula id="ieqn-443">
<alternatives><inline-graphic xlink:href="ieqn-443.png"/><tex-math id="tex-ieqn-443"><![CDATA[${L_l}$]]></tex-math><mml:math id="mml-ieqn-443"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-444">
<alternatives><inline-graphic xlink:href="ieqn-444.png"/><tex-math id="tex-ieqn-444"><![CDATA[$l \in \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-444"><mml:mi>l</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. 4) C gets the signcryption <inline-formula id="ieqn-445">
<alternatives><inline-graphic xlink:href="ieqn-445.png"/><tex-math id="tex-ieqn-445"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-445"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> and sends it to F.</p>
<p><bold>Forgery:</bold> F generates the target signcryption:</p>
<p><disp-formula id="eqn-12">
<label>(12)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-12.png"/><tex-math id="tex-eqn-12"><![CDATA[$$S{C^*} = \left\langle {{L_1}^*,{L_2}^*, \ldots ,{L_n}^*,{\sigma _i}^* = \left( {{X^*},{W^*}} \right),{Z^*}} \right\rangle$$]]></tex-math><mml:math id="mml-eqn-12" display="block"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>W</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>Z</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p>If the forgery is successful, the following equation holds:</p>
<p><disp-formula id="eqn-13">
<label>(13)</label>
<alternatives>
<graphic mimetype="image" mime-subtype="png" xlink:href="eqn-13.png"/><tex-math id="tex-eqn-13"><![CDATA[$$e\left( {g,{W^*}} \right) = ?e\left( {P{K^h} \cdot {X^*},p{k_{i{d_i}}}} \right) \cdot e\left( {P{K^h},{P_1}} \right)$$]]></tex-math><mml:math id="mml-eqn-13" display="block"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>W</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mo>?</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></disp-formula></p>
<p>Define <inline-formula id="ieqn-446">
<alternatives><inline-graphic xlink:href="ieqn-446.png"/><tex-math id="tex-ieqn-446"><![CDATA[$b = {k_i}h$]]></tex-math><mml:math id="mml-ieqn-446"><mml:mi>b</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:math>
</alternatives></inline-formula>, then <inline-formula id="ieqn-447">
<alternatives><inline-graphic xlink:href="ieqn-447.png"/><tex-math id="tex-ieqn-447"><![CDATA[${W^*} = s{k_{i{d_i}}}^hp{k_{i{d_i}}}^r = {\left( {{g^{as \cdot {k_i}}}} \right)^h}p{k_{i{d_i}}}^r = {g^{ab \cdot s}}p{k_{i{d_i}}}^r$]]></tex-math><mml:math id="mml-ieqn-447"><mml:mrow><mml:msup><mml:mi>W</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>s</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:msup><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula>. Therefore, we can get the solution of CDH problem <inline-formula id="ieqn-448">
<alternatives><inline-graphic xlink:href="ieqn-448.png"/><tex-math id="tex-ieqn-448"><![CDATA[${g^{ab}} = {\left( {\displaystyle{{{W^*}} \over {p{k_{i{d_i}}}^r}}} \right)^{{s^{ - 1}}}}$]]></tex-math><mml:math id="mml-ieqn-448"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>W</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>In the general signcryption query, as most <inline-formula id="ieqn-449">
<alternatives><inline-graphic xlink:href="ieqn-449.png"/><tex-math id="tex-ieqn-449"><![CDATA[${Q_{{H_2}}}\; {H_2}\;$]]></tex-math><mml:math id="mml-ieqn-449"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:math>
</alternatives></inline-formula>queries are conducted, the probability that C fails to answer a signcryption query is not greater than <inline-formula id="ieqn-450">
<alternatives><inline-graphic xlink:href="ieqn-450.png"/><tex-math id="tex-ieqn-450"><![CDATA[$\displaystyle{{{Q_{{H_2}}}({Q_{US}} + {Q_{UE}})} \over {{2^k}}}$]]></tex-math><mml:math id="mml-ieqn-450"><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>. Therefore, C can get the advantage <inline-formula id="ieqn-451">
<alternatives><inline-graphic xlink:href="ieqn-451.png"/><tex-math id="tex-ieqn-451"><![CDATA[${ {\epsilon }^{\prime}} \ge { \epsilon } - \displaystyle{{{Q_{{H_2}}}({Q_{US}} + {Q_{UE}})} \over {{2^k}}}$]]></tex-math><mml:math id="mml-ieqn-451"><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2265;</mml:mo><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-452">
<alternatives><inline-graphic xlink:href="ieqn-452.png"/><tex-math id="tex-ieqn-452"><![CDATA[${\rm {\tau }^{\prime}} \approx {\rm \tau } + {Q_{UE}}O\left( {{\tau _1}} \right)$]]></tex-math><mml:math id="mml-ieqn-452"><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2248;</mml:mo><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mi>O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-453">
<alternatives><inline-graphic xlink:href="ieqn-453.png"/><tex-math id="tex-ieqn-453"><![CDATA[${\tau _1}$]]></tex-math><mml:math id="mml-ieqn-453"><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is the running time of <inline-formula id="ieqn-454">
<alternatives><inline-graphic xlink:href="ieqn-454.png"/><tex-math id="tex-ieqn-454"><![CDATA[$e$]]></tex-math><mml:math id="mml-ieqn-454"><mml:mi>e</mml:mi></mml:math>
</alternatives></inline-formula>. From the above proof and CDH problem, we can see that this scheme satisfies the unforgeability of signcryption.</p>
<p><bold>Theorem 2:</bold> In the random oracle model, if there is a probabilistic polynomial time (PPT) adversary A, who can win the <bold>Definition 2</bold> game in Section 2.5 with a non-negligible advantage <inline-formula id="ieqn-455">
<alternatives><inline-graphic xlink:href="ieqn-455.png"/><tex-math id="tex-ieqn-455"><![CDATA[${\epsilon }$]]></tex-math><mml:math id="mml-ieqn-455"><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula> within time<inline-formula id="ieqn-456">
<alternatives><inline-graphic xlink:href="ieqn-456.png"/><tex-math id="tex-ieqn-456"><![CDATA[${\rm \; \tau }$]]></tex-math><mml:math id="mml-ieqn-456"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>&#x03C4;</mml:mi></mml:mrow></mml:math>
</alternatives></inline-formula>, then there is an algorithm C that can solve the BCDH problem with the advantage <inline-formula id="ieqn-457">
<alternatives><inline-graphic xlink:href="ieqn-457.png"/><tex-math id="tex-ieqn-457"><![CDATA[${\epsilon }^{\prime} \ge \epsilon - \displaystyle{{{Q_{{H_3}}}{Q_{RD\& V}}} \over {{2^k}}}$]]></tex-math><mml:math id="mml-ieqn-457"><mml:msup><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2265;</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>R</mml:mi><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x0026;</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula> within time <inline-formula id="ieqn-458">
<alternatives><inline-graphic xlink:href="ieqn-458.png"/><tex-math id="tex-ieqn-458"><![CDATA[${\tau }^{\prime} \approx \tau + (2{Q_{RD\& V}} + {Q_{UE}})O\left( {{\tau _1}} \right)$]]></tex-math><mml:math id="mml-ieqn-458"><mml:msup><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2248;</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>R</mml:mi><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x0026;</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mi>O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-459">
<alternatives><inline-graphic xlink:href="ieqn-459.png"/><tex-math id="tex-ieqn-459"><![CDATA[${\tau _1}$]]></tex-math><mml:math id="mml-ieqn-459"><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is the running time of <inline-formula id="ieqn-460">
<alternatives><inline-graphic xlink:href="ieqn-460.png"/><tex-math id="tex-ieqn-460"><![CDATA[$e$]]></tex-math><mml:math id="mml-ieqn-460"><mml:mi>e</mml:mi></mml:math>
</alternatives></inline-formula>. (PPT adversary can make <inline-formula id="ieqn-461">
<alternatives><inline-graphic xlink:href="ieqn-461.png"/><tex-math id="tex-ieqn-461"><![CDATA[${{\rm Q}_S}$]]></tex-math><mml:math id="mml-ieqn-461"><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">Q</mml:mi></mml:mrow><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> secret key quires, <inline-formula id="ieqn-462">
<alternatives><inline-graphic xlink:href="ieqn-462.png"/><tex-math id="tex-ieqn-462"><![CDATA[${Q_K}$]]></tex-math><mml:math id="mml-ieqn-462"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>K</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> key generation quires, <inline-formula id="ieqn-463">
<alternatives><inline-graphic xlink:href="ieqn-463.png"/><tex-math id="tex-ieqn-463"><![CDATA[${Q_{US}}$]]></tex-math><mml:math id="mml-ieqn-463"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>S</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> user-sign quires, <inline-formula id="ieqn-464">
<alternatives><inline-graphic xlink:href="ieqn-464.png"/><tex-math id="tex-ieqn-464"><![CDATA[${Q_{UE}}$]]></tex-math><mml:math id="mml-ieqn-464"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> user-encrypt quires, <inline-formula id="ieqn-465">
<alternatives><inline-graphic xlink:href="ieqn-465.png"/><tex-math id="tex-ieqn-465"><![CDATA[${Q_{RD\& V}}$]]></tex-math><mml:math id="mml-ieqn-465"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>R</mml:mi><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x0026;</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> receiver-decrypt-and-verify quires and <inline-formula id="ieqn-466">
<alternatives><inline-graphic xlink:href="ieqn-466.png"/><tex-math id="tex-ieqn-466"><![CDATA[${Q_{{H_0}}}$]]></tex-math><mml:math id="mml-ieqn-466"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>,<inline-formula id="ieqn-467">
<alternatives><inline-graphic xlink:href="ieqn-467.png"/><tex-math id="tex-ieqn-467"><![CDATA[${\rm \; }{Q_{{H_1}}}$]]></tex-math><mml:math id="mml-ieqn-467"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>,<inline-formula id="ieqn-468">
<alternatives><inline-graphic xlink:href="ieqn-468.png"/><tex-math id="tex-ieqn-468"><![CDATA[${\rm \; }{Q_{{H_2}}}$]]></tex-math><mml:math id="mml-ieqn-468"><mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-469">
<alternatives><inline-graphic xlink:href="ieqn-469.png"/><tex-math id="tex-ieqn-469"><![CDATA[${Q_{{H_3}}}$]]></tex-math><mml:math id="mml-ieqn-469"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> hash function <inline-formula id="ieqn-470">
<alternatives><inline-graphic xlink:href="ieqn-470.png"/><tex-math id="tex-ieqn-470"><![CDATA[${H_0}$]]></tex-math><mml:math id="mml-ieqn-470"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-471">
<alternatives><inline-graphic xlink:href="ieqn-471.png"/><tex-math id="tex-ieqn-471"><![CDATA[${H_1}$]]></tex-math><mml:math id="mml-ieqn-471"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-472">
<alternatives><inline-graphic xlink:href="ieqn-472.png"/><tex-math id="tex-ieqn-472"><![CDATA[${H_2}$]]></tex-math><mml:math id="mml-ieqn-472"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-473">
<alternatives><inline-graphic xlink:href="ieqn-473.png"/><tex-math id="tex-ieqn-473"><![CDATA[${H_3}$]]></tex-math><mml:math id="mml-ieqn-473"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> quires at most).</p>
<p><bold>Proof:</bold> The following shows how algorithm C uses A to solve the BCDH problem with probability <inline-formula id="ieqn-474">
<alternatives><inline-graphic xlink:href="ieqn-474.png"/><tex-math id="tex-ieqn-474"><![CDATA[${ \epsilon '}$]]></tex-math><mml:math id="mml-ieqn-474"><mml:mrow><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> within time <inline-formula id="ieqn-475">
<alternatives><inline-graphic xlink:href="ieqn-475.png"/><tex-math id="tex-ieqn-475"><![CDATA[${\rm \tau '}$]]></tex-math><mml:math id="mml-ieqn-475"><mml:mrow><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>First, C gets an instance <inline-formula id="ieqn-476">
<alternatives><inline-graphic xlink:href="ieqn-476.png"/><tex-math id="tex-ieqn-476"><![CDATA[$\left\langle {{G_1},{G_2},p,g,e,{g^a},{g^b},{g^c}} \right\rangle$]]></tex-math><mml:math id="mml-ieqn-476"><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>a</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> of BCDH problem, whose goal is to calculate <inline-formula id="ieqn-477">
<alternatives><inline-graphic xlink:href="ieqn-477.png"/><tex-math id="tex-ieqn-477"><![CDATA[$e{\left( {g,g} \right)^{abc}} \in {G_2}$]]></tex-math><mml:math id="mml-ieqn-477"><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. C simulates a challenger to play the following game with A.</p>
<p><bold>Global Setup:</bold> Challenger C executes global setup algorithm, inputs parameter <inline-formula id="ieqn-478">
<alternatives><inline-graphic xlink:href="ieqn-478.png"/><tex-math id="tex-ieqn-478"><![CDATA[$\lambda$]]></tex-math><mml:math id="mml-ieqn-478"><mml:mi>&#x03BB;</mml:mi></mml:math>
</alternatives></inline-formula>, outputs public parameter <inline-formula id="ieqn-479">
<alternatives><inline-graphic xlink:href="ieqn-479.png"/><tex-math id="tex-ieqn-479"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-479"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula> and sends it to F.</p>
<p><bold>Authority Setup:</bold> C represents all authorities to run authority setup algorithm and generate secret key <inline-formula id="ieqn-480">
<alternatives><inline-graphic xlink:href="ieqn-480.png"/><tex-math id="tex-ieqn-480"><![CDATA[$s{k_{I{D_i}}}$]]></tex-math><mml:math id="mml-ieqn-480"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> for each authority <inline-formula id="ieqn-481">
<alternatives><inline-graphic xlink:href="ieqn-481.png"/><tex-math id="tex-ieqn-481"><![CDATA[$I{D_i}$]]></tex-math><mml:math id="mml-ieqn-481"><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-482">
<alternatives><inline-graphic xlink:href="ieqn-482.png"/><tex-math id="tex-ieqn-482"><![CDATA[$i \in \left\{ {1,2, \ldots N} \right\}$]]></tex-math><mml:math id="mml-ieqn-482"><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mi>N</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. Similarly, C sets <inline-formula id="ieqn-483">
<alternatives><inline-graphic xlink:href="ieqn-483.png"/><tex-math id="tex-ieqn-483"><![CDATA[$PK = {g^{as}}$]]></tex-math><mml:math id="mml-ieqn-483"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> instead of <inline-formula id="ieqn-484">
<alternatives><inline-graphic xlink:href="ieqn-484.png"/><tex-math id="tex-ieqn-484"><![CDATA[$PK = {g^s}$]]></tex-math><mml:math id="mml-ieqn-484"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-485">
<alternatives><inline-graphic xlink:href="ieqn-485.png"/><tex-math id="tex-ieqn-485"><![CDATA[${g^{as}}$]]></tex-math><mml:math id="mml-ieqn-485"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-486">
<alternatives><inline-graphic xlink:href="ieqn-486.png"/><tex-math id="tex-ieqn-486"><![CDATA[${g^s}$]]></tex-math><mml:math id="mml-ieqn-486"><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>s</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> are indistinguishable to A. Finally, C adds parameters <inline-formula id="ieqn-487">
<alternatives><inline-graphic xlink:href="ieqn-487.png"/><tex-math id="tex-ieqn-487"><![CDATA[$\left\{ {\left( {I{D_i},{A_{i0}}} \right)} \right\}_{i = 1}^N$]]></tex-math><mml:math id="mml-ieqn-487"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-488">
<alternatives><inline-graphic xlink:href="ieqn-488.png"/><tex-math id="tex-ieqn-488"><![CDATA[$PK = {g^{as}}$]]></tex-math><mml:math id="mml-ieqn-488"><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-489">
<alternatives><inline-graphic xlink:href="ieqn-489.png"/><tex-math id="tex-ieqn-489"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-489"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>. A can obtain <inline-formula id="ieqn-490">
<alternatives><inline-graphic xlink:href="ieqn-490.png"/><tex-math id="tex-ieqn-490"><![CDATA[$params = \left\langle {p,g,{P_1},e,{G_1},{G_2},{H_0},{H_1},{H_2},{H_3},N,\left\{ {\left( {I{D_i},{A_{i0}}} \right)} \right\}_{i = 1}^N,PK} \right\rangle$]]></tex-math><mml:math id="mml-ieqn-490"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>e</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> from C. After receiving the <inline-formula id="ieqn-491">
<alternatives><inline-graphic xlink:href="ieqn-491.png"/><tex-math id="tex-ieqn-491"><![CDATA[$params$]]></tex-math><mml:math id="mml-ieqn-491"><mml:mi>p</mml:mi><mml:mi>a</mml:mi><mml:mi>r</mml:mi><mml:mi>a</mml:mi><mml:mi>m</mml:mi><mml:mi>s</mml:mi></mml:math>
</alternatives></inline-formula>, A outputs target identities <inline-formula id="ieqn-492">
<alternatives><inline-graphic xlink:href="ieqn-492.png"/><tex-math id="tex-ieqn-492"><![CDATA[$i{d_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-492"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-493">
<alternatives><inline-graphic xlink:href="ieqn-493.png"/><tex-math id="tex-ieqn-493"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-493"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> receivers, where <inline-formula id="ieqn-494">
<alternatives><inline-graphic xlink:href="ieqn-494.png"/><tex-math id="tex-ieqn-494"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-494"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p><bold>Phase 1:</bold> Adversary A performs the following five queries to Challenger C:</p>
<p>- Secret key queries: A requests secret keys <inline-formula id="ieqn-495">
<alternatives><inline-graphic xlink:href="ieqn-495.png"/><tex-math id="tex-ieqn-495"><![CDATA[${\rm s}{{\rm k}_{I{D_{i \in {Q_S}}}}}$]]></tex-math><mml:math id="mml-ieqn-495"><mml:mrow><mml:mi mathvariant="normal">s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">k</mml:mi></mml:mrow><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of authority <inline-formula id="ieqn-496">
<alternatives><inline-graphic xlink:href="ieqn-496.png"/><tex-math id="tex-ieqn-496"><![CDATA[${\rm I}{{\rm D}_{i \in {Q_S}}}$]]></tex-math><mml:math id="mml-ieqn-496"><mml:mrow><mml:mi mathvariant="normal">I</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="normal">D</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-497">
<alternatives><inline-graphic xlink:href="ieqn-497.png"/><tex-math id="tex-ieqn-497"><![CDATA[${Q_S} \subset \left\{ {1,2, \ldots ,{\rm N}} \right\}$]]></tex-math><mml:math id="mml-ieqn-497"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2282;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="normal">N</mml:mi></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> represents the index set of corrupt authorities. Because C generates the secret keys of all authorities , C can answer the queries from A.</p>
<p>- Key generation queries: A asks C about the secret key <inline-formula id="ieqn-498">
<alternatives><inline-graphic xlink:href="ieqn-498.png"/><tex-math id="tex-ieqn-498"><![CDATA[$s{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-498"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of the identity <inline-formula id="ieqn-499">
<alternatives><inline-graphic xlink:href="ieqn-499.png"/><tex-math id="tex-ieqn-499"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-499"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. If <inline-formula id="ieqn-500">
<alternatives><inline-graphic xlink:href="ieqn-500.png"/><tex-math id="tex-ieqn-500"><![CDATA[$i{d_i} = i{d_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-500"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-501">
<alternatives><inline-graphic xlink:href="ieqn-501.png"/><tex-math id="tex-ieqn-501"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-501"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, C does not answer this query and terminate the game. Otherwise, C looks for <inline-formula id="ieqn-502">
<alternatives><inline-graphic xlink:href="ieqn-502.png"/><tex-math id="tex-ieqn-502"><![CDATA[$\left( {i{d_i},{k_i},p{k_{i{d_i}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-502"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-503">
<alternatives><inline-graphic xlink:href="ieqn-503.png"/><tex-math id="tex-ieqn-503"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-503"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, then calculates <inline-formula id="ieqn-504">
<alternatives><inline-graphic xlink:href="ieqn-504.png"/><tex-math id="tex-ieqn-504"><![CDATA[$s{k_{i{d_i}}} = {\left( {p{k_{i{d_i}}} \cdot {P_1}} \right)^{as}} = {\left( {\displaystyle{{{g^{{k_i}}}} \over {{P_1}}}\cdot {P_1}} \right)^{as}} = {g^{as\cdot {k_i}}}$]]></tex-math><mml:math id="mml-ieqn-504"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, and returns it to A.</p>
<p>- User-sign queries: A asks C about the signature <inline-formula id="ieqn-505">
<alternatives><inline-graphic xlink:href="ieqn-505.png"/><tex-math id="tex-ieqn-505"><![CDATA[${{\rm \sigma }_i}$]]></tex-math><mml:math id="mml-ieqn-505"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of a tuple <inline-formula id="ieqn-506">
<alternatives><inline-graphic xlink:href="ieqn-506.png"/><tex-math id="tex-ieqn-506"><![CDATA[$\left( {i{d_i},M} \right)$]]></tex-math><mml:math id="mml-ieqn-506"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>M</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-507">
<alternatives><inline-graphic xlink:href="ieqn-507.png"/><tex-math id="tex-ieqn-507"><![CDATA[$i{d_i} \ne i{d_{{l^*}}}\;$]]></tex-math><mml:math id="mml-ieqn-507"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2260;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mspace width="thickmathspace"></mml:mspace></mml:math>
</alternatives></inline-formula>(<inline-formula id="ieqn-508">
<alternatives><inline-graphic xlink:href="ieqn-508.png"/><tex-math id="tex-ieqn-508"><![CDATA[$l \in \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-508"><mml:mi>l</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>). C answers A through the following calculations: 1) C randomly selects <inline-formula id="ieqn-509">
<alternatives><inline-graphic xlink:href="ieqn-509.png"/><tex-math id="tex-ieqn-509"><![CDATA[${r}^{\prime},h,t \in Z_p^*$]]></tex-math><mml:math id="mml-ieqn-509"><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula>, calculates <inline-formula id="ieqn-510">
<alternatives><inline-graphic xlink:href="ieqn-510.png"/><tex-math id="tex-ieqn-510"><![CDATA[$X = \displaystyle{{{g^{r'}}} \over {{g^{as\cdot h}}}}$]]></tex-math><mml:math id="mml-ieqn-510"><mml:mi>X</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-511">
<alternatives><inline-graphic xlink:href="ieqn-511.png"/><tex-math id="tex-ieqn-511"><![CDATA[$W = {(\displaystyle{{{g^{{k_i}}}} \over {{P_1}}})^{r'}}\cdot {P_1}^{as\cdot h}$]]></tex-math><mml:math id="mml-ieqn-511"><mml:mi>W</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-512">
<alternatives><inline-graphic xlink:href="ieqn-512.png"/><tex-math id="tex-ieqn-512"><![CDATA[${P_1} = {g^t}$]]></tex-math><mml:math id="mml-ieqn-512"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, and gets <inline-formula id="ieqn-513">
<alternatives><inline-graphic xlink:href="ieqn-513.png"/><tex-math id="tex-ieqn-513"><![CDATA[$\left( {M,X,h} \right)$]]></tex-math><mml:math id="mml-ieqn-513"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. 2) C finds <inline-formula id="ieqn-514">
<alternatives><inline-graphic xlink:href="ieqn-514.png"/><tex-math id="tex-ieqn-514"><![CDATA[$\left( {M,X} \right)$]]></tex-math><mml:math id="mml-ieqn-514"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>X</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-515">
<alternatives><inline-graphic xlink:href="ieqn-515.png"/><tex-math id="tex-ieqn-515"><![CDATA[${H_2} - list$]]></tex-math><mml:math id="mml-ieqn-515"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> so that it does not appear in <inline-formula id="ieqn-516">
<alternatives><inline-graphic xlink:href="ieqn-516.png"/><tex-math id="tex-ieqn-516"><![CDATA[${H_2} - list$]]></tex-math><mml:math id="mml-ieqn-516"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>. Otherwise, C reselects <inline-formula id="ieqn-517">
<alternatives><inline-graphic xlink:href="ieqn-517.png"/><tex-math id="tex-ieqn-517"><![CDATA[${r}^{\prime},h,t \in Z_p^*$]]></tex-math><mml:math id="mml-ieqn-517"><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>h</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>Z</mml:mi><mml:mi>p</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup></mml:math>
</alternatives></inline-formula>, repeats the above calculation step, and then adds eligible <inline-formula id="ieqn-518">
<alternatives><inline-graphic xlink:href="ieqn-518.png"/><tex-math id="tex-ieqn-518"><![CDATA[$\left( {M,X} \right)$]]></tex-math><mml:math id="mml-ieqn-518"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>X</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> to <inline-formula id="ieqn-519">
<alternatives><inline-graphic xlink:href="ieqn-519.png"/><tex-math id="tex-ieqn-519"><![CDATA[${H_2} - list$]]></tex-math><mml:math id="mml-ieqn-519"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>. 3) C gets <inline-formula id="ieqn-520">
<alternatives><inline-graphic xlink:href="ieqn-520.png"/><tex-math id="tex-ieqn-520"><![CDATA[${{\rm \sigma }_i} = \left( {X,W} \right)$]]></tex-math><mml:math id="mml-ieqn-520"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x03C3;</mml:mi></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-521">
<alternatives><inline-graphic xlink:href="ieqn-521.png"/><tex-math id="tex-ieqn-521"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-521"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and returns it to A.</p>
<p>- User-encrypt queries: To form a complete signcryption, the query is executed after the user-sign query. When C receives the encryption query about <inline-formula id="ieqn-522">
<alternatives><inline-graphic xlink:href="ieqn-522.png"/><tex-math id="tex-ieqn-522"><![CDATA[$\left( {M,R,i{d_i}} \right)$]]></tex-math><mml:math id="mml-ieqn-522"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-523">
<alternatives><inline-graphic xlink:href="ieqn-523.png"/><tex-math id="tex-ieqn-523"><![CDATA[$i{d_i} \ne i{d_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-523"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2260;</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-524">
<alternatives><inline-graphic xlink:href="ieqn-524.png"/><tex-math id="tex-ieqn-524"><![CDATA[$R$]]></tex-math><mml:math id="mml-ieqn-524"><mml:mi>R</mml:mi></mml:math>
</alternatives></inline-formula> represents a set of <inline-formula id="ieqn-525">
<alternatives><inline-graphic xlink:href="ieqn-525.png"/><tex-math id="tex-ieqn-525"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-525"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> receivers <inline-formula id="ieqn-526">
<alternatives><inline-graphic xlink:href="ieqn-526.png"/><tex-math id="tex-ieqn-526"><![CDATA[$\left\{ {i{d_l}} \right\}_{l = 1}^n$]]></tex-math><mml:math id="mml-ieqn-526"><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:msubsup></mml:math>
</alternatives></inline-formula>, C answer A through the following steps: 1) C calculates <inline-formula id="ieqn-527">
<alternatives><inline-graphic xlink:href="ieqn-527.png"/><tex-math id="tex-ieqn-527"><![CDATA[$V = e\left( {P{K^{{r}^{\prime}}},{P_1}} \right) = e\left( {P{K^{{r}^{\prime}}},{g^t}} \right)$]]></tex-math><mml:math id="mml-ieqn-527"><mml:mi>V</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, and then finds <inline-formula id="ieqn-528">
<alternatives><inline-graphic xlink:href="ieqn-528.png"/><tex-math id="tex-ieqn-528"><![CDATA[$\left( {V,\rho } \right)$]]></tex-math><mml:math id="mml-ieqn-528"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>V</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03C1;</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-529">
<alternatives><inline-graphic xlink:href="ieqn-529.png"/><tex-math id="tex-ieqn-529"><![CDATA[${H_3} - list$]]></tex-math><mml:math id="mml-ieqn-529"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>. 2) C calculates<inline-formula id="ieqn-530">
<alternatives><inline-graphic xlink:href="ieqn-530.png"/><tex-math id="tex-ieqn-530"><![CDATA[$\; Z = \rho \oplus (i{d_i}||M)$]]></tex-math><mml:math id="mml-ieqn-530"><mml:mspace width="thickmathspace"></mml:mspace><mml:mi>Z</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mi>&#x03C1;</mml:mi><mml:mo>&#x2295;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mi>M</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math>
</alternatives></inline-formula>. 3) C finds <inline-formula id="ieqn-531">
<alternatives><inline-graphic xlink:href="ieqn-531.png"/><tex-math id="tex-ieqn-531"><![CDATA[$\left( {i{d_l},{x_l}} \right)$]]></tex-math><mml:math id="mml-ieqn-531"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-532">
<alternatives><inline-graphic xlink:href="ieqn-532.png"/><tex-math id="tex-ieqn-532"><![CDATA[${H_0} - list$]]></tex-math><mml:math id="mml-ieqn-532"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, calculates <inline-formula id="ieqn-533">
<alternatives><inline-graphic xlink:href="ieqn-533.png"/><tex-math id="tex-ieqn-533"><![CDATA[${y_l} = {X^{\left( {{k_l} - t} \right)}}$]]></tex-math><mml:math id="mml-ieqn-533"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> and gets <inline-formula id="ieqn-534">
<alternatives><inline-graphic xlink:href="ieqn-534.png"/><tex-math id="tex-ieqn-534"><![CDATA[${L_l}$]]></tex-math><mml:math id="mml-ieqn-534"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-535">
<alternatives><inline-graphic xlink:href="ieqn-535.png"/><tex-math id="tex-ieqn-535"><![CDATA[$l \in \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-535"><mml:mi>l</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. 4) C gets the signcryption <inline-formula id="ieqn-536">
<alternatives><inline-graphic xlink:href="ieqn-536.png"/><tex-math id="tex-ieqn-536"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-536"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> and sends it to A.</p>
<p>- Receiver-Decrypt-and-Verify queries: When C receives the decrypt-and-verify query about a signcryption <inline-formula id="ieqn-537">
<alternatives><inline-graphic xlink:href="ieqn-537.png"/><tex-math id="tex-ieqn-537"><![CDATA[$SC = \left\langle {{L_1},{L_2}, \ldots ,{L_n},{\sigma _i} = \left( {X,W} \right),Z} \right\rangle$]]></tex-math><mml:math id="mml-ieqn-537"><mml:mi>S</mml:mi><mml:mi>C</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mi>Z</mml:mi></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and an identity <inline-formula id="ieqn-538">
<alternatives><inline-graphic xlink:href="ieqn-538.png"/><tex-math id="tex-ieqn-538"><![CDATA[$i{d_l}$]]></tex-math><mml:math id="mml-ieqn-538"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-539">
<alternatives><inline-graphic xlink:href="ieqn-539.png"/><tex-math id="tex-ieqn-539"><![CDATA[$l \in \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-539"><mml:mi>l</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, C answers A through the following steps: 1) C finds <inline-formula id="ieqn-540">
<alternatives><inline-graphic xlink:href="ieqn-540.png"/><tex-math id="tex-ieqn-540"><![CDATA[$\left( {i{d_l},{x_l}} \right)$]]></tex-math><mml:math id="mml-ieqn-540"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-541">
<alternatives><inline-graphic xlink:href="ieqn-541.png"/><tex-math id="tex-ieqn-541"><![CDATA[${H_0} - list$]]></tex-math><mml:math id="mml-ieqn-541"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> and calculates <inline-formula id="ieqn-542">
<alternatives><inline-graphic xlink:href="ieqn-542.png"/><tex-math id="tex-ieqn-542"><![CDATA[${\delta _l} = {L_1} + {x_l}{L_2} + \ldots + {x_l}^{n - 1}{L_n}$]]></tex-math><mml:math id="mml-ieqn-542"><mml:mrow><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>&#x002B;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. 2) C finds <inline-formula id="ieqn-543">
<alternatives><inline-graphic xlink:href="ieqn-543.png"/><tex-math id="tex-ieqn-543"><![CDATA[$\left( {i{d_l},{k_l},p{k_{i{d_l}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-543"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in the <inline-formula id="ieqn-544">
<alternatives><inline-graphic xlink:href="ieqn-544.png"/><tex-math id="tex-ieqn-544"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-544"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, then calculates <inline-formula id="ieqn-545">
<alternatives><inline-graphic xlink:href="ieqn-545.png"/><tex-math id="tex-ieqn-545"><![CDATA[$s{k_{i{d_l}}} = P{K^{{k_l}}} = {g^{as\cdot {k_l}}}$]]></tex-math><mml:math id="mml-ieqn-545"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-546">
<alternatives><inline-graphic xlink:href="ieqn-546.png"/><tex-math id="tex-ieqn-546"><![CDATA[${V}^{\prime} = \displaystyle{{e\left( {X,s{k_{i{d_l}}}} \right)} \over {e\left( {PK,{\delta _l}} \right)}}$]]></tex-math><mml:math id="mml-ieqn-546"><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mi>K</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>&#x03B4;</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>, so C can obtain <inline-formula id="ieqn-547">
<alternatives><inline-graphic xlink:href="ieqn-547.png"/><tex-math id="tex-ieqn-547"><![CDATA[$(i{d_i}|{\rm |}M{\rm )} = {H_3}\left( {{V}^{\prime}} \right) \oplus Z$]]></tex-math><mml:math id="mml-ieqn-547"><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow><mml:mi>M</mml:mi><mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>Z</mml:mi></mml:math>
</alternatives></inline-formula>. 3) C finds <inline-formula id="ieqn-548">
<alternatives><inline-graphic xlink:href="ieqn-548.png"/><tex-math id="tex-ieqn-548"><![CDATA[$\left( {i{d_i},{k_i},p{k_{i{d_i}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-548"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-549">
<alternatives><inline-graphic xlink:href="ieqn-549.png"/><tex-math id="tex-ieqn-549"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-549"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> and gets <inline-formula id="ieqn-550">
<alternatives><inline-graphic xlink:href="ieqn-550.png"/><tex-math id="tex-ieqn-550"><![CDATA[$p{k_{i{d_i}}}$]]></tex-math><mml:math id="mml-ieqn-550"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>. 4) C verifies that <inline-formula id="ieqn-551">
<alternatives><inline-graphic xlink:href="ieqn-551.png"/><tex-math id="tex-ieqn-551"><![CDATA[$e\left( {g,W} \right) = ?e\left( {P{K^h} \cdot X,p{k_{i{d_i}}}} \right) \cdot e\left( {P{K^h},{P_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-551"><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>W</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mo>?</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>X</mml:mi><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>h</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> holds. If it holds, <inline-formula id="ieqn-552">
<alternatives><inline-graphic xlink:href="ieqn-552.png"/><tex-math id="tex-ieqn-552"><![CDATA[$SC$]]></tex-math><mml:math id="mml-ieqn-552"><mml:mi>S</mml:mi><mml:mi>C</mml:mi></mml:math>
</alternatives></inline-formula> is a valid signcryption and <inline-formula id="ieqn-553">
<alternatives><inline-graphic xlink:href="ieqn-553.png"/><tex-math id="tex-ieqn-553"><![CDATA[$M$]]></tex-math><mml:math id="mml-ieqn-553"><mml:mi>M</mml:mi></mml:math>
</alternatives></inline-formula> is returned to A.</p>
<p><bold>Challenge:</bold> A selects a target plaintext pair <inline-formula id="ieqn-554">
<alternatives><inline-graphic xlink:href="ieqn-554.png"/><tex-math id="tex-ieqn-554"><![CDATA[$\left( {{M_0},{M_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-554"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and identity <inline-formula id="ieqn-555">
<alternatives><inline-graphic xlink:href="ieqn-555.png"/><tex-math id="tex-ieqn-555"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-555"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of the same signer and encryptor. When Challenger C receives <inline-formula id="ieqn-556">
<alternatives><inline-graphic xlink:href="ieqn-556.png"/><tex-math id="tex-ieqn-556"><![CDATA[$\left( {{M_0},{M_1}} \right)$]]></tex-math><mml:math id="mml-ieqn-556"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-557">
<alternatives><inline-graphic xlink:href="ieqn-557.png"/><tex-math id="tex-ieqn-557"><![CDATA[$i{d_i}$]]></tex-math><mml:math id="mml-ieqn-557"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, C randomly selects a message <inline-formula id="ieqn-558">
<alternatives><inline-graphic xlink:href="ieqn-558.png"/><tex-math id="tex-ieqn-558"><![CDATA[${M_\beta }$]]></tex-math><mml:math id="mml-ieqn-558"><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to signcrypt, where <inline-formula id="ieqn-559">
<alternatives><inline-graphic xlink:href="ieqn-559.png"/><tex-math id="tex-ieqn-559"><![CDATA[$\beta \in \left\{ {0,1} \right\}$]]></tex-math><mml:math id="mml-ieqn-559"><mml:mi>&#x03B2;</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. The signcryption calculation is as follows: 1) C finds <inline-formula id="ieqn-560">
<alternatives><inline-graphic xlink:href="ieqn-560.png"/><tex-math id="tex-ieqn-560"><![CDATA[$\left( {i{d_{{l^*}}},{k_{{l^*}}},p{k_{i{d_{{l^*}}}}}} \right)$]]></tex-math><mml:math id="mml-ieqn-560"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> in <inline-formula id="ieqn-561">
<alternatives><inline-graphic xlink:href="ieqn-561.png"/><tex-math id="tex-ieqn-561"><![CDATA[${H_1} - list$]]></tex-math><mml:math id="mml-ieqn-561"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-562">
<alternatives><inline-graphic xlink:href="ieqn-562.png"/><tex-math id="tex-ieqn-562"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-562"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, and then obtains their <inline-formula id="ieqn-563">
<alternatives><inline-graphic xlink:href="ieqn-563.png"/><tex-math id="tex-ieqn-563"><![CDATA[$p{k_{i{d_{{l^*}}}}} = \displaystyle{{{g^{{k_{{l^*}}}}}} \over {{P_1}}}$]]></tex-math><mml:math id="mml-ieqn-563"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>. 2) C calculates <inline-formula id="ieqn-564">
<alternatives><inline-graphic xlink:href="ieqn-564.png"/><tex-math id="tex-ieqn-564"><![CDATA[${y_{{l^*}}} = p{k_{i{d_{{l^*}}}}}^r$]]></tex-math><mml:math id="mml-ieqn-564"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula> and gets <inline-formula id="ieqn-565">
<alternatives><inline-graphic xlink:href="ieqn-565.png"/><tex-math id="tex-ieqn-565"><![CDATA[${L_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-565"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-566">
<alternatives><inline-graphic xlink:href="ieqn-566.png"/><tex-math id="tex-ieqn-566"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-566"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. 3) C generates the target signcryption <inline-formula id="ieqn-567">
<alternatives><inline-graphic xlink:href="ieqn-567.png"/><tex-math id="tex-ieqn-567"><![CDATA[$S{C^*} = \left\langle {{L_1}^*,{L_2}^*, \ldots ,{L_n}^*,{\sigma _i}^* = \left( {{X^*},{W^*}} \right),{Z^*}} \right\rangle$]]></tex-math><mml:math id="mml-ieqn-567"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>&#x27E8;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>&#x03C3;</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>W</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>Z</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow><mml:mo>&#x27E9;</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-568">
<alternatives><inline-graphic xlink:href="ieqn-568.png"/><tex-math id="tex-ieqn-568"><![CDATA[${X^*} = {g^b}$]]></tex-math><mml:math id="mml-ieqn-568"><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-569">
<alternatives><inline-graphic xlink:href="ieqn-569.png"/><tex-math id="tex-ieqn-569"><![CDATA[${W^*} = \displaystyle{{{g^{{k_i}\cdot \left( {as\cdot h' + r'} \right)}}} \over {{P_1}^{r'}}}$]]></tex-math><mml:math id="mml-ieqn-569"><mml:mrow><mml:msup><mml:mi>W</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mi>h</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x002B;</mml:mo><mml:msup><mml:mi>r</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:msup><mml:mi>r</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-570">
<alternatives><inline-graphic xlink:href="ieqn-570.png"/><tex-math id="tex-ieqn-570"><![CDATA[${P_1}^* = {g^c}$]]></tex-math><mml:math id="mml-ieqn-570"><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-571">
<alternatives><inline-graphic xlink:href="ieqn-571.png"/><tex-math id="tex-ieqn-571"><![CDATA[${Z^*} = {H_3}\left( {e\left( {P{K^{{r}^{\prime}}},{P_1}} \right)} \right) \oplus (i{d_i}|{\rm |}{M_\beta }{\rm )}$]]></tex-math><mml:math id="mml-ieqn-571"><mml:mrow><mml:msup><mml:mi>Z</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">|</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>M</mml:mi><mml:mi>&#x03B2;</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, and returns <inline-formula id="ieqn-572">
<alternatives><inline-graphic xlink:href="ieqn-572.png"/><tex-math id="tex-ieqn-572"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-572"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> to A.</p>
<p><bold>Phase 2:</bold> A makes multiple queries as those in Phase 1. Note that A cannot ask <inline-formula id="ieqn-573">
<alternatives><inline-graphic xlink:href="ieqn-573.png"/><tex-math id="tex-ieqn-573"><![CDATA[$s{k_{i{d_{{l^*}}}}}$]]></tex-math><mml:math id="mml-ieqn-573"><mml:mi>s</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> of <inline-formula id="ieqn-574">
<alternatives><inline-graphic xlink:href="ieqn-574.png"/><tex-math id="tex-ieqn-574"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-574"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> target receivers <inline-formula id="ieqn-575">
<alternatives><inline-graphic xlink:href="ieqn-575.png"/><tex-math id="tex-ieqn-575"><![CDATA[$i{d_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-575"><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-576">
<alternatives><inline-graphic xlink:href="ieqn-576.png"/><tex-math id="tex-ieqn-576"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-576"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> during the key generation query, or <inline-formula id="ieqn-577">
<alternatives><inline-graphic xlink:href="ieqn-577.png"/><tex-math id="tex-ieqn-577"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-577"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> during Receiver-Decrypt-and-Verify query.</p>
<p><bold>Guess:</bold> In the end, A outputs its guess <inline-formula id="ieqn-578">
<alternatives><inline-graphic xlink:href="ieqn-578.png"/><tex-math id="tex-ieqn-578"><![CDATA[$\beta ' \in \left\{ {0,1} \right\}$]]></tex-math><mml:math id="mml-ieqn-578"><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>. If <inline-formula id="ieqn-579">
<alternatives><inline-graphic xlink:href="ieqn-579.png"/><tex-math id="tex-ieqn-579"><![CDATA[$\beta ' = \beta$]]></tex-math><mml:math id="mml-ieqn-579"><mml:msup><mml:mi>&#x03B2;</mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mi>&#x03B2;</mml:mi></mml:math>
</alternatives></inline-formula>, C selects <inline-formula id="ieqn-580">
<alternatives><inline-graphic xlink:href="ieqn-580.png"/><tex-math id="tex-ieqn-580"><![CDATA[$\left( {V,\rho } \right)$]]></tex-math><mml:math id="mml-ieqn-580"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>V</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03C1;</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> from <inline-formula id="ieqn-581">
<alternatives><inline-graphic xlink:href="ieqn-581.png"/><tex-math id="tex-ieqn-581"><![CDATA[${H_3} - list$]]></tex-math><mml:math id="mml-ieqn-581"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> and outputs <inline-formula id="ieqn-582">
<alternatives><inline-graphic xlink:href="ieqn-582.png"/><tex-math id="tex-ieqn-582"><![CDATA[$\rho$]]></tex-math><mml:math id="mml-ieqn-582"><mml:mi>&#x03C1;</mml:mi></mml:math>
</alternatives></inline-formula> as the solution of BCDH problem.</p>
<p><bold>Analysis:</bold> In User-sign and User-encrypt quires, since <inline-formula id="ieqn-583">
<alternatives><inline-graphic xlink:href="ieqn-583.png"/><tex-math id="tex-ieqn-583"><![CDATA[$X = \displaystyle{{{g^{r{\rm '}}}} \over {{g^{as\cdot h}}}} = {g^{\left( {{r}^{\prime} - as\cdot h} \right)}}$]]></tex-math><mml:math id="mml-ieqn-583"><mml:mi>X</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mrow><mml:msup><mml:mi></mml:mi><mml:mo>&#x2032;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>, there is <inline-formula id="ieqn-584">
<alternatives><inline-graphic xlink:href="ieqn-584.png"/><tex-math id="tex-ieqn-584"><![CDATA[$r = {r}^{\prime} - as\cdot h$]]></tex-math><mml:math id="mml-ieqn-584"><mml:mi>r</mml:mi><mml:mo>&#x003D;</mml:mo><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-585">
<alternatives><inline-graphic xlink:href="ieqn-585.png"/><tex-math id="tex-ieqn-585"><![CDATA[$W = {(\displaystyle{{{g^{{k_i}}}} \over {{P_1}}})^{{r}^{\prime}}} \cdot {P_1}^{as \cdot h} = {(\displaystyle{{{g^{{k_i}}}} \over {{P_1}}})^{\left( {{r}^{\prime} - as \cdot h} \right)}} \cdot {(\displaystyle{{{g^{{k_i}}}} \over {{P_1}}})^{as \cdot h}} \cdot {P_1}^{as \cdot h} = {(\displaystyle{{{g^{{k_i}}}} \over {{P_1}}})^{\left( {{r}^{\prime} - as \cdot h} \right)}} \cdot {g^{{k_i} \cdot as \cdot h}} = {(\displaystyle{{{g^{{k_i}}}} \over {{P_1}}})^r} \cdot s{k_{i{d_i}}}^h = s{k_{i{d_i}}}^hp{k_{i{d_i}}}^r$]]></tex-math><mml:math id="mml-ieqn-585"><mml:mi>W</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2212;</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>r</mml:mi></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x22C5;</mml:mo><mml:mi>s</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mi>s</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:msup><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula>. Because <inline-formula id="ieqn-586">
<alternatives><inline-graphic xlink:href="ieqn-586.png"/><tex-math id="tex-ieqn-586"><![CDATA[${y_l} = {X^{\left( {{k_l} - t} \right)}} = {g^{r\cdot \left( {{k_l} - t} \right)}} = {\left( {\displaystyle{{{g^{{k_l}}}} \over {{g^t}}}} \right)^r} = {\left( {\displaystyle{{{g^{{k_l}}}} \over {{P_1}}}} \right)^r} = p{k_{i{d_l}}}^r$]]></tex-math><mml:math id="mml-ieqn-586"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>r</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>t</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>r</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-587">
<alternatives><inline-graphic xlink:href="ieqn-587.png"/><tex-math id="tex-ieqn-587"><![CDATA[$l = \left\{ {1,2, \ldots ,n} \right\}$]]></tex-math><mml:math id="mml-ieqn-587"><mml:mi>l</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, <inline-formula id="ieqn-588">
<alternatives><inline-graphic xlink:href="ieqn-588.png"/><tex-math id="tex-ieqn-588"><![CDATA[${L_l}$]]></tex-math><mml:math id="mml-ieqn-588"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>l</mml:mi></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> can be calculated and the target signcryption can be realized.</p>
<p>During the challenge process, C sets <inline-formula id="ieqn-589">
<alternatives><inline-graphic xlink:href="ieqn-589.png"/><tex-math id="tex-ieqn-589"><![CDATA[${X^{\rm *}} = {g^b}$]]></tex-math><mml:math id="mml-ieqn-589"><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>b</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> and <inline-formula id="ieqn-590">
<alternatives><inline-graphic xlink:href="ieqn-590.png"/><tex-math id="tex-ieqn-590"><![CDATA[${P_1}^{\rm *} = {g^c}$]]></tex-math><mml:math id="mml-ieqn-590"><mml:msup><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x2217;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>. After knowing <inline-formula id="ieqn-591">
<alternatives><inline-graphic xlink:href="ieqn-591.png"/><tex-math id="tex-ieqn-591"><![CDATA[$p{k_{i{d_{{l^*}}}}} = \displaystyle{{{g^{{k_{{l^*}}}}}} \over {{P_1}}}$]]></tex-math><mml:math id="mml-ieqn-591"><mml:mi>p</mml:mi><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula> , C can get <inline-formula id="ieqn-592">
<alternatives><inline-graphic xlink:href="ieqn-592.png"/><tex-math id="tex-ieqn-592"><![CDATA[${y_{{l^*}}} = {X^*}^{\left( {{k_{{l^*}}} - c} \right)} = {g^{b\left( {{k_{{l^*}}} - c} \right)}} = {(\displaystyle{{{g^{{k_{{l^*}}}}}} \over {{g^c}}})^b} = {(\displaystyle{{{g^{{k_{{l^*}}}}}} \over {{P_1}}})^b} = p{k_{i{d_{{l^*}}}}}^b$]]></tex-math><mml:math id="mml-ieqn-592"><mml:mrow><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:msup><mml:mrow><mml:msup><mml:mi>X</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>b</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>b</mml:mi></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:mfrac></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>b</mml:mi></mml:msup></mml:mstyle></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>p</mml:mi><mml:msup><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mi>b</mml:mi></mml:msup></mml:math>
</alternatives></inline-formula>, and then get <inline-formula id="ieqn-593">
<alternatives><inline-graphic xlink:href="ieqn-593.png"/><tex-math id="tex-ieqn-593"><![CDATA[${L_{{l^*}}}$]]></tex-math><mml:math id="mml-ieqn-593"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>l</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> by Lagrange interpolation function. Therefore, <inline-formula id="ieqn-594">
<alternatives><inline-graphic xlink:href="ieqn-594.png"/><tex-math id="tex-ieqn-594"><![CDATA[$S{C^*}$]]></tex-math><mml:math id="mml-ieqn-594"><mml:mi>S</mml:mi><mml:mrow><mml:msup><mml:mi>C</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> is the same as described in the actual attack process. If A&#x2019;s guess is correct, A needs to ask the random oracle function <inline-formula id="ieqn-595">
<alternatives><inline-graphic xlink:href="ieqn-595.png"/><tex-math id="tex-ieqn-595"><![CDATA[${H_3}$]]></tex-math><mml:math id="mml-ieqn-595"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> to get <inline-formula id="ieqn-596">
<alternatives><inline-graphic xlink:href="ieqn-596.png"/><tex-math id="tex-ieqn-596"><![CDATA[$V = e\left( {P{K^r},{P_1}} \right) = e\left( {{g^{as\cdot b}},{P_1}} \right) = e\left( {{g^{as\cdot b}},{g^c}} \right) = e{\left( {g,g} \right)^{abc\cdot s}}$]]></tex-math><mml:math id="mml-ieqn-596"><mml:mi>V</mml:mi><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:msup><mml:mi>K</mml:mi><mml:mi>r</mml:mi></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>b</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>b</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mi>g</mml:mi><mml:mi>c</mml:mi></mml:msup></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>s</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>, Therefore, we can get the solution of BCDH problem <inline-formula id="ieqn-597">
<alternatives><inline-graphic xlink:href="ieqn-597.png"/><tex-math id="tex-ieqn-597"><![CDATA[$e{\left( {g,g} \right)^{abc}} = V\cdot e{\left( {g,g} \right)^{{s^{ - 1}}}}$]]></tex-math><mml:math id="mml-ieqn-597"><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>V</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula>.</p>
<p>In the attack phase, A performs <inline-formula id="ieqn-598">
<alternatives><inline-graphic xlink:href="ieqn-598.png"/><tex-math id="tex-ieqn-598"><![CDATA[${Q_{RD\& V}}$]]></tex-math><mml:math id="mml-ieqn-598"><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>R</mml:mi><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x0026;</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> receiver-decrypt-and-verify quires. C selects <inline-formula id="ieqn-599">
<alternatives><inline-graphic xlink:href="ieqn-599.png"/><tex-math id="tex-ieqn-599"><![CDATA[$V$]]></tex-math><mml:math id="mml-ieqn-599"><mml:mi>V</mml:mi></mml:math>
</alternatives></inline-formula> randomly from <inline-formula id="ieqn-600">
<alternatives><inline-graphic xlink:href="ieqn-600.png"/><tex-math id="tex-ieqn-600"><![CDATA[${H_3} - list$]]></tex-math><mml:math id="mml-ieqn-600"><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi><mml:mi>i</mml:mi><mml:mi>s</mml:mi><mml:mi>t</mml:mi></mml:math>
</alternatives></inline-formula> to calculate <inline-formula id="ieqn-601">
<alternatives><inline-graphic xlink:href="ieqn-601.png"/><tex-math id="tex-ieqn-601"><![CDATA[$e{\left( {g,g} \right)^{abc}} = V\cdot e{\left( {g,g} \right)^{{s^{ - 1}}}}$]]></tex-math><mml:math id="mml-ieqn-601"><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x003D;</mml:mo><mml:mi>V</mml:mi><mml:mo>&#x22C5;</mml:mo><mml:mi>e</mml:mi><mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mi>s</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math>
</alternatives></inline-formula> as the result of BCDH problem. Therefore, C can get the advantage <inline-formula id="ieqn-602">
<alternatives><inline-graphic xlink:href="ieqn-602.png"/><tex-math id="tex-ieqn-602"><![CDATA[${{\epsilon }^{\prime}} \ge {\epsilon } - \displaystyle{{{Q_{{H_3}}}{Q_{RD\& V}}} \over {{2^k}}}$]]></tex-math><mml:math id="mml-ieqn-602"><mml:mrow><mml:msup><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2265;</mml:mo><mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mstyle scriptlevel="0" displaystyle="true"><mml:mrow><mml:mfrac><mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mi>H</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>R</mml:mi><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x0026;</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac></mml:mrow></mml:mstyle></mml:math>
</alternatives></inline-formula>, and <inline-formula id="ieqn-603">
<alternatives><inline-graphic xlink:href="ieqn-603.png"/><tex-math id="tex-ieqn-603"><![CDATA[${\tau }^{\prime} \approx \tau + (2{Q_{RD\& V}} + {Q_{UE}})O\left( {{\tau _1}} \right)$]]></tex-math><mml:math id="mml-ieqn-603"><mml:msup><mml:mrow><mml:mi>&#x03C4;</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2248;</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>2</mml:mn><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>R</mml:mi><mml:mi>D</mml:mi><mml:mi mathvariant="normal">&#x0026;</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:msub><mml:mi>Q</mml:mi><mml:mrow><mml:mi>U</mml:mi><mml:mi>E</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mi>O</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula>, where <inline-formula id="ieqn-604">
<alternatives><inline-graphic xlink:href="ieqn-604.png"/><tex-math id="tex-ieqn-604"><![CDATA[${\tau _1}$]]></tex-math><mml:math id="mml-ieqn-604"><mml:mrow><mml:msub><mml:mi>&#x03C4;</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula> is the running time of <inline-formula id="ieqn-605">
<alternatives><inline-graphic xlink:href="ieqn-605.png"/><tex-math id="tex-ieqn-605"><![CDATA[$e$]]></tex-math><mml:math id="mml-ieqn-605"><mml:mi>e</mml:mi></mml:math>
</alternatives></inline-formula>. From the above proof and BCDH problem, we can see that this scheme satisfies the confidentiality of signcryption.</p>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Performance Evaluation</title>
<p>In this paper, we mainly evaluate the performance from signcryption efficiency and signcryption attributes.</p>
<p>In order to explore the signcryption efficiency, we mainly analyze its computing cost and communication traffic (i.e., length of signcryption). <xref ref-type="table" rid="table-1">Tab. 1</xref> shows the comparison results of the signcryption efficiency between the proposed scheme and prvious schemes.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Comparison of the Signcryption Efficiency</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Schemes</th>
<th>Mul</th>
<th>Exp</th>
<th>Log</th>
<th>Pair</th>
<th>Hash</th>
<th>Num</th>
<th>Length of Signcryption</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reference [<xref ref-type="bibr" rid="ref-22">22</xref>]</td>
<td>4</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>3</td>
<td>n&#x002B;9</td>
<td><inline-formula id="ieqn-606">
<alternatives><inline-graphic xlink:href="ieqn-606.png"/><tex-math id="tex-ieqn-606"><![CDATA[$3\left| {{G_1}} \right| + n\left| {ID} \right| + \left| M \right|$]]></tex-math><mml:math id="mml-ieqn-606"><mml:mn>3</mml:mn><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mi>n</mml:mi><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>M</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula></td>
</tr>
<tr>
<td>Reference [<xref ref-type="bibr" rid="ref-23">23</xref>]</td>
<td>3</td>
<td>2n&#x002B;2</td>
<td>1</td>
<td>1</td>
<td>2</td>
<td>9</td>
<td><inline-formula id="ieqn-607">
<alternatives><inline-graphic xlink:href="ieqn-607.png"/><tex-math id="tex-ieqn-607"><![CDATA[$\left( {n + 3} \right)\left| {{G_1}} \right| + n\left| {ID} \right| + \left| M \right|$]]></tex-math><mml:math id="mml-ieqn-607"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mn>3</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mi>n</mml:mi><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>M</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula></td>
</tr>
<tr>
<td>Reference [<xref ref-type="bibr" rid="ref-24">24</xref>]</td>
<td>5</td>
<td>1</td>
<td>1</td>
<td>3</td>
<td>3</td>
<td>n&#x002B;11</td>
<td><inline-formula id="ieqn-608">
<alternatives><inline-graphic xlink:href="ieqn-608.png"/><tex-math id="tex-ieqn-608"><![CDATA[$5\left| {{G_1}} \right| + 2n\left| {ID} \right| + \left| M \right|$]]></tex-math><mml:math id="mml-ieqn-608"><mml:mn>5</mml:mn><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mn>2</mml:mn><mml:mi>n</mml:mi><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>M</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula></td>
</tr>
<tr>
<td>This scheme</td>
<td>1</td>
<td>n&#x002B;3</td>
<td>1</td>
<td>1</td>
<td>3</td>
<td>11</td>
<td><inline-formula id="ieqn-609">
<alternatives><inline-graphic xlink:href="ieqn-609.png"/><tex-math id="tex-ieqn-609"><![CDATA[$\left( {n + 2} \right)\left| {{G_1}} \right| + \left| {ID} \right| + \left| M \right|$]]></tex-math><mml:math id="mml-ieqn-609"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x002B;</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>&#x002B;</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mi>M</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p><inline-formula id="ieqn-610">
<alternatives><inline-graphic xlink:href="ieqn-610.png"/><tex-math id="tex-ieqn-610"><![CDATA[$Mul$]]></tex-math><mml:math id="mml-ieqn-610"><mml:mi>M</mml:mi><mml:mi>u</mml:mi><mml:mi>l</mml:mi></mml:math>
</alternatives></inline-formula> represents multiplication operation in <inline-formula id="ieqn-611">
<alternatives><inline-graphic xlink:href="ieqn-611.png"/><tex-math id="tex-ieqn-611"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-611"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>; <inline-formula id="ieqn-612">
<alternatives><inline-graphic xlink:href="ieqn-612.png"/><tex-math id="tex-ieqn-612"><![CDATA[$Exp$]]></tex-math><mml:math id="mml-ieqn-612"><mml:mi>E</mml:mi><mml:mi>x</mml:mi><mml:mi>p</mml:mi></mml:math>
</alternatives></inline-formula> represents exponential operation in <inline-formula id="ieqn-613">
<alternatives><inline-graphic xlink:href="ieqn-613.png"/><tex-math id="tex-ieqn-613"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-613"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>; <inline-formula id="ieqn-614">
<alternatives><inline-graphic xlink:href="ieqn-614.png"/><tex-math id="tex-ieqn-614"><![CDATA[$Log$]]></tex-math><mml:math id="mml-ieqn-614"><mml:mi>L</mml:mi><mml:mi>o</mml:mi><mml:mi>g</mml:mi></mml:math>
</alternatives></inline-formula> represents logical operation; <inline-formula id="ieqn-615">
<alternatives><inline-graphic xlink:href="ieqn-615.png"/><tex-math id="tex-ieqn-615"><![CDATA[$Pair$]]></tex-math><mml:math id="mml-ieqn-615"><mml:mi>P</mml:mi><mml:mi>a</mml:mi><mml:mi>i</mml:mi><mml:mi>r</mml:mi></mml:math>
</alternatives></inline-formula> represents bilinear operation in <inline-formula id="ieqn-616">
<alternatives><inline-graphic xlink:href="ieqn-616.png"/><tex-math id="tex-ieqn-616"><![CDATA[${G_2}$]]></tex-math><mml:math id="mml-ieqn-616"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>; <inline-formula id="ieqn-617">
<alternatives><inline-graphic xlink:href="ieqn-617.png"/><tex-math id="tex-ieqn-617"><![CDATA[$Hash$]]></tex-math><mml:math id="mml-ieqn-617"><mml:mi>H</mml:mi><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mi>h</mml:mi></mml:math>
</alternatives></inline-formula> represents the hash operation in the signature and encryption step; <inline-formula id="ieqn-618">
<alternatives><inline-graphic xlink:href="ieqn-618.png"/><tex-math id="tex-ieqn-618"><![CDATA[$Num$]]></tex-math><mml:math id="mml-ieqn-618"><mml:mi>N</mml:mi><mml:mi>u</mml:mi><mml:mi>m</mml:mi></mml:math>
</alternatives></inline-formula> represents the number of parameters; <inline-formula id="ieqn-619">
<alternatives><inline-graphic xlink:href="ieqn-619.png"/><tex-math id="tex-ieqn-619"><![CDATA[$\left| {{G_1}} \right|$]]></tex-math><mml:math id="mml-ieqn-619"><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> represents the length of elements in <inline-formula id="ieqn-620">
<alternatives><inline-graphic xlink:href="ieqn-620.png"/><tex-math id="tex-ieqn-620"><![CDATA[${G_1}$]]></tex-math><mml:math id="mml-ieqn-620"><mml:mrow><mml:msub><mml:mi>G</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math>
</alternatives></inline-formula>; <inline-formula id="ieqn-621">
<alternatives><inline-graphic xlink:href="ieqn-621.png"/><tex-math id="tex-ieqn-621"><![CDATA[$\left| {ID} \right|$]]></tex-math><mml:math id="mml-ieqn-621"><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> represents the length of identity information; <inline-formula id="ieqn-622">
<alternatives><inline-graphic xlink:href="ieqn-622.png"/><tex-math id="tex-ieqn-622"><![CDATA[$\left| M \right|$]]></tex-math><mml:math id="mml-ieqn-622"><mml:mrow><mml:mo>|</mml:mo><mml:mi>M</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> represents the length of plaintext message; <inline-formula id="ieqn-623">
<alternatives><inline-graphic xlink:href="ieqn-623.png"/><tex-math id="tex-ieqn-623"><![CDATA[$n$]]></tex-math><mml:math id="mml-ieqn-623"><mml:mi>n</mml:mi></mml:math>
</alternatives></inline-formula> represents the number of receivers.</p>
<p><xref ref-type="table" rid="table-2">Tab. 2</xref> shows the comparison results of signcryption attributes between the proposed scheme and previous schemes.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Comparison of the Signcryption Attributes</title>
</caption>
<table>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<thead>
<tr>
<th>Schemes</th>
<th>Unforgeability</th>
<th>Confidentiality</th>
<th>Model</th>
<th>Multiple Receivers</th>
<th>Anonymity of Receivers</th>
<th>Multiple Authorities</th>
<th>Resisting Collusion Attacks</th>
</tr>
</thead>
<tbody>
<tr>
<td>Reference [<xref ref-type="bibr" rid="ref-22">22</xref>]</td>
<td>Y</td>
<td>Y</td>
<td>Random Oracle</td>
<td>Y</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>
<tr>
<td>Reference [<xref ref-type="bibr" rid="ref-23">23</xref>]</td>
<td>Y</td>
<td>Y</td>
<td>Standard Model</td>
<td>Y</td>
<td>N</td>
<td>N</td>
<td>N</td>
</tr>
<tr>
<td>Reference [<xref ref-type="bibr" rid="ref-24">24</xref>]</td>
<td>Y</td>
<td>Y</td>
<td>Random Oracle</td>
<td>Y</td>
<td>Y</td>
<td>N</td>
<td>N</td>
</tr>
<tr>
<td>This scheme</td>
<td>Y</td>
<td>Y</td>
<td>Random Oracle</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Compared with previous schemes, the proposed scheme has less <inline-formula id="ieqn-624">
<alternatives><inline-graphic xlink:href="ieqn-624.png"/><tex-math id="tex-ieqn-624"><![CDATA[$\left| {ID} \right|$]]></tex-math><mml:math id="mml-ieqn-624"><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>I</mml:mi><mml:mi>D</mml:mi></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math>
</alternatives></inline-formula> length and relatively moderate communication traffic in terms of signcryption efficiency. In order to ensure that the identities of receivers are not exposed in the signcrypted message, our scheme uses Lagrange interpolation to realize the anonymity of receivers. Lagrange interpolation involves many multiplications and exponential operations, so it increases the computing cost and affects the efficiency. However, the Lagrange formula can be calculated before the signcryption, so the operation in the signcryption step can be greatly reduced.</p>
<p>In terms of signcryption attributes, the signcryption scheme proposed in this paper satisfies unforgeability and confidentiality under a random oracle model. Compared with other schemes, the proposed scheme is more suitable for multiple receivers and can guarantee the anonymity of receivers. Importantly, the distributed key generation is realized by multiple authorities and can resist collusion attacks.</p>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Conclusion</title>
<p>In order to allow patients to control their own EHRs initiative and share EHRs safely in blockchain, in this paper, we introduced multiple authorities into the identity-based signcryption scheme, and constructed a detailed MA-IBSC scheme for multiple receivers. The MA-IBSC scheme can not only resist the collusion attack of at most N-1 corrupted authorities, but also share the same signcryption message with multiple designated receivers. At the same time, the identity information of these receivers is anonymous. Under the assumptions of CDH and BCDH, it is proved that the proposed scheme is secure, that is, it satisfies unforgeability and confidentiality of signcryption.</p>
</sec>
</body>
<back><fn-group>
<fn fn-type="other">
<p><bold>Funding Statement:</bold> This work was supported by the National Key Research and Development Project of China (Grant No. 2017YFB0802302), the Science and Technology Support Project of Sichuan Province (Grant Nos. 2016FZ0112, 2017GZ0314, and 2018GZ0204), the Academic and Technical Leaders Training Funding Support Projects of Sichuan Province (Grant No. 2016120080102643), the Application Foundation Project of Sichuan Province (Grant No. 2017JY0168), and the Science and Technology Project of Chengdu (Grant Nos. 2017-RK00-00103-ZF, and 2016-HM01-00217-SF).</p>
</fn>
<fn fn-type="conflict">
<p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p>
</fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1">
<label>[1]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>L. Z.</given-names> 
<surname>Xiong</surname></string-name> and <string-name>
<given-names>Y. Q.</given-names> 
<surname>Shi</surname></string-name>
</person-group>, &#x201C;
<article-title>On the privacy-preserving outsourcing scheme of reversible data hiding over encrypted image data in cloud computing</article-title>,&#x201D; 
<source>Computers, Materials &#x0026; Continua</source>, vol. 
<volume>55</volume>, no. 
<issue>3</issue>, pp. 
<fpage>523</fpage>&#x2013;
<lpage>539</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-2">
<label>[2]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>U.</given-names> 
<surname>Premarathne</surname></string-name>, <string-name>
<given-names>A.</given-names> 
<surname>Abuadbba</surname></string-name>, <string-name>
<given-names>L.</given-names> 
<surname>Khalil</surname></string-name>, <string-name>
<given-names>Z.</given-names> 
<surname>Tari</surname></string-name> and <string-name>
<given-names>A.</given-names> 
<surname>Zomaya</surname></string-name>
</person-group>, &#x201C;
<article-title>Hybrid cryptographic access control for cloud-based EHR systems</article-title>,&#x201D; 
<source>IEEE Cloud Computing</source>, vol. 
<volume>3</volume>, no. 
<issue>4</issue>, pp. 
<fpage>58</fpage>&#x2013;
<lpage>64</lpage>, 
<year iso-8601-date="2016">2016</year>.</mixed-citation>
</ref>
<ref id="ref-3">
<label>[3]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>G.</given-names> 
<surname>Ramu</surname></string-name>
</person-group>, &#x201C;
<article-title>A secure cloud framework to share EHRs using modified CP-ABE and the attribute bloom filter</article-title>,&#x201D; 
<source>Education and Information Technologies</source>, vol. 
<volume>23</volume>, no. 
<issue>5</issue>, pp. 
<fpage>2213</fpage>&#x2013;
<lpage>2233</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-4">
<label>[4]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>Z.</given-names> 
<surname>Deng</surname></string-name>, <string-name>
<given-names>Y.</given-names> 
<surname>Ren</surname></string-name>, <string-name>
<given-names>Y.</given-names> 
<surname>Liu</surname></string-name>, <string-name>
<given-names>X.</given-names> 
<surname>Yin</surname></string-name>, <string-name>
<given-names>Z.</given-names> 
<surname>Shen</surname></string-name> <etal>et al.</etal>
</person-group><italic>,</italic> &#x201C;
<article-title>Blockchain-based trusted electronic records preservation in cloud storage</article-title>,&#x201D; 
<source>Computers, Materials &#x0026; Continua</source>, vol. 
<volume>58</volume>, no. 
<issue>1</issue>, pp. 
<fpage>135</fpage>&#x2013;
<lpage>151</lpage>, 
<year iso-8601-date="2019">2019</year>.</mixed-citation>
</ref>
<ref id="ref-5">
<label>[5]</label><mixed-citation publication-type="other">
<person-group person-group-type="author"><string-name>
<given-names>S.</given-names> 
<surname>Nakamoto</surname></string-name>
</person-group>, &#x201C;
<article-title>Bitcoin: A peer-to-peer electronic cash system</article-title>,&#x201D; 
<year iso-8601-date="2008">2008</year>. [Online]. Available: <uri>https://nakamotoinstitute.org/bitcoin</uri>.</mixed-citation>
</ref>
<ref id="ref-6">
<label>[6]</label><mixed-citation publication-type="other">
<person-group person-group-type="author"><string-name>
<given-names>P. B.</given-names> 
<surname>Nichol</surname></string-name>
</person-group>, &#x201C;
<article-title>Blockchain applications for healthcare: Blockchain opportunities are changing healthcare globally-innovative leaders see the change</article-title>,&#x201D; 
<year iso-8601-date="2016">2016</year>. [Online]. Available: <uri>http://www.cio.com/article/3042603/innovation/blockchain-applications/for-healthcare.html</uri>.</mixed-citation>
</ref>
<ref id="ref-7">
<label>[7]</label><mixed-citation publication-type="book">
<person-group person-group-type="author"><string-name>
<given-names>M.</given-names> 
<surname>Crosby</surname></string-name> and <string-name>
<given-names>V.</given-names> 
<surname>Kalyanaraman</surname></string-name>
</person-group>, 
<source>Blockchain Technology: Beyond Bitcoin</source>. 
<publisher-loc>Berkeley, USA</publisher-loc>: 
<publisher-name>Applied Innovation Review, issue no. 2</publisher-name>, 
<year iso-8601-date="2015">2015</year>.</mixed-citation>
</ref>
<ref id="ref-8">
<label>[8]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Roehrs</surname></string-name>, <string-name>
<given-names>C. A.</given-names> 
<surname>da Costa</surname> </string-name> and <string-name>
<given-names>R.</given-names> 
<surname>da Rosa Righi</surname> </string-name>
</person-group>, &#x201C;
<article-title>OmniPHR: A distributed architecture model to integrate personal health records</article-title>,&#x201D; 
<source>Journal of Biomedical Informatics</source>, vol. 
<volume>71</volume>, pp. 
<fpage>70</fpage>&#x2013;
<lpage>81</lpage>, 
<year iso-8601-date="2017">2017</year>.</mixed-citation>
</ref>
<ref id="ref-9">
<label>[9]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>W. J.</given-names> 
<surname>Gordon</surname></string-name> and <string-name>
<given-names>C.</given-names> 
<surname>Catalini</surname></string-name>
</person-group>, &#x201C;
<article-title>Blockchain technology for healthcare: Facilitating the transition to patient-driven interoperability</article-title>,&#x201D; 
<source>Computational and Structural Biotechnology Journal</source>, vol. 
<volume>16</volume>, pp. 
<fpage>224</fpage>&#x2013;
<lpage>230</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-10">
<label>[10]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>A. A.</given-names> 
<surname>Omar</surname></string-name>, <string-name>
<given-names>S.</given-names> 
<surname>Rahman</surname></string-name>, <string-name>
<given-names>A.</given-names> 
<surname>Basu</surname></string-name> and <string-name>
<given-names>S.</given-names> 
<surname>Kiyomoto</surname></string-name>
</person-group>, &#x201C;
<article-title>MediBchain: A blockchain based privacy preserving platform for healthcare data</article-title>,&#x201D; in <conf-name>International Conference on Security, Privacy and Anonymity in Computation, Communication and Storage</conf-name>, 
<publisher-loc>Cham, Switzerland</publisher-loc>: 
<publisher-name>Springer</publisher-name>, pp. 
<fpage>534</fpage>&#x2013;
<lpage>543</lpage>, 
<year iso-8601-date="2017">2017</year>. </mixed-citation>
</ref>
<ref id="ref-11">
<label>[11]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>S.</given-names> 
<surname>Badr</surname></string-name>, <string-name>
<given-names>I.</given-names> 
<surname>Gomaa</surname></string-name> and <string-name>
<given-names>E.</given-names> 
<surname>Abd-Elrahman</surname></string-name>
</person-group>, &#x201C;
<article-title>Multi-tier blockchain framework for IoT-EHRs system</article-title>,&#x201D; 
<source>Procedia Computer Science</source>, vol. 
<volume>141</volume>, pp. 
<fpage>159</fpage>&#x2013;
<lpage>166</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-12">
<label>[12]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>L. X.</given-names> 
<surname>Chen</surname></string-name>, <string-name>
<given-names>W. K.</given-names> 
<surname>Lee</surname></string-name>, <string-name>
<given-names>C. C.</given-names> 
<surname>Chang</surname></string-name>, <string-name>
<given-names>K. K. R.</given-names> 
<surname>Choo</surname></string-name> and <string-name>
<given-names>N.</given-names> 
<surname>Zhang</surname></string-name>
</person-group>, &#x201C;
<article-title>Blockchain based searchable encryption for electronic health record sharing</article-title>,&#x201D; 
<source>Future Generation Computer Systems</source>, vol. 
<volume>95</volume>, pp. 
<fpage>420</fpage>&#x2013;
<lpage>429</lpage>, 
<year iso-8601-date="2019">2019</year>.</mixed-citation>
</ref>
<ref id="ref-13">
<label>[13]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>X.</given-names> 
<surname>Jiang</surname></string-name>, <string-name>
<given-names>M. Z.</given-names> 
<surname>Liu</surname></string-name>, <string-name>
<given-names>C.</given-names> 
<surname>Yang</surname></string-name>, <string-name>
<given-names>Y. H.</given-names> 
<surname>Liu</surname></string-name> and <string-name>
<given-names>R. L.</given-names> 
<surname>Wang</surname></string-name>
</person-group>, &#x201C;
<article-title>A blockchain-based authentication protocol for WLAN mesh security access</article-title>,&#x201D; 
<source>Computers, Materials &#x0026; Continua</source>, vol. 
<volume>58</volume>, no. 
<issue>1</issue>, pp. 
<fpage>45</fpage>&#x2013;
<lpage>59</lpage>, 
<year iso-8601-date="2019">2019</year>.</mixed-citation>
</ref>
<ref id="ref-14">
<label>[14]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>F.</given-names> 
<surname>Tang</surname></string-name>, <string-name>
<given-names>S.</given-names> 
<surname>Ma</surname></string-name>, <string-name>
<given-names>Y.</given-names> 
<surname>Xiang</surname></string-name> and <string-name>
<given-names>C. L.</given-names> 
<surname>Lin</surname></string-name>
</person-group>, &#x201C;
<article-title>An efficient authentication scheme for blockchain-based electronic health records</article-title>,&#x201D; 
<source>IEEE Access</source>, vol. 
<volume>7</volume>, pp. 
<fpage>41678</fpage>&#x2013;
<lpage>41689</lpage>, 
<year iso-8601-date="2019">2019</year>.</mixed-citation>
</ref>
<ref id="ref-15">
<label>[15]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>R.</given-names> 
<surname>Guo</surname></string-name>, <string-name>
<given-names>H.</given-names> 
<surname>Shi</surname></string-name>, <string-name>
<given-names>Q.</given-names> 
<surname>Zhao</surname></string-name> and <string-name>
<given-names>D.</given-names> 
<surname>Zheng</surname></string-name>
</person-group>, &#x201C;
<article-title>Secure attribute-based signature scheme with multiple authorities for blockchain in electronic health records systems</article-title>,&#x201D; 
<source>IEEE Access</source>, vol. 
<volume>6</volume>, pp. 
<fpage>11676</fpage>&#x2013;
<lpage>11686</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-16">
<label>[16]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>Y.</given-names> 
<surname>Sun</surname></string-name>, <string-name>
<given-names>R.</given-names> 
<surname>Zhang</surname></string-name>, <string-name>
<given-names>X.</given-names> 
<surname>Wang</surname></string-name>, <string-name>
<given-names>K.</given-names> 
<surname>Gao</surname></string-name> and <string-name>
<given-names>L.</given-names> 
<surname>Liu</surname></string-name>
</person-group>, &#x201C;
<article-title>A decentralizing attribute-based signature for healthcare blockchain</article-title>,&#x201D; in <conf-name>27th International Conference on Computer Communication and Networks (ICCCN)</conf-name>, 
<publisher-loc>Hangzhou, China</publisher-loc>, pp. 
<fpage>1</fpage>&#x2013;
<lpage>9</lpage>, 
<year iso-8601-date="2018">2018</year>. </mixed-citation>
</ref>
<ref id="ref-17">
<label>[17]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>Y.</given-names> 
<surname>Zheng</surname></string-name>
</person-group>, &#x201C;
<article-title>Digital signcryption or how to achieve cost (signature &#x0026; encryption)</article-title>,&#x201D; in <conf-name>CRYPTO '97: Proceedings of the 17th Annual International Cryptology Conference on Advances in Cryptology</conf-name>, 
<publisher-loc>B. S. Kaliski, CA, USA, Berlin, Heidelberg</publisher-loc>: 
<publisher-name>Springer-Verlag</publisher-name>, pp. 
<fpage>165</fpage>&#x2013;
<lpage>179</lpage>, 
<year iso-8601-date="1997">1997</year>. </mixed-citation>
</ref>
<ref id="ref-18">
<label>[18]</label><mixed-citation publication-type="other">
<person-group person-group-type="author"><string-name>
<given-names>J.</given-names> 
<surname>Malone-Lee</surname></string-name>
</person-group>, &#x201C;
<article-title>Identity-based signcryption</article-title>,&#x201D; in 
<comment><italic>Cryptology ePrint Archive</italic>, Report 2002/098</comment>, 
<year iso-8601-date="2002">2002</year>. [Online]. Available: <uri>http://eprint.iacr.org/2002/098.pdf</uri>.</mixed-citation>
</ref>
<ref id="ref-19">
<label>[19]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>A.</given-names> 
<surname>Karati</surname></string-name> and <string-name>
<given-names>G. P.</given-names> 
<surname>Biswas</surname></string-name>
</person-group>, &#x201C;
<article-title>A practical identity based signcryption scheme from bilinear pairing</article-title>,&#x201D; in <conf-name>International Conference on Advances in Computing, Communications and Informatics</conf-name>, 
<publisher-loc>Jaipur, India</publisher-loc>, pp. 
<fpage>832</fpage>&#x2013;
<lpage>836</lpage>, 
<year iso-8601-date="2016">2016</year>. </mixed-citation>
</ref>
<ref id="ref-20">
<label>[20]</label><mixed-citation publication-type="journal">
<person-group person-group-type="author"><string-name>
<given-names>C. X.</given-names> 
<surname>Zhou</surname></string-name>, <string-name>
<given-names>Y.</given-names> 
<surname>Zhang</surname></string-name> and <string-name>
<given-names>L. M.</given-names> 
<surname>Wang</surname></string-name>
</person-group>, &#x201C;
<article-title>A provable secure identity-based generalized proxy signcryption scheme</article-title>,&#x201D; 
<source>International Journal of Network Security</source>, vol. 
<volume>20</volume>, no. 
<issue>6</issue>, pp. 
<fpage>1183</fpage>&#x2013;
<lpage>1193</lpage>, 
<year iso-8601-date="2018">2018</year>.</mixed-citation>
</ref>
<ref id="ref-21">
<label>[21]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>S.</given-names> 
<surname>Duan</surname></string-name> and <string-name>
<given-names>Z.</given-names> 
<surname>Cao</surname></string-name>
</person-group>, &#x201C;
<article-title>Efficient and provably secure multi receiver identity based signcryption</article-title>,&#x201D; in <conf-name>Australasian Conference on Information Security &#x0026; Privacy</conf-name>, 
<publisher-loc>Australia</publisher-loc>, pp. 
<fpage>195</fpage>&#x2013;
<lpage>206</lpage>, 
<year iso-8601-date="2006">2006</year>. </mixed-citation>
</ref>
<ref id="ref-22">
<label>[22]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>S. S. D.</given-names> 
<surname>Selvi</surname></string-name>, <string-name>
<given-names>S. S.</given-names> 
<surname>Vivek</surname></string-name> and <string-name>
<given-names>R.</given-names> 
<surname>Srinivasan</surname></string-name>
</person-group>, &#x201C;
<article-title>An efficient identity-based signcryption scheme for multiple receivers</article-title>,&#x201D; in <conf-name>Proceedings of the 4th International Workshop on Security: Advances in Information and Computer Security</conf-name>, 
<publisher-loc>Berlin</publisher-loc>: 
<publisher-name>Springer</publisher-name>, pp. 
<fpage>71</fpage>&#x2013;
<lpage>88</lpage>, 
<year iso-8601-date="2009">2009</year>. </mixed-citation>
</ref>
<ref id="ref-23">
<label>[23]</label><mixed-citation publication-type="conf-proc">
<person-group person-group-type="author"><string-name>
<given-names>B.</given-names> 
<surname>Zhang</surname></string-name> and <string-name>
<given-names>Q. L.</given-names> 
<surname>Xu</surname></string-name>
</person-group>, &#x201C;
<article-title>An ID-based anonymous signcryption scheme for multiple receivers secure in the standard model</article-title>,&#x201D; in <conf-name>Proceedings of the 2010 International Conference on Advances in Computer Science and Information Technology</conf-name>, 
<publisher-loc>Berlin</publisher-loc>: 
<publisher-name>Springer</publisher-name>, vol. 
<volume>20</volume>, pp. 
<fpage>15</fpage>&#x2013;
<lpage>27</lpage>, 
<year iso-8601-date="2010">2010</year>. </mixed-citation>
</ref>
<ref id="ref-24">
<label>[24]</label><mixed-citation publication-type="book">
<person-group person-group-type="author"><string-name>
<given-names>X.</given-names> 
<surname>Wang</surname></string-name>, <string-name>
<given-names>J.</given-names> 
<surname>Shu</surname></string-name>, <string-name>
<given-names>W.</given-names> 
<surname>Zheng</surname></string-name>, <string-name>
<given-names>L. L.</given-names> 
<surname>Liu</surname></string-name> and <string-name>
<given-names>X.</given-names> 
<surname>Fan</surname></string-name>
</person-group>, &#x201C;<chapter-title>New multi-receiver ID-based ring signcryption scheme</chapter-title>,&#x201D; in 
<source>Unifying Electrical Engineering and Electronics Engineering</source>. 
<publisher-loc>X. Song, VA, New York, USA</publisher-loc>: 
<publisher-name>Springer</publisher-name>, pp. 
<fpage>2251</fpage>&#x2013;
<lpage>2257</lpage>, 
<year iso-8601-date="2014">2014</year>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>