<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFO1137</article-id>
<article-id pub-id-type="doi">10.15388/Informatica.2017.126</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>SIBSC: Separable Identity-Based Signcryption for Resource-Constrained Devices</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Tsai</surname><given-names>Tung-Tso</given-names></name><xref ref-type="aff" rid="j_info1137_aff_001"/><bio>
<p><bold>T.-T. Tsai</bold> received the BS degree from the Department of Applied Mathematics, Chinese Culture University, Taiwan, in 2006. He received the MS degree from the Department of Applied Mathematics, National Hsinchu University of Education, Taiwan, in 2009. He received the PhD degree from the Department of Mathematics, National Changhua University of Education, Taiwan, in 2014. His research interests include applied cryptography and pairing-based cryptography.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Huang</surname><given-names>Sen-Shan</given-names></name><xref ref-type="aff" rid="j_info1137_aff_001"/><bio>
<p><bold>S.-S. Huang</bold> is currently a professor in the Department of Mathematics, National Changhua University of Education, Taiwan. His research interests include number theory, cryptography, and network security. He received his PhD from the University of Illinois at Urbana-Champaign in 1997 under the supervision of Professor Bruce C. Berndt.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Tseng</surname><given-names>Yuh-Min</given-names></name><xref ref-type="aff" rid="j_info1137_aff_001"/><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>Y.-M. Tseng</bold> is currently a professor in the Department of Mathematics, National Changhua University of Education, Taiwan. He is a member of IEEE Computer Society, IEEE Communications Society and the Chinese Cryptology and Information Security Association (CCISA). In 2006, his paper received the Wilkes Award from The British Computer Society. He has published over one hundred scientific journal and conference papers on various research areas of cryptography, security and computer network. His research interests include cryptography, network security, computer network and mobile communications. He serves as an editor of several international journals.</p></bio>
</contrib>
<aff id="j_info1137_aff_001">Department of Mathematics, <institution>National Changhua University of Education</institution>, Jin-De Campus, Chang-Hua City 500, <country>Taiwan</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2017</year></pub-date><pub-date pub-type="epub"><day>1</day><month>1</month><year>2017</year></pub-date><volume>28</volume><issue>1</issue><fpage>193</fpage><lpage>214</lpage><history><date date-type="received"><month>8</month><year>2015</year></date><date date-type="accepted"><month>4</month><year>2016</year></date></history>
<permissions><copyright-statement>© 2017 Vilnius University</copyright-statement><copyright-year>2017</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>To provide better overall performance, identity (ID)-based signcryption (IBSC) has been constructed by combining ID-based signature (IBS) and ID-based encryption (IBE) in a secure manner. Undoubtedly, the IBSC fulfills the authentication and the confidentiality by signature and encryption, respectively. All the previously proposed IBSC schemes are <italic>inseparable</italic> in the sense that the two-layer sign-then-encrypt procedure must be performed only by the same entity. However, the entities, such as wireless sensors and smart cards, are resource-constrained and become time consuming in executing the two-layer sign-then-encrypt procedure. Nowadays, the usage of mobile cloud computing is gaining expanding interest which provides scalable and virtualized services over the Internet or wireless networks while users with resource-constrained devices can enjoy the advantages of mobile cloud computing environments. Hence, we aim to reduce the computational cost for resource-constrained devices by employing a third party. In this article, we present the first <italic>separable</italic> ID-based signcryption (SIBSC) scheme in which the signing and encrypting layers are performed by the device and a third party, respectively. Under the computation Diffie–Hellman (CDH) and bilinear Diffie–Hellman (BDH) assumptions, we demonstrate that the proposed SIBSC scheme offers the provable security of authentication and confidentiality while retaining communication performance.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>authentication</kwd>
<kwd>confidentiality</kwd>
<kwd>cloud computing</kwd>
<kwd>separable computation</kwd>
<kwd>signcryption</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_info1137_s_001">
<label>1</label>
<title>Introduction</title>
<p>In conventional public key systems, encryption and signature are respectively used to offer the confidentiality and the authentication which are two of the most important security issues. In addition, for both encryption and signature schemes in conventional public key systems, certificates are needed to provide an unforgeable and trusted link between identities and public keys. In 1984, Shamir (<xref ref-type="bibr" rid="j_info1137_ref_029">1984</xref>) introduced the concept of identity (ID)-based cryptography to eliminate the need of certificates by which Shamir replaced the public keys of users with their identity information. Hence, ID-based cryptography provides a convenient alternative equipped with no public key infrastructure (PKI). A practical ID-based construction was not constructed until 2001 when Boneh and Franklin (<xref ref-type="bibr" rid="j_info1137_ref_003">2001</xref>) presented the very first one based on bilinear pairings. Boneh and Franklin’s construction was an important breakthrough and offered a pathway to build other ID-based cryptographic mechanisms such as ID-based key agreement protocols (Chen <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_010">2007</xref>; Wu and Tseng, <xref ref-type="bibr" rid="j_info1137_ref_038">2010</xref>; Tseng <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_034">2016</xref>), ID-based encryption (IBE) schemes (Boneh and Boyen, <xref ref-type="bibr" rid="j_info1137_ref_002">2004</xref>; Waters, <xref ref-type="bibr" rid="j_info1137_ref_037">2005</xref>; Boyen and Waters, <xref ref-type="bibr" rid="j_info1137_ref_006">2006</xref>; Libert and Vergnaud, <xref ref-type="bibr" rid="j_info1137_ref_019">2009</xref>; Tsai <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_031">2012</xref>) and ID-based signature (IBS) schemes (Cha and Cheon, <xref ref-type="bibr" rid="j_info1137_ref_008">2003</xref>; Paterson and Schuldt, <xref ref-type="bibr" rid="j_info1137_ref_025">2006</xref>; Boneh <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_004">2006</xref>; Narayan and Parampalli, <xref ref-type="bibr" rid="j_info1137_ref_024">2008</xref>; Tsai <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_032">2013</xref>, <xref ref-type="bibr" rid="j_info1137_ref_033">2014</xref>).</p>
<p>A signcryption scheme provides an efficient solution to fulfill both the functions of signature and encryption simultaneously. The performance of a signcryption scheme is better than that of performing a signature and a public-key encryption schemes apart. Hence, signcryption is useful in many applications, such as mobile communications and smart cards. The first ID-based signcryption (IBSC) scheme was constructed by Malone-Lee (<xref ref-type="bibr" rid="j_info1137_ref_022">2002</xref>). Further research on IBSC (Libert and Quisquater, <xref ref-type="bibr" rid="j_info1137_ref_018">2003</xref>; Boyen, <xref ref-type="bibr" rid="j_info1137_ref_005">2003</xref>; Chow <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_011">2004</xref>; Chen and Malone-Lee, <xref ref-type="bibr" rid="j_info1137_ref_009">2005</xref>) has been done to improve both the security and performance. The environment of IBSC includes three roles, namely, a trusted private key generator (PKG), senders and receivers. The PKG is responsible to generate the private keys of both senders and receivers by using their identities. A sender, by using her/his private key and a designated receiver’s identity, performs a two-layer sign-then-encrypt procedure on a message to generate a ciphertext. Upon receiving the ciphertext, the designated receiver is able to decrypt it to obtain the signature and message, while verifying the signature using the sender’s identity.</p>
<sec id="j_info1137_s_002">
<label>1.1</label>
<title>Related Work</title>
<p>Zheng (<xref ref-type="bibr" rid="j_info1137_ref_040">1997</xref>) presented the notion of public key signcryption by which signature and encryption are performed simultaneously to reduce computational cost or communication size, compared with those performing signature and encryption separately. Zheng presented two signcryption schemes based on the discrete logarithm problem. Indeed, a signcryption scheme fulfills the authentication and the confidentiality offered by signature and encryption, respectively.</p>
<p>Following Boneh and Franklin (<xref ref-type="bibr" rid="j_info1137_ref_003">2001</xref>), Malone-Lee (<xref ref-type="bibr" rid="j_info1137_ref_022">2002</xref>) proposed the first ID-based signcryption (IBSC) scheme by combining IBS and IBE schemes. Later, Libert and Quisquater (<xref ref-type="bibr" rid="j_info1137_ref_018">2003</xref>) pointed out a security drawback on Malone-Lee’s scheme, namely, semantically insecure. Libert and Quisquater also presented three improved IBSC schemes, but these schemes lack public verifiability and forward security. In 2004, Chow <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_011">2004</xref>) proposed an IBSC scheme to resolve the weakness in Libert and Quisquater (<xref ref-type="bibr" rid="j_info1137_ref_018">2003</xref>). In order to provide ciphertext unlinkability and anonymity, Boyen (<xref ref-type="bibr" rid="j_info1137_ref_005">2003</xref>) proposed a multi-purpose IBSC scheme. A couple of years later, Chen and Malone-Lee (<xref ref-type="bibr" rid="j_info1137_ref_009">2005</xref>) modified Boyen’s scheme to improve efficiency. All the IBSC schemes mentioned above are proved to be secure in the random oracle model (Bellare and Rogaway, <xref ref-type="bibr" rid="j_info1137_ref_001">1993</xref>; Canetti <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_007">2004</xref>). In order to provide more robust security, several researchers (Jin <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_014">2010</xref>; Zhang, <xref ref-type="bibr" rid="j_info1137_ref_039">2010</xref>; Li <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_017">2011</xref>; Li and Takagi, <xref ref-type="bibr" rid="j_info1137_ref_016">2013</xref>) eliminated the use of random oracles to create several IBSC schemes in the standard models. Indeed, these schemes enhance the security, but degrade the performance.</p>
</sec>
<sec id="j_info1137_s_003">
<label>1.2</label>
<title>Motivation and Contribution</title>
<p>Nowadays, the usage of cloud computing is gaining expanding interest. Cloud computing environment, defined by the National Institute of Standards and Technology (NIST) (Mell and Grance, <xref ref-type="bibr" rid="j_info1137_ref_023">2009</xref>), provides scalable and virtualized services over the Internet or wireless networks. To enjoy the advantages of cloud computing environments, encryption and signature schemes (Fahl <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_013">2012</xref>) are generally demanded to achieve authentication and confidentiality, respectively. With the popularity of Internet and wireless networks, many clients employ mobile devices (e.g. smart phone or pad) or computers (notebook or PC) to access cloud computing services through open channels (Suo <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_030">2013</xref>; Tysowski and Hasan, <xref ref-type="bibr" rid="j_info1137_ref_035">2013</xref>; Ma <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_021">2015</xref>). If clients use mobile devices or computers to store the private keys (credentials) while performing some operations, it is dangerous and not secure because the stored private keys (credentials) could be stolen by embedding virus or hacker software on these mobile devices or computers. Therefore, it is the most accredited way to store the private keys in smart cards while some cryptographic computations using the private keys are also performed by smart cards. However, smart cards are resource-constrained and possess limited computing capability, so the heaviest computations of applications must be executed by mobile devices or computers instead, except some cryptographic computations such as encryption and signature because of security consideration.</p>
<p>When smart cards are involved in ID-based cryptography, they become time consuming in executing cryptographic computations such as pairing operations in Boneh and Franklin’s IBE scheme (<xref ref-type="bibr" rid="j_info1137_ref_003">2001</xref>). Undoubtedly, based on Boneh and Franklin’s ID-based public-key setting, the existing IBE, IBS, and IBSC schemes still require pairing operations, which are heavy computation load for resource-constrained devices. For achieving both authentication and confidentiality simultaneously, as mentioned earlier, the performance of an IBSC scheme is better than that of performing an IBS scheme and an IBE scheme separately.</p>
<p>In an IBSC scheme, the same ephemeral secrets, parameters and keys are used in the two-layer sign-then-encrypt procedure, which includes a signing layer and an encryption layer. We observe that all the previously proposed IBSC schemes are <italic>inseparable</italic> in the sense that the two-layer sign-then-encrypt procedure must be performed only by the same entity. The reason is that if the encryption layer were performed by a third party, the private key of the sender could be revealed by the third party because the same ephemeral secrets are involved in both the signing and encryption layers. In this article, to reduce the computational cost of resource-constrained devices (e.g. smart cards) in IBSC schemes, we will employ a third party to assist with expensive pairing computations without endangering the private keys of senders. Indeed, we will propose a novel <italic>separable</italic> ID-based signcryption (SIBSC) scheme in which the signing and encryption layers are performed by a resource-constrained device and a third party, respectively. Under the computation Diffie–Hellman (CDH) and bilinear Diffie–Hellman (BDH) assumptions (Boneh and Franklin, <xref ref-type="bibr" rid="j_info1137_ref_003">2001</xref>; Cha and Cheon, <xref ref-type="bibr" rid="j_info1137_ref_008">2003</xref>), we demonstrate that our proposed SIBSC scheme offers the provable security of authentication and confidentiality in the random oracle model (Bellare and Rogaway, <xref ref-type="bibr" rid="j_info1137_ref_001">1993</xref>; Canetti <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_007">2004</xref>).</p>
<p>Here, we present a usage scenario of the proposed SIBSC scheme which is depicted in Fig. <xref rid="j_info1137_fig_001">1</xref>. In a client-server environment, a client with smart card would like to have access to multiple (<italic>m</italic>) remote service servers via open channels (e.g. Internet). The client may use a third party (smart phone or PC with a card reader) to perform the proposed SIBSC scheme to achieve authentication and confidentiality for remote service servers. In which, the client’s private key is involved in the signing layer which is performed by the smart card. Meanwhile, the public-key encryption layer is performed by a smart phone or a PC with a card reader due to it does not require the client’s private key to involve in the computation. It is notable that the smartcard directly connects to a smart phone with a transmission-line-connected card reader or a PC with an embedded card reader. If the smart card connects to the third party using wireless communication, it will incur extra communication cost.</p>
<fig id="j_info1137_fig_001">
<label>Fig. 1</label>
<caption>
<p>The usage scenario of the SIBSC scheme.</p>
</caption>
<graphic xlink:href="info1137_g001.jpg"/>
</fig>
</sec>
<sec id="j_info1137_s_004">
<label>1.3</label>
<title>Merits of Our SIBSC Scheme</title>
<p>Here, we demonstrate the merits of our SIBSC scheme which is suitable to provide both authentication and confidentiality for many applications with resource-constrained devices. For example, a smart card with limited computing capability could not efficiently execute heavy computations (such as pairing operations) and, in such a case, it needs to rely on a third party to perform these heavy computations. In order to achieve both authentication and confidentiality, we observe four solutions (combinations) according to running entities (smart card and third party) and the employed schemes (IBS + IBE, IBSC and SIBSC) as follows.</p>
<list>
<list-item id="j_info1137_li_001">
<label>•</label>
<p>Solution 1: an intuitive solution is that the smart card performs both IBS and IBE schemes as depicted in Fig. <xref rid="j_info1137_fig_002">2</xref>(a). In this case, the smart card takes all computational loads.</p>
</list-item>
<list-item id="j_info1137_li_002">
<label>•</label>
<p>Solution 2: the IBS scheme is performed by the smart card, while the IBE scheme is executed by a third party as shown in Fig. <xref rid="j_info1137_fig_002">2</xref>(b). This solution aims at reducing the computational cost of the smart card. Note that running an IBE scheme does not need the sender’s private key.</p>
<p>
<fig id="j_info1137_fig_002">
<label>Fig. 2</label>
<caption>
<p>Four solutions to achieve authentication and confidentiality.</p>
</caption>
<graphic xlink:href="info1137_g002.jpg"/>
</fig>
</p>
<p><table-wrap id="j_info1137_tab_001">
<label>Table 1</label>
<caption>
<p>Comparisons between the SIBSC scheme and other schemes.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Solution 1</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Solution 2</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Solution 3</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Our solution</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Hired scheme</td>
<td style="vertical-align: top; text-align: left">CC’s IBS</td>
<td style="vertical-align: top; text-align: left">CC’s IBS</td>
<td style="vertical-align: top; text-align: left">CM’s IBSC</td>
<td style="vertical-align: top; text-align: left">Our SIBSC</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">(2003)</td>
<td style="vertical-align: top; text-align: left">(2003)</td>
<td style="vertical-align: top; text-align: left">(2005)</td>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">+ BF’s IBE</td>
<td style="vertical-align: top; text-align: left">+ BF’s IBE</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">(2001)</td>
<td style="vertical-align: top; text-align: left">(2001)</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Computational cost of</td>
<td style="vertical-align: top; text-align: left">Signing + Encryption</td>
<td style="vertical-align: top; text-align: left">Signing</td>
<td style="vertical-align: top; text-align: left">Signcryption</td>
<td style="vertical-align: top; text-align: left">Signing layer</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">smart card</td>
<td style="vertical-align: top; text-align: left">(High)</td>
<td style="vertical-align: top; text-align: left">(Low)</td>
<td style="vertical-align: top; text-align: left">(High)</td>
<td style="vertical-align: top; text-align: left">(Low)</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Computational cost for</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">Encryption</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">Encryption layer</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">third party</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">(Low)</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">(Low)</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Communication size</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">High</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">High</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Low</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Low</td>
</tr>
</tbody>
</table>
</table-wrap></p>
</list-item>
<list-item id="j_info1137_li_003">
<label>•</label>
<p>Solution 3: the smart card performs the two-layer sign-then-encrypt procedure in the IBSC scheme as shown in Fig. <xref rid="j_info1137_fig_002">2</xref>(c). This solution is more efficient than Solutions 1 and 2, in particular, in communication size.</p>
</list-item>
<list-item id="j_info1137_li_004">
<label>•</label>
<p>Our solution: By our SIBSC scheme, the signing and encryption layers are performed by the smart card and a third party, respectively, as shown in Fig. <xref rid="j_info1137_fig_002">2</xref>(d). Our solution aims at reducing not only the computational cost of the smart card but also the communication size.</p>
</list-item>
</list>
<p>Table <xref rid="j_info1137_tab_001">1</xref> lists the comparisons between the proposed SIBSC scheme (our solution) and the other three solutions in terms of computational costs of smart card and third party, and communication size. Here, we adopt, respectively, the Cha and Cheon’s IBS (for short, CC’s IBS) and Boneh and Franklin’s IBE (for short, BF’s IBE) schemes in Cha and Cheon (<xref ref-type="bibr" rid="j_info1137_ref_008">2003</xref>) and Boneh and Franklin (<xref ref-type="bibr" rid="j_info1137_ref_003">2001</xref>). In the meantime, we employ the most efficient IBSC (CM’s IBSC) scheme constructed by Chen and Malone-Lee (<xref ref-type="bibr" rid="j_info1137_ref_009">2005</xref>). By Table <xref rid="j_info1137_tab_001">1</xref>, it is clear that our solution possesses the merits of both Solutions 2 and 3. The detailed comparisons regarding communication and computational costs will be discussed in Section <xref rid="j_info1137_s_014">6</xref>.</p>
</sec>
<sec id="j_info1137_s_005">
<label>1.4</label>
<title>Outline of the Paper</title>
<p>The rest of this paper is organized as follows. Preliminaries are given in Section <xref rid="j_info1137_s_006">2</xref>. Then, in Section <xref rid="j_info1137_s_009">3</xref>, we give framework and security notions. In Section <xref rid="j_info1137_s_012">4</xref>, a concrete SIBSC scheme is proposed. Section <xref rid="j_info1137_s_013">5</xref> gives the security analysis of the proposed scheme. Finally, we demonstrate performance analysis in Section <xref rid="j_info1137_s_014">6</xref> before making conclusions in Section <xref rid="j_info1137_s_015">7</xref>.</p>
</sec>
</sec>
<sec id="j_info1137_s_006">
<label>2</label>
<title>Preliminaries</title>
<p>Before presenting our construction, we briefly review the concept of bilinear pairings and two mathematical assumptions on which our construction is based. We first define the following notations. 
<list>
<list-item id="j_info1137_li_005">
<label>•</label>
<p><italic>q</italic> is a large prime.</p>
</list-item>
<list-item id="j_info1137_li_006">
<label>•</label>
<p><inline-formula id="j_info1137_ineq_001"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> is an additive cyclic group of order <italic>q</italic>.</p>
</list-item>
<list-item id="j_info1137_li_007">
<label>•</label>
<p><inline-formula id="j_info1137_ineq_002"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula> is a multiplicative cyclic group of order <italic>q</italic>.</p>
</list-item>
<list-item id="j_info1137_li_008">
<label>•</label>
<p><italic>P</italic> is a generator of <inline-formula id="j_info1137_ineq_003"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</p>
<sec id="j_info1137_s_007">
<label>2.1</label>
<title>Bilinear Map</title>
<p>We say that <inline-formula id="j_info1137_ineq_004"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\hat{e}:{\mathbb{G}_{1}}\times {\mathbb{G}_{1}}\to {\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula> is an admissible bilinear map if it satisfies three properties as follows. 
<list>
<list-item id="j_info1137_li_009">
<label>(1)</label>
<p>Non-degeneracy: <inline-formula id="j_info1137_ineq_005"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\hat{e}(P,P)\ne 1$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_010">
<label>(2)</label>
<p>Bilinearity: for all <inline-formula id="j_info1137_ineq_006"><alternatives><mml:math>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$Q,R\in {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_007"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$a,b\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_008"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\hat{e}(aQ,bR)=\hat{e}{(Q,R)^{ab}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_011">
<label>(3)</label>
<p>Computability: for <inline-formula id="j_info1137_ineq_009"><alternatives><mml:math>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$Q,R\in {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula>, there exists an efficient algorithm to compute <inline-formula id="j_info1137_ineq_010"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\hat{e}(Q,R)$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list> 
For full descriptions of groups, maps and other parameters, the reader can refer to Boneh and Franklin (<xref ref-type="bibr" rid="j_info1137_ref_003">2001</xref>).</p>
</sec>
<sec id="j_info1137_s_008">
<label>2.2</label>
<title>Related Mathematical Assumptions</title>
<p>The computational Diffie–Hellman (CDH) and the bilinear Diffie–Hellman (BDH) assumptions in <inline-formula id="j_info1137_ineq_011"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_012"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula>, respectively, are defined as below. <statement id="j_info1137_stat_001"><label>Definition 1</label>
<title>(<italic>CDH assumption</italic>).</title>
<p>Given <inline-formula id="j_info1137_ineq_013"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$P,aP,bP\in {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> with unknown <inline-formula id="j_info1137_ineq_014"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$a,b\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, we assume that there exists no probabilistic polynomial-time (PPT) adversary <inline-formula id="j_info1137_ineq_015"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> with non-negligible probability who can compute <inline-formula id="j_info1137_ineq_016"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[$abP$]]></tex-math></alternatives></inline-formula>. The successful probability (advantage) of the adversary <inline-formula id="j_info1137_ineq_017"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is presented as 
<disp-formula id="j_info1137_eq_001">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Pr</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathrm{Adv}_{\mathcal{A}}}=\mathrm{Pr}\big[\mathcal{A}(P,aP,bP)=abP\big].\]]]></tex-math></alternatives>
</disp-formula>
</p></statement><statement id="j_info1137_stat_002"><label>Definition 2</label>
<title>(<italic>BDH assumption</italic>).</title>
<p>Given <inline-formula id="j_info1137_ineq_018"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$P,aP,bP,cP\in {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> with unknown <inline-formula id="j_info1137_ineq_019"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$a,b,c\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, we assume that there exists no PPT adversary <inline-formula id="j_info1137_ineq_020"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> with non-negligible probability who can compute <inline-formula id="j_info1137_ineq_021"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\hat{e}{(P,P)^{abc}}$]]></tex-math></alternatives></inline-formula>. The successful probability of the adversary <inline-formula id="j_info1137_ineq_022"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is presented as 
<disp-formula id="j_info1137_eq_002">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Adv</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Pr</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">]</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathrm{Adv}_{\mathcal{A}}}=\mathrm{Pr}\big[\mathcal{A}(P,aP,bP,cP)=\hat{e}{(P,P)^{abc}}\big].\]]]></tex-math></alternatives>
</disp-formula>
</p></statement></p>
</sec>
</sec>
<sec id="j_info1137_s_009">
<label>3</label>
<title>Framework and Security Notions</title>
<p>Here, we informally describe our separable ID-based signcryption (SIBSC). The proposed SIBSC consists of four roles, namely, a trusted private key generator (PKG), a semi-trusted third party (e.g. smart phone), senders (with resourced-constrained devices) and receivers. The work of the PKG is to generate the secret key and public parameters of the system, and produce private keys of users (senders and receivers). A sender (signer) <italic>A</italic> with identity <inline-formula id="j_info1137_ineq_023"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{A}}$]]></tex-math></alternatives></inline-formula> first chooses an ephemeral secret value <inline-formula id="j_info1137_ineq_024"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{A}}$]]></tex-math></alternatives></inline-formula>, and generates a signature <inline-formula id="j_info1137_ineq_025"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{A}}$]]></tex-math></alternatives></inline-formula> on a message <italic>M</italic> by using her/his private key <inline-formula id="j_info1137_ineq_026"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{A}}$]]></tex-math></alternatives></inline-formula>. For a designated receiver <italic>B</italic> with identity <inline-formula id="j_info1137_ineq_027"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{B}}$]]></tex-math></alternatives></inline-formula>, the sender <italic>A</italic> first transmits <inline-formula id="j_info1137_ineq_028"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\sigma _{A}},M,{\mathit{ID}_{A}},{r_{A}},{\mathit{ID}_{B}})$]]></tex-math></alternatives></inline-formula> to the third party via a secure channel. Then, the third party is responsible to generate a ciphertext <inline-formula id="j_info1137_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CT}_{B}}$]]></tex-math></alternatives></inline-formula> using <inline-formula id="j_info1137_ineq_030"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\sigma _{A}},M,{\mathit{ID}_{A}},{r_{A}},{\mathit{ID}_{B}})$]]></tex-math></alternatives></inline-formula>, and transmit <inline-formula id="j_info1137_ineq_031"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CT}_{B}}$]]></tex-math></alternatives></inline-formula> to the receiver <italic>B</italic>. Finally, the ciphertext <inline-formula id="j_info1137_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CT}_{B}}$]]></tex-math></alternatives></inline-formula> can be decrypted and verified by <italic>B</italic>. Here, we emphasize that the semi-trusted third party is unable to reveal the private key of the sender <italic>A</italic> by appealing to the message <inline-formula id="j_info1137_ineq_033"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\sigma _{A}},M,{\mathit{ID}_{A}},{r_{A}},{\mathit{ID}_{B}})$]]></tex-math></alternatives></inline-formula>.</p>
<sec id="j_info1137_s_010">
<label>3.1</label>
<title>Framework</title>
<p>In IBSC schemes of Boyen (<xref ref-type="bibr" rid="j_info1137_ref_005">2003</xref>), Chen and Malone-Lee (<xref ref-type="bibr" rid="j_info1137_ref_009">2005</xref>), the framework consists of six algorithms, namely, the <italic>system setup</italic>, the <italic>key extract</italic>, the <italic>signing</italic>, the <italic>encryption</italic>, the <italic>decryption</italic> and the <italic>verification</italic>. Here, our framework for SIBSC schemes is identical to that of the above IBSC schemes, except that our <italic>encryption</italic> algorithm does not require the input of the sender’s secret key. The details of six algorithms are described below. 
<list>
<list-item id="j_info1137_li_012">
<label>•</label>
<p><italic>System setup</italic>: on input of a security parameter <italic>l</italic>, this algorithm produces a secret key <inline-formula id="j_info1137_ineq_034"><alternatives><mml:math>
<mml:mi mathvariant="italic">SK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SK}$]]></tex-math></alternatives></inline-formula> and public parameters <inline-formula id="j_info1137_ineq_035"><alternatives><mml:math>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{PK}$]]></tex-math></alternatives></inline-formula> of the system. <inline-formula id="j_info1137_ineq_036"><alternatives><mml:math>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{PK}$]]></tex-math></alternatives></inline-formula> is publicly known and available for all other algorithms.</p>
</list-item>
<list-item id="j_info1137_li_013">
<label>•</label>
<p><italic>Key extract</italic>: on input of <inline-formula id="j_info1137_ineq_037"><alternatives><mml:math>
<mml:mi mathvariant="italic">SK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SK}$]]></tex-math></alternatives></inline-formula> and the identity <inline-formula id="j_info1137_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> of a user <italic>U</italic>, this algorithm computes the corresponding secret key <inline-formula id="j_info1137_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> and then returns it to <italic>U</italic> via a secure channel.</p>
</list-item>
<list-item id="j_info1137_li_014">
<label>•</label>
<p><italic>Signing</italic>: on input of the identity <inline-formula id="j_info1137_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{A}}$]]></tex-math></alternatives></inline-formula>, the secret key <inline-formula id="j_info1137_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{A}}$]]></tex-math></alternatives></inline-formula> of a user <italic>A</italic>, and a message <italic>M</italic>, this algorithm produces a pair <inline-formula id="j_info1137_ineq_042"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\sigma _{A}},{r_{A}})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{A}}$]]></tex-math></alternatives></inline-formula> is a signature and <inline-formula id="j_info1137_ineq_044"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{A}}$]]></tex-math></alternatives></inline-formula> is an ephemeral data.</p>
</list-item>
<list-item id="j_info1137_li_015">
<label>•</label>
<p><italic>Encryption</italic>: on input of the identity <inline-formula id="j_info1137_ineq_045"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{B}}$]]></tex-math></alternatives></inline-formula> of a user <italic>B</italic>, a message <italic>M</italic> and a pair <inline-formula id="j_info1137_ineq_046"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\sigma _{A}},{r_{A}})$]]></tex-math></alternatives></inline-formula>, this algorithm produces a ciphertext <inline-formula id="j_info1137_ineq_047"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CT}_{B}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_016">
<label>•</label>
<p><italic>Decryption</italic>: on input of the secret key <inline-formula id="j_info1137_ineq_048"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{B}}$]]></tex-math></alternatives></inline-formula> of a user <italic>B</italic> and the ciphertext <inline-formula id="j_info1137_ineq_049"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CT}_{B}}$]]></tex-math></alternatives></inline-formula>, this algorithm produces the message <italic>M</italic> and the signature <inline-formula id="j_info1137_ineq_050"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{A}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_017">
<label>•</label>
<p><italic>Verification</italic>: on input of the identity <inline-formula id="j_info1137_ineq_051"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{A}}$]]></tex-math></alternatives></inline-formula> of a user <italic>A</italic>, the message <italic>M</italic> and the signature <inline-formula id="j_info1137_ineq_052"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{A}}$]]></tex-math></alternatives></inline-formula>, the algorithm outputs either “accept” or “reject”.</p>
</list-item>
</list>
</p>
</sec>
<sec id="j_info1137_s_011">
<label>3.2</label>
<title>Security Notions</title>
<p>In a SIBSC scheme, both security properties of authentication (unforgeability) and confidentiality must be fulfilled. It is obvious that the attacking ability of the semi-trusted third party is stronger than that of any outsider because it possesses more information (i.e. ephemeral secret and signature) sent by a sender. Hence, for unforgeability, it suffices to demonstrate that the third party cannot violate the authentication of the proposed SIBSC scheme, which will be done in Section <xref rid="j_info1137_s_013">5</xref>. In the following, we introduce two kinds of adversaries to address the two security properties. 
<list>
<list-item id="j_info1137_li_018">
<label>•</label>
<p>Type I adversary: this adversary is the semi-trusted third party, which assists the sender with heavy computation and attempts to forge a signature on behalf of the sender.</p>
</list-item>
<list-item id="j_info1137_li_019">
<label>•</label>
<p>Type II adversary: upon capturing a ciphertext, a Type II adversary attempts to decrypt it to obtain the plaintext message. This adversary excludes the designated receiver.</p>
</list-item>
</list> 
<statement id="j_info1137_stat_003"><label>Definition 3</label>
<title>(<italic>Unforgeability for Type I adversary</italic>).</title>
<p>We say that a SIBSC scheme is existential unforgeability against adaptive chosen message attack (SIBSC-UF-ACMA) if no Type I adversary <inline-formula id="j_info1137_ineq_053"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> has a non-negligible advantage in the following SIBSC-UF-ACMA game played between a challenger <inline-formula id="j_info1137_ineq_054"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> and the adversary <inline-formula id="j_info1137_ineq_055"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>. 
<list>
<list-item id="j_info1137_li_020">
<label>•</label>
<p><bold>Initial:</bold> the challenger <inline-formula id="j_info1137_ineq_056"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> runs the <italic>system setup</italic> algorithm to generate a secret key <inline-formula id="j_info1137_ineq_057"><alternatives><mml:math>
<mml:mi mathvariant="italic">SK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SK}$]]></tex-math></alternatives></inline-formula> and public parameters <inline-formula id="j_info1137_ineq_058"><alternatives><mml:math>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{PK}$]]></tex-math></alternatives></inline-formula> of the system. <inline-formula id="j_info1137_ineq_059"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> then gives <inline-formula id="j_info1137_ineq_060"><alternatives><mml:math>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{PK}$]]></tex-math></alternatives></inline-formula> to the adversary <inline-formula id="j_info1137_ineq_061"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> while keeping <inline-formula id="j_info1137_ineq_062"><alternatives><mml:math>
<mml:mi mathvariant="italic">SK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SK}$]]></tex-math></alternatives></inline-formula> secret.</p>
</list-item>
<list-item id="j_info1137_li_021">
<label>•</label>
<p><bold>Phase 1:</bold> the adversary <inline-formula id="j_info1137_ineq_063"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> may make a number of different queries to the challenger <inline-formula id="j_info1137_ineq_064"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> in an adaptive manner as follows:</p>
<list>
<list-item id="j_info1137_li_022">
<label>–</label>
<p><bold>Key extract query:</bold> the adversary <inline-formula id="j_info1137_ineq_065"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> submits this query along with identity <inline-formula id="j_info1137_ineq_066"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>. The challenger <inline-formula id="j_info1137_ineq_067"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> runs the <italic>key extract</italic> algorithm to generate the private key <inline-formula id="j_info1137_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1137_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> and returns it to <inline-formula id="j_info1137_ineq_070"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_023">
<label>–</label>
<p><bold>Signing query:</bold> the adversary <inline-formula id="j_info1137_ineq_071"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> submits this query along with a message <italic>M</italic> and an identity <inline-formula id="j_info1137_ineq_072"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>. The challenger <inline-formula id="j_info1137_ineq_073"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> runs the <italic>signing</italic> algorithm to generate a signature <inline-formula id="j_info1137_ineq_074"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{U}}$]]></tex-math></alternatives></inline-formula> and then returns it to <inline-formula id="j_info1137_ineq_075"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_024">
<label>•</label>
<p><bold>Forge:</bold> the adversary <inline-formula id="j_info1137_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> returns a tuple <inline-formula id="j_info1137_ineq_077"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo></mml:math><tex-math><![CDATA[$({M^{\ast }},$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1137_ineq_078"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo></mml:math><tex-math><![CDATA[${\sigma _{U}^{\ast }},$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1137_ineq_079"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }})$]]></tex-math></alternatives></inline-formula>, and we say that <inline-formula id="j_info1137_ineq_080"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> wins this game if the following conditions are satisfied:</p>
<list>
<list-item id="j_info1137_li_025">
<label>(1)</label>
<p>The response of <italic>verification</italic> algorithm on <inline-formula id="j_info1137_ineq_081"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({M^{\ast }},{\sigma _{U}^{\ast }},{\mathit{ID}_{U}^{\ast }})$]]></tex-math></alternatives></inline-formula> is “accept”.</p>
</list-item>
<list-item id="j_info1137_li_026">
<label>(2)</label>
<p><inline-formula id="j_info1137_ineq_082"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\sigma _{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> has not been returned during signing queries on the input <inline-formula id="j_info1137_ineq_083"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({M^{\ast }},{\mathit{ID}_{U}^{\ast }})$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_027">
<label>(3)</label>
<p><inline-formula id="j_info1137_ineq_084"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> did not appear in key extract queries.</p>
</list-item>
</list>
</list-item>
</list>
</p></statement><statement id="j_info1137_stat_004"><label>Definition 4</label>
<title>(<italic>Confidentiality for Type II adversary</italic>).</title>
<p>We say that a SIBSC scheme is semantically secure against an adaptive chosen plaintext attack (IND-SIBSC-CPA) if no Type II adversary <inline-formula id="j_info1137_ineq_085"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> has a non-negligible advantage in the following IND-SIBSC-CPA game played between a challenger <inline-formula id="j_info1137_ineq_086"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> and the adversary <inline-formula id="j_info1137_ineq_087"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>. 
<list>
<list-item id="j_info1137_li_028">
<label>•</label>
<p><bold>Initial:</bold> same as the <bold>Initial</bold> in <bold>Definition</bold> <xref rid="j_info1137_stat_003"><bold>3</bold></xref>.</p>
</list-item>
<list-item id="j_info1137_li_029">
<label>•</label>
<p><bold>Phase 1:</bold> the adversary <inline-formula id="j_info1137_ineq_088"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> may make a number of <italic>key extract</italic> queries, as described in <bold>Phase 1</bold> of <bold>Definition</bold> <xref rid="j_info1137_stat_003"><bold>3</bold></xref>, to the challenger <inline-formula id="j_info1137_ineq_089"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> in an adaptive manner.</p>
</list-item>
<list-item id="j_info1137_li_030">
<label>•</label>
<p><bold>Challenge:</bold> the adversary <inline-formula id="j_info1137_ineq_090"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> outputs an identity <inline-formula id="j_info1137_ineq_091"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> and a target plaintext pair <inline-formula id="j_info1137_ineq_092"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({M_{0}},{M_{1}})$]]></tex-math></alternatives></inline-formula>. After receiving them, <inline-formula id="j_info1137_ineq_093"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a value <inline-formula id="j_info1137_ineq_094"><alternatives><mml:math>
<mml:mi mathvariant="fraktur">b</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathfrak{b}\in \{0,1\}$]]></tex-math></alternatives></inline-formula> and runs the <italic>encryption</italic> algorithm on <inline-formula id="j_info1137_ineq_095"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="fraktur">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${M_{\mathfrak{b}}}$]]></tex-math></alternatives></inline-formula> to generate a ciphertext <inline-formula id="j_info1137_ineq_096"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{CT}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> encrypted under the identity <inline-formula id="j_info1137_ineq_097"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>. Then <inline-formula id="j_info1137_ineq_098"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> returns the ciphertext <inline-formula id="j_info1137_ineq_099"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{CT}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_100"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>. Here, we impose the restriction that <inline-formula id="j_info1137_ineq_101"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> has not appeared in the key extract queries.</p>
</list-item>
<list-item id="j_info1137_li_031">
<label>•</label>
<p><bold>Phase 2:</bold> the adversary <inline-formula id="j_info1137_ineq_102"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> may make further queries as in Phase 1. The restriction is that <inline-formula id="j_info1137_ineq_103"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> has not appeared in the key extract queries.</p>
</list-item>
<list-item id="j_info1137_li_032">
<label>•</label>
<p><bold>Guess:</bold> the adversary <inline-formula id="j_info1137_ineq_104"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> returns its guess <inline-formula id="j_info1137_ineq_105"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="fraktur">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathfrak{b}^{\prime }}\in \{0,1\}$]]></tex-math></alternatives></inline-formula>. We say that <inline-formula id="j_info1137_ineq_106"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> wins the IND-SIBSC-CPA game if <inline-formula id="j_info1137_ineq_107"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="fraktur">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="fraktur">b</mml:mi></mml:math><tex-math><![CDATA[${\mathfrak{b}^{\prime }}=\mathfrak{b}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</p></statement><statement id="j_info1137_stat_005"><label>Remark 1.</label>
<p>A separable ID-based signcryption scheme against an adaptive chosen plaintext attack (IND-SIBSC-CPA) is weaker than that against an adaptive chosen ciphertext attack (IND-SIBSC-CCA). The IND-SIBSC-CCA game is identical to the IND-SIBSC-CPA game except by adding the decryption queries in Phases 1 and 2. Indeed, Kitagawa <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_015">2006</xref>) have proposed a simple conversion from a weak scheme (IND-ID-CPA) to a strong one (IND-ID-CCA) in the random oracle model (Bellare and Rogaway, <xref ref-type="bibr" rid="j_info1137_ref_001">1993</xref>; Canetti <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_007">2004</xref>). The only restriction is that the hash functions used in the weak scheme must be random oracles (Kitagawa <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_015">2006</xref>). Hence, following this conversion, one can also construct a strong ID-based signcryption scheme from our proposed scheme in the random oracle model.</p></statement></p>
</sec>
</sec>
<sec id="j_info1137_s_012">
<label>4</label>
<title>Our SIBSC Scheme</title>
<p>Our SIBSC scheme consists of six algorithms: the <italic>system setup</italic>, the <italic>key extract</italic>, the <italic>signing</italic>, the <italic>encryption</italic>, the <italic>decryption</italic> and the <italic>verification</italic>.</p>
<list>
<list-item id="j_info1137_li_033">
<label>•</label>
<p><italic>System setup</italic>: given a security parameter <italic>l</italic>, a trusted private key generator (PKG) chooses two groups <inline-formula id="j_info1137_ineq_108"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_109"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula> of prime order <inline-formula id="j_info1137_ineq_110"><alternatives><mml:math>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$q>{2^{l}}$]]></tex-math></alternatives></inline-formula> such that an admissible bilinear map <inline-formula id="j_info1137_ineq_111"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\hat{e}:{\mathbb{G}_{1}}\times {\mathbb{G}_{1}}\to {\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula> can be constructed. Let <italic>P</italic> be a generator of <inline-formula id="j_info1137_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula>. The PKG randomly selects a value <inline-formula id="j_info1137_ineq_113"><alternatives><mml:math>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$s\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula> as the system secret key, computes <inline-formula id="j_info1137_ineq_114"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${P_{\mathit{pub}}}=s\cdot P$]]></tex-math></alternatives></inline-formula> and picks five hash functions <inline-formula id="j_info1137_ineq_115"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${f_{1}},{f_{2}}:{\{0,1\}^{\ast }}\times {\mathbb{G}_{1}}\to {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_116"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}:{\{0,1\}^{\ast }}\times {\mathbb{G}_{1}}\to {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_117"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}:{\{0,1\}^{\ast }}\to {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_118"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${H_{3}}:{\mathbb{G}_{2}}\to {\{0,1\}^{k}}$]]></tex-math></alternatives></inline-formula>, where <italic>k</italic> denotes the output length of <inline-formula id="j_info1137_ineq_119"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula>. Finally, the secret key <inline-formula id="j_info1137_ineq_120"><alternatives><mml:math>
<mml:mi mathvariant="italic">SK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SK}$]]></tex-math></alternatives></inline-formula> and public parameters <inline-formula id="j_info1137_ineq_121"><alternatives><mml:math>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{PK}$]]></tex-math></alternatives></inline-formula> of the system are set, respectively, as 
<disp-formula id="j_info1137_eq_003">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">SK</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{SK}=s\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1137_eq_004">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{PK}=({\mathbb{G}_{1}},{\mathbb{G}_{2}},q,\hat{e},P,{P_{\mathit{pub}}},{f_{1}},{f_{2}},{H_{1}},{H_{2}},{H_{3}}).\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1137_li_034">
<label>•</label>
<p><italic>Key extract</italic>: to generate the private key of a user (sender or receiver) <italic>U</italic> with identity <inline-formula id="j_info1137_ineq_122"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>, the PKG selects a random value <inline-formula id="j_info1137_ineq_123"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${l_{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, sets <inline-formula id="j_info1137_ineq_124"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(1)}}={l_{U}}\cdot P$]]></tex-math></alternatives></inline-formula> and computes <inline-formula id="j_info1137_ineq_125"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[${\mathit{DID}_{U}^{(1)}}={l_{U}}+{h_{U}^{(1)}}\cdot s$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_126"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${h_{U}^{(1)}}={f_{1}}({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})$]]></tex-math></alternatives></inline-formula>. Finally, the PKG sets <inline-formula id="j_info1137_ineq_127"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(2)}}={H_{2}}({\mathit{ID}_{U}})$]]></tex-math></alternatives></inline-formula> and computes <inline-formula id="j_info1137_ineq_128"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{DID}_{U}^{(2)}}=s\cdot {\mathit{QID}_{U}^{(2)}}=s\cdot {H_{2}}({\mathit{ID}_{U}})$]]></tex-math></alternatives></inline-formula>. The private key <inline-formula id="j_info1137_ineq_129"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> of the user <italic>U</italic> with identity <inline-formula id="j_info1137_ineq_130"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> is 
<disp-formula id="j_info1137_eq_005">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{SID}_{U}}=\big({\mathit{QID}_{U}^{(1)}},{\mathit{DID}_{U}^{(1)}},{\mathit{DID}_{U}^{(2)}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
Note that <inline-formula id="j_info1137_ineq_131"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(1)}}$]]></tex-math></alternatives></inline-formula> will be a component of each signature signed by the user <italic>U</italic> with identity <inline-formula id="j_info1137_ineq_132"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>, so it can be viewed as a part of the user’s public key.</p>
</list-item>
<list-item id="j_info1137_li_035">
<label>•</label>
<p><italic>Signing</italic>: the sender <italic>A</italic> with identity <inline-formula id="j_info1137_ineq_133"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{A}}$]]></tex-math></alternatives></inline-formula> generates a signature <inline-formula id="j_info1137_ineq_134"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{A}}$]]></tex-math></alternatives></inline-formula> on a message <inline-formula id="j_info1137_ineq_135"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$M\in {\{0,1\}^{n}}$]]></tex-math></alternatives></inline-formula> for the designated receiver <italic>B</italic> with identity <inline-formula id="j_info1137_ineq_136"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{B}}$]]></tex-math></alternatives></inline-formula> by the following steps.</p>
<list>
<list-item id="j_info1137_li_036">
<label>(1)</label>
<p>Choose an ephemeral secret value <inline-formula id="j_info1137_ineq_137"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{A}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_037">
<label>(2)</label>
<p>Compute <inline-formula id="j_info1137_ineq_138"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${R_{A}}={r_{A}}\cdot P$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_038">
<label>(3)</label>
<p>Compute <inline-formula id="j_info1137_ineq_139"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{HID}_{A}}$]]></tex-math></alternatives></inline-formula> = <inline-formula id="j_info1137_ineq_140"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${H_{1}}(M||{\mathit{ID}_{A}},{R_{A}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_141"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${h_{A}^{(2)}}$]]></tex-math></alternatives></inline-formula> = <inline-formula id="j_info1137_ineq_142"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${f_{2}}(M||{\mathit{ID}_{A}},{R_{A}})$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_039">
<label>(4)</label>
<p>Use the private key <inline-formula id="j_info1137_ineq_143"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{A}}$]]></tex-math></alternatives></inline-formula> obtained in <italic>Key extract</italic> to generate <inline-formula id="j_info1137_ineq_144"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${V_{A}}$]]></tex-math></alternatives></inline-formula> by 
<disp-formula id="j_info1137_eq_006">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {V_{A}}=\big({r_{A}}+{\mathit{DID}_{A}^{(1)}}\big)\cdot {\mathit{HID}_{A}}+{h_{A}^{(2)}}\cdot {\mathit{DID}_{A}^{(2)}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1137_li_040">
<label>(5)</label>
<p>Output the signature <inline-formula id="j_info1137_ineq_145"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\sigma _{A}}=({\mathit{QID}_{A}^{(1)}},{R_{A}},{V_{A}})$]]></tex-math></alternatives></inline-formula> to the third party with the message <italic>M</italic>, the identity <inline-formula id="j_info1137_ineq_146"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{A}}$]]></tex-math></alternatives></inline-formula>, the ephemeral secret value <inline-formula id="j_info1137_ineq_147"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{A}}$]]></tex-math></alternatives></inline-formula> and the identity <inline-formula id="j_info1137_ineq_148"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{B}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_041">
<label>•</label>
<p><italic>Encryption</italic>: after receiving the output <inline-formula id="j_info1137_ineq_149"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\sigma _{A}},M,{\mathit{ID}_{A}},{r_{A}},{\mathit{ID}_{B}})$]]></tex-math></alternatives></inline-formula> from the sender <italic>A</italic>, the third party computes <inline-formula id="j_info1137_ineq_150"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⊕</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${W_{B}}={H_{3}}(\hat{e}({r_{A}}\cdot {P_{\mathit{pub}}},{\mathit{QID}_{B}^{(2)}}))\oplus ({V_{A}}||{\mathit{QID}_{A}^{(1)}}||{\mathit{ID}_{A}}||M)$]]></tex-math></alternatives></inline-formula>, sets the ciphertext <inline-formula id="j_info1137_ineq_151"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{CT}_{B}}=({R_{A}},{W_{B}})$]]></tex-math></alternatives></inline-formula> and transmits it to the receiver <italic>B</italic>.</p>
</list-item>
<list-item id="j_info1137_li_042">
<label>•</label>
<p><italic>Decryption</italic>: given the ciphertext <inline-formula id="j_info1137_ineq_152"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{CT}_{B}}=({R_{A}},{W_{B}})$]]></tex-math></alternatives></inline-formula>, the receiver <italic>B</italic> computes <inline-formula id="j_info1137_ineq_153"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${W_{B}}\oplus {H_{3}}(\hat{e}({R_{A}},{\mathit{DID}_{B}^{(2)}}))$]]></tex-math></alternatives></inline-formula> to obtain <inline-formula id="j_info1137_ineq_154"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({V_{A}}||{\mathit{QID}_{A}^{(1)}}||{\mathit{ID}_{A}}||M)$]]></tex-math></alternatives></inline-formula>. Then <italic>B</italic> forwards the signature <inline-formula id="j_info1137_ineq_155"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{A}}$]]></tex-math></alternatives></inline-formula>, the identity <inline-formula id="j_info1137_ineq_156"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{A}}$]]></tex-math></alternatives></inline-formula> and the message <italic>M</italic> to the verification phase.</p>
</list-item>
<list-item id="j_info1137_li_043">
<label>•</label>
<p><italic>Verification</italic>: a signature <inline-formula id="j_info1137_ineq_157"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{A}}$]]></tex-math></alternatives></inline-formula> on the message <italic>M</italic> for the identity <inline-formula id="j_info1137_ineq_158"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{A}}$]]></tex-math></alternatives></inline-formula> is verified by the receiver <italic>B</italic> in the following manners. 
<list>
<list-item id="j_info1137_li_044">
<label>(1)</label>
<p>Compute <inline-formula id="j_info1137_ineq_159"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{HID}_{A}}={H_{1}}(M,{\mathit{ID}_{A}},{R_{A}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_160"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{QID}_{A}^{(2)}}={H_{2}}({\mathit{ID}_{A}})$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_045">
<label>(2)</label>
<p>Compute <inline-formula id="j_info1137_ineq_161"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${h_{A}^{(1)}}={f_{1}}({\mathit{ID}_{A}},{\mathit{QID}_{A}^{(1)}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_162"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${h_{A}^{(2)}}={f_{2}}(M,{\mathit{ID}_{A}},{R_{A}})$]]></tex-math></alternatives></inline-formula>.</p>
<p>
<fig id="j_info1137_fig_003">
<label>Fig. 3</label>
<caption>
<p>The relationships of signing, encryption, decryption and verification phases.</p>
</caption>
<graphic xlink:href="info1137_g003.jpg"/>
</fig>
</p>
</list-item>
<list-item id="j_info1137_li_046">
<label>(3)</label>
<p>Check the equality <inline-formula id="j_info1137_ineq_163"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\hat{e}(P,{V_{A}})=\hat{e}({R_{A}}+{\mathit{QID}_{A}^{(1)}},{\mathit{HID}_{A}})\cdot \hat{e}({P_{\mathit{pub}}},{h_{A}^{(1)}}\cdot {\mathit{HID}_{A}}+{h_{A}^{(2)}}\cdot {\mathit{QID}_{A}^{(2)}})$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list> 
Then the receiver <italic>B</italic> outputs “accept” if the last equality holds, and “reject” otherwise.</p>
</list-item>
</list>
<p>The signing, encryption, decryption and verification procedures are depicted in Fig. <xref rid="j_info1137_fig_003">3</xref>. Meanwhile, we present the validity of the equality in (3) above as follows. Since <inline-formula id="j_info1137_ineq_164"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${V_{A}}=({r_{A}}+{\mathit{DID}_{A}^{(1)}})\cdot {\mathit{HID}_{A}}+{h_{A}^{(2)}}\cdot {\mathit{DID}_{A}^{(2)}}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_165"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[${\mathit{DID}_{A}^{(1)}}={l_{A}}+{h_{A}^{(1)}}\cdot s$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_166"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{DID}_{A}^{(2)}}=s\cdot {\mathit{QID}_{A}^{(2)}}$]]></tex-math></alternatives></inline-formula>, we have 
<disp-formula id="j_info1137_eq_007">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}\hat{e}(P,{V_{A}})=& \hat{e}\big(P,\big({r_{A}}+{\mathit{DID}_{A}^{(1)}}\big)\cdot {\mathit{HID}_{A}}\big)\cdot \hat{e}\big(P,{h_{A}^{(2)}}\cdot {\mathit{DID}_{A}^{(2)}}\big)\\ {} =& \hat{e}({r_{A}}\cdot P+{l_{A}}\cdot P,{\mathit{HID}_{A}})\hat{e}\big(s\cdot P,{h_{A}^{(1)}}\cdot {\mathit{HID}_{A}}\big)\cdot \hat{e}\big(s\cdot P,{h_{A}^{(2)}}\cdot {\mathit{QID}_{A}^{(2)}}\big)\\ {} =& \hat{e}\big({R_{A}}+{\mathit{QID}_{A}^{(1)}},{\mathit{HID}_{A}}\big)\cdot \hat{e}\big({P_{\mathit{pub}}},{h_{A}^{(1)}}\cdot {\mathit{HID}_{A}}+{h_{A}^{(2)}}\cdot {\mathit{QID}_{A}^{(2)}}\big),\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
where the last equality follows directly from <inline-formula id="j_info1137_ineq_167"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${R_{A}}={r_{A}}\cdot P$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_168"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{QID}_{A}^{(1)}}={l_{A}}\cdot P$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_info1137_ineq_169"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${P_{\mathit{pub}}}=s\cdot P$]]></tex-math></alternatives></inline-formula>.</p>
</sec>
<sec id="j_info1137_s_013">
<label>5</label>
<title>Security Analysis</title>
<p>As in Definitions <xref rid="j_info1137_stat_003">3</xref> and <xref rid="j_info1137_stat_004">4</xref>, there are Type I and Type II adversaries in the SIBSC-UF-ACMA and IND-SIBSC-CPA games respectively. In the following, we prove that the proposed SIBSC scheme is secure against Type I and Type II adversaries, respectively, in Theorems <xref rid="j_info1137_stat_006">1</xref> and <xref rid="j_info1137_stat_008">2</xref>. Hence, our SIBSC scheme offers existential unforgeability against adaptive chosen message attacks and is semantically secure against adaptive chosen plaintext attacks. <statement id="j_info1137_stat_006"><label>Theorem 1.</label>
<p><italic>In the random oracle model, the proposed SIBSC scheme is secure against Type I adversary under the CDH assumption. Concretely, suppose that there exists a Type I adversary</italic> <inline-formula id="j_info1137_ineq_170"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>that can break the proposed scheme with a non-negligible advantage ϵ within a running time t. Assume that the hash functions</italic> <inline-formula id="j_info1137_ineq_171"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_172"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_173"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_174"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_info1137_ineq_175"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> <italic>are random oracles, and</italic> <inline-formula id="j_info1137_ineq_176"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>can make</italic> <inline-formula id="j_info1137_ineq_177"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{{f_{i}}}}$]]></tex-math></alternatives></inline-formula> <italic>queries to the random oracles</italic> <inline-formula id="j_info1137_ineq_178"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{i}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1137_ineq_179"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i=1,2)$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_180"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{{H_{i}}}}$]]></tex-math></alternatives></inline-formula> <italic>queries to the random oracles</italic> <inline-formula id="j_info1137_ineq_181"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{i}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1137_ineq_182"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i=1,2,3)$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_183"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{E}}$]]></tex-math></alternatives></inline-formula> <italic>queries to the key extract oracle and</italic> <inline-formula id="j_info1137_ineq_184"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{S}}$]]></tex-math></alternatives></inline-formula> <italic>queries to the signing oracle, respectively. Then, we can construct an algorithm</italic> <inline-formula id="j_info1137_ineq_185"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> <italic>to solve the CDH problem with an advantage</italic> 
<disp-formula id="j_info1137_eq_008">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩾</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>9</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\epsilon ^{\prime }}\geqslant 1/9\]]]></tex-math></alternatives>
</disp-formula> 
<italic>within a running time</italic> 
<disp-formula id="j_info1137_eq_009">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩽</mml:mo>
<mml:mn>23</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {t^{\prime }}\leqslant 23{q_{{f_{2}}}}{q_{{H_{2}}}}qt/\big(\epsilon (q-1)\big).\]]]></tex-math></alternatives>
</disp-formula>
</p></statement><statement id="j_info1137_stat_007"><label>Proof.</label>
<p>We will employ Lemma 1 in Cha and Cheon (<xref ref-type="bibr" rid="j_info1137_ref_008">2003</xref>) to simplify the security analysis of the proposed scheme. This lemma states that if there is an algorithm with a non-negligible advantage <italic>ϵ</italic> within a running time <italic>t</italic> to perform ID attacks to an ID-based signature scheme, then there is another algorithm with a non-negligible advantage <inline-formula id="j_info1137_ineq_186"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩾</mml:mo>
<mml:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\epsilon ^{\prime\prime }}\geqslant \epsilon (1-1/q)/{q_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula> within a running time <inline-formula id="j_info1137_ineq_187"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[${t^{\prime\prime }}\leqslant t$]]></tex-math></alternatives></inline-formula> to perform a fixed ID attack to the ID-based signature scheme. Suppose that <inline-formula id="j_info1137_ineq_188"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is of Type I adversary that could break the proposed scheme with a non-negligible advantage <italic>ϵ</italic> within a running time <italic>t</italic>. By Lemma 1 in Cha and Cheon (<xref ref-type="bibr" rid="j_info1137_ref_008">2003</xref>), there exists another algorithm <inline-formula id="j_info1137_ineq_189"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> with the advantage <inline-formula id="j_info1137_ineq_190"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩾</mml:mo>
<mml:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\epsilon ^{\prime\prime }}\geqslant \epsilon (1-1/q)/{q_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula> within a running time <inline-formula id="j_info1137_ineq_191"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[${t^{\prime\prime }}\leqslant t$]]></tex-math></alternatives></inline-formula> to perform a fixed attack to the same scheme. Without loss of generality, we choose a fixed identity <inline-formula id="j_info1137_ineq_192"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> as our target.</p>
<p>Using the algorithm <inline-formula id="j_info1137_ineq_193"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>, an algorithm <inline-formula id="j_info1137_ineq_194"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> will be constructed below to solve the CDH problem. Assume that the algorithm <inline-formula id="j_info1137_ineq_195"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> is given a group <inline-formula id="j_info1137_ineq_196"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> of order <italic>q</italic> with a generator <italic>P</italic>, and two elements <inline-formula id="j_info1137_ineq_197"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$aP,bP\in {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula>, where <italic>a</italic> and <italic>b</italic> are unknown to <inline-formula id="j_info1137_ineq_198"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula>. In order to use <inline-formula id="j_info1137_ineq_199"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> to compute <inline-formula id="j_info1137_ineq_200"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[$abP$]]></tex-math></alternatives></inline-formula>, the algorithm <inline-formula id="j_info1137_ineq_201"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> plays a challenger in the following game. 
<list>
<list-item id="j_info1137_li_047">
<label>•</label>
<p><bold>Initial:</bold> the challenger <inline-formula id="j_info1137_ineq_202"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> runs the <italic>system setup</italic> algorithm and sets <inline-formula id="j_info1137_ineq_203"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${P_{\mathit{pub}}}=aP$]]></tex-math></alternatives></inline-formula> to create the public parameters <inline-formula id="j_info1137_ineq_204"><alternatives><mml:math>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathit{PK}=({\mathbb{G}_{1}},{\mathbb{G}_{2}},q,\hat{e},P,{P_{\mathit{pub}}},{f_{1}},{f_{2}},{H_{1}},{H_{2}},{H_{3}})$]]></tex-math></alternatives></inline-formula> of the proposed scheme. Here <inline-formula id="j_info1137_ineq_205"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_206"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_207"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_208"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_209"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> are random oracles controlled by <inline-formula id="j_info1137_ineq_210"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula>. The challenger <inline-formula id="j_info1137_ineq_211"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> also answers queries of random oracles issued by <inline-formula id="j_info1137_ineq_212"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> as below.</p>
<list>
<list-item id="j_info1137_li_048">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_213"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_214"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> can issue queries along with <inline-formula id="j_info1137_ineq_215"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_216"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_217"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_218"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_219"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula>. Initially <inline-formula id="j_info1137_ineq_220"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula> is empty. When <inline-formula id="j_info1137_ineq_221"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_222"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula> with a pair <inline-formula id="j_info1137_ineq_223"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_224"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_049">
<label>(1)</label>
<p>If the pair <inline-formula id="j_info1137_ineq_225"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})$]]></tex-math></alternatives></inline-formula> is already in <inline-formula id="j_info1137_ineq_226"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_227"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <inline-formula id="j_info1137_ineq_228"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_229"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_050">
<label>(2)</label>
<p>Otherwise, the challenger <inline-formula id="j_info1137_ineq_230"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a value <inline-formula id="j_info1137_ineq_231"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\alpha _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, adds the tuple <inline-formula id="j_info1137_ineq_232"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_info1137_ineq_233"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>, and responds to <inline-formula id="j_info1137_ineq_234"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_235"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{U}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_051">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_236"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_237"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> can issue queries along with <inline-formula id="j_info1137_ineq_238"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_239"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_240"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_241"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_242"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\beta _{U}})$]]></tex-math></alternatives></inline-formula>. Initially the list <inline-formula id="j_info1137_ineq_243"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula> is empty. When <inline-formula id="j_info1137_ineq_244"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_245"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula> with a tuple <inline-formula id="j_info1137_ineq_246"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_247"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_052">
<label>(1)</label>
<p>If the tuple <inline-formula id="j_info1137_ineq_248"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> is already in <inline-formula id="j_info1137_ineq_249"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_250"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <inline-formula id="j_info1137_ineq_251"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_252"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_053">
<label>(2)</label>
<p>Otherwise, the challenger <inline-formula id="j_info1137_ineq_253"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a value <inline-formula id="j_info1137_ineq_254"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\beta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, adds the tuple <inline-formula id="j_info1137_ineq_255"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\beta _{U}})$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_info1137_ineq_256"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula> and responds to <inline-formula id="j_info1137_ineq_257"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_258"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{U}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_054">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_259"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_260"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> can issue queries along with <inline-formula id="j_info1137_ineq_261"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_262"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_263"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_264"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_265"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\zeta _{U}},{\zeta _{U}}\cdot bP)$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. When <inline-formula id="j_info1137_ineq_266"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_267"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula> with a pair <inline-formula id="j_info1137_ineq_268"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_269"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_055">
<label>(1)</label>
<p>If the tuple <inline-formula id="j_info1137_ineq_270"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> is already in <inline-formula id="j_info1137_ineq_271"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_272"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <inline-formula id="j_info1137_ineq_273"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_274"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_056">
<label>(2)</label>
<p>Otherwise, the challenger <inline-formula id="j_info1137_ineq_275"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a value <inline-formula id="j_info1137_ineq_276"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\zeta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, computes <inline-formula id="j_info1137_ineq_277"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula>, adds the tuple <inline-formula id="j_info1137_ineq_278"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\zeta _{U}},{\zeta _{U}}\cdot bP)$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_info1137_ineq_279"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula>, and responds to <inline-formula id="j_info1137_ineq_280"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_281"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_057">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_282"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_283"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> can issue queries with <inline-formula id="j_info1137_ineq_284"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_285"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_286"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_287"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_288"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(2)}},{\eta _{U}})$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. When <inline-formula id="j_info1137_ineq_289"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_290"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_291"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_292"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds to as follows.</p>
<list>
<list-item id="j_info1137_li_058">
<label>(1)</label>
<p>If <inline-formula id="j_info1137_ineq_293"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≠</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}\ne {\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_294"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> selects a value <inline-formula id="j_info1137_ineq_295"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\eta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, returns <inline-formula id="j_info1137_ineq_296"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(2)}}={H_{2}}({\mathit{ID}_{U}})={\eta _{U}}\cdot P$]]></tex-math></alternatives></inline-formula> and stores <inline-formula id="j_info1137_ineq_297"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(2)}},{\eta _{U}})$]]></tex-math></alternatives></inline-formula> in the list <inline-formula id="j_info1137_ineq_298"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_059">
<label>(2)</label>
<p>If <inline-formula id="j_info1137_ineq_299"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}={\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_300"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> selects a value <inline-formula id="j_info1137_ineq_301"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\eta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, returns <inline-formula id="j_info1137_ineq_302"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(2)}}={H_{2}}({\mathit{ID}_{U}})={\eta _{U}}\cdot P-bP$]]></tex-math></alternatives></inline-formula> and stores <inline-formula id="j_info1137_ineq_303"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(2)}},{\eta _{U}})$]]></tex-math></alternatives></inline-formula> in the list <inline-formula id="j_info1137_ineq_304"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_060">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_305"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_306"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> can issue queries along with <italic>S</italic> to the random oracle <inline-formula id="j_info1137_ineq_307"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, the challenger <inline-formula id="j_info1137_ineq_308"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_309"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula> containing pairs of the form <inline-formula id="j_info1137_ineq_310"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(S,T)$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. When <inline-formula id="j_info1137_ineq_311"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_312"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> with <italic>S</italic>, <inline-formula id="j_info1137_ineq_313"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_061">
<label>(1)</label>
<p>If <italic>S</italic> already appears in the list <inline-formula id="j_info1137_ineq_314"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_315"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <italic>T</italic> to <inline-formula id="j_info1137_ineq_316"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_062">
<label>(2)</label>
<p>Otherwise, <inline-formula id="j_info1137_ineq_317"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a string <inline-formula id="j_info1137_ineq_318"><alternatives><mml:math>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$T\in {\{0,1\}^{k}}$]]></tex-math></alternatives></inline-formula>, adds the tuples <inline-formula id="j_info1137_ineq_319"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(S,T)$]]></tex-math></alternatives></inline-formula> to the list <inline-formula id="j_info1137_ineq_320"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula>, and responds to <inline-formula id="j_info1137_ineq_321"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> with <italic>T</italic>.</p>
</list-item>
</list>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_063">
<label>•</label>
<p><bold>Phase 1:</bold> the adversary <inline-formula id="j_info1137_ineq_322"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> may make a number of different queries to the challenger <inline-formula id="j_info1137_ineq_323"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> in an adaptive manner as follows:</p>
<list>
<list-item id="j_info1137_li_064">
<label>–</label>
<p><italic>Key extract queries</italic>: to respond to these queries, <inline-formula id="j_info1137_ineq_324"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_325"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_326"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{SID}_{U}})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_327"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}=({\mathit{QID}_{U}^{(1)}},{\mathit{DID}_{U}^{(1)}},{\mathit{DID}_{U}^{(2)}})$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. Upon receiving the query along with <inline-formula id="j_info1137_ineq_328"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>, if <inline-formula id="j_info1137_ineq_329"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> already appears in the list <inline-formula id="j_info1137_ineq_330"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_331"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the associated <inline-formula id="j_info1137_ineq_332"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_333"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1137_ineq_334"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> does not appear in <inline-formula id="j_info1137_ineq_335"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula>, we discuss two cases as follows. If <inline-formula id="j_info1137_ineq_336"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}={\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_337"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> returns nothing because it is forbidden to query the fixed identity <inline-formula id="j_info1137_ineq_338"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1137_ineq_339"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≠</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}\ne {\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_340"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> first accesses to the corresponding tuple <inline-formula id="j_info1137_ineq_341"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(2)}},{\eta _{U}})$]]></tex-math></alternatives></inline-formula> in the list <inline-formula id="j_info1137_ineq_342"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula>. Then, <inline-formula id="j_info1137_ineq_343"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> chooses two random values <inline-formula id="j_info1137_ineq_344"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\alpha _{U}},v\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula> and sets <inline-formula id="j_info1137_ineq_345"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}=(vP-{\alpha _{U}}{P_{\mathit{pub}}},v,{\eta _{U}}{P_{\mathit{pub}}})$]]></tex-math></alternatives></inline-formula>. However, if the tuple <inline-formula id="j_info1137_ineq_346"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},vP-{\alpha _{U}}{P_{\mathit{pub}}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula> already appears in the list <inline-formula id="j_info1137_ineq_347"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_348"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> resets the <inline-formula id="j_info1137_ineq_349"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> by choosing another two random values. Immediately, the challenger <inline-formula id="j_info1137_ineq_350"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> returns <inline-formula id="j_info1137_ineq_351"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula>, and stores <inline-formula id="j_info1137_ineq_352"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},vP-{\alpha _{U}}{P_{\mathit{pub}}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_353"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},vP-{\alpha _{U}}{P_{\mathit{pub}}},v,{\eta _{U}}{P_{\mathit{pub}}})$]]></tex-math></alternatives></inline-formula> in the lists <inline-formula id="j_info1137_ineq_354"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_355"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula>, respectively.</p>
</list-item>
<list-item id="j_info1137_li_065">
<label>–</label>
<p><italic>Signing queries</italic>: considering such a query for a message <italic>M</italic> and an identity <inline-formula id="j_info1137_ineq_356"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_357"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> will perform either one of the following two cases.</p>
<p><bold>Case 1.</bold> If <inline-formula id="j_info1137_ineq_358"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">≠</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}\ne {\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_359"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> first accesses to the tuple <inline-formula id="j_info1137_ineq_360"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}},{\mathit{DID}_{U}^{(1)}},{\mathit{DID}_{U}^{(2)}})$]]></tex-math></alternatives></inline-formula> in the list <inline-formula id="j_info1137_ineq_361"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula>. Then, <inline-formula id="j_info1137_ineq_362"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> chooses a random number <inline-formula id="j_info1137_ineq_363"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula> and computes <inline-formula id="j_info1137_ineq_364"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${R_{U}}={r_{U}}\cdot P$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_365"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${V_{U}}=({r_{U}}+{\mathit{DID}_{U}^{(1)}})\cdot {\mathit{HID}_{U}}+{h_{U}^{(2)}}\cdot {\mathit{DID}_{U}^{(2)}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_366"><alternatives><mml:math>
<mml:mi mathvariant="italic">HID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{HID}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_367"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${h_{U}^{(2)}}$]]></tex-math></alternatives></inline-formula> are obtained by querying <inline-formula id="j_info1137_ineq_368"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${H_{1}}(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_369"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${f_{2}}(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula>, respectively. The signature on the message <italic>M</italic> is <inline-formula id="j_info1137_ineq_370"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\sigma _{U}}=({\mathit{QID}_{U}^{(1)}},{R_{U}},{V_{U}})$]]></tex-math></alternatives></inline-formula>. It is evident that <inline-formula id="j_info1137_ineq_371"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{\sigma _{U}})$]]></tex-math></alternatives></inline-formula> is valid because it is generated using the real private key <inline-formula id="j_info1137_ineq_372"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}=({\mathit{QID}_{U}^{(1)}},{\mathit{DID}_{U}^{(1)}},{\mathit{DID}_{U}^{(2)}})$]]></tex-math></alternatives></inline-formula>. The challenger <inline-formula id="j_info1137_ineq_373"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> then returns <inline-formula id="j_info1137_ineq_374"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\sigma _{U}}$]]></tex-math></alternatives></inline-formula> and the ephemeral secret value <inline-formula id="j_info1137_ineq_375"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_376"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>.</p>
<p><bold>Case 2.</bold> If <inline-formula id="j_info1137_ineq_377"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}={\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_378"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> chooses two values <inline-formula id="j_info1137_ineq_379"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${l_{U}},{\alpha _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, sets <inline-formula id="j_info1137_ineq_380"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(1)}}={l_{U}}\cdot P$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_381"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${h_{U}^{(1)}}={f_{1}}({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})={\alpha _{U}}$]]></tex-math></alternatives></inline-formula> and stores in the list <inline-formula id="j_info1137_ineq_382"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>. Immediately, <inline-formula id="j_info1137_ineq_383"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> accesses to the corresponding tuple <inline-formula id="j_info1137_ineq_384"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(2)}},{\eta _{U}})$]]></tex-math></alternatives></inline-formula> in the list <inline-formula id="j_info1137_ineq_385"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula>, and selects two random values <inline-formula id="j_info1137_ineq_386"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${x_{U}},{\zeta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula> to compute <inline-formula id="j_info1137_ineq_387"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${R_{U}}={\zeta _{U}^{-1}}\cdot {x_{U}}\cdot P-{l_{U}}\cdot P=({\zeta _{U}^{-1}}\cdot {x_{U}}-{l_{U}})\cdot P$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_388"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${V_{U}}={x_{U}}\cdot bP+{\alpha _{U}}\cdot {\zeta _{U}}\cdot {\eta _{U}}\cdot {P_{\mathit{pub}}}$]]></tex-math></alternatives></inline-formula>. It is obvious that the ephemeral secret key <inline-formula id="j_info1137_ineq_389"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{U}}$]]></tex-math></alternatives></inline-formula> = <inline-formula id="j_info1137_ineq_390"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\zeta _{U}^{-1}}\cdot {x_{U}}-{l_{U}}$]]></tex-math></alternatives></inline-formula>. The challenger <inline-formula id="j_info1137_ineq_391"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> then attaches <inline-formula id="j_info1137_ineq_392"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{HID}_{U}}={H_{1}}(M,{\mathit{ID}_{U}},{R_{U}})={\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_393"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${h_{U}^{(2)}}={f_{2}}(M,{\mathit{ID}_{U}},{R_{U}})={\alpha _{U}}\cdot {\zeta _{U}}$]]></tex-math></alternatives></inline-formula> to their associated tuples in the lists <inline-formula id="j_info1137_ineq_394"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_395"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula>, respectively. If neither <inline-formula id="j_info1137_ineq_396"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${H_{1}}(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> nor <inline-formula id="j_info1137_ineq_397"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${f_{2}}(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> is previously stored in the lists <inline-formula id="j_info1137_ineq_398"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_399"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula>, respectively, then <inline-formula id="j_info1137_ineq_400"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> returns <inline-formula id="j_info1137_ineq_401"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{U}}$]]></tex-math></alternatives></inline-formula> and the ephemeral secret value <inline-formula id="j_info1137_ineq_402"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_403"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>. Otherwise, <inline-formula id="j_info1137_ineq_404"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> reselects two random values <inline-formula id="j_info1137_ineq_405"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${x_{U}},{\zeta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula> and repeats the procedure above.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_066">
<label>•</label>
<p><bold>Forge:</bold> assume that the algorithm <inline-formula id="j_info1137_ineq_406"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> generates a valid signature tuple <inline-formula id="j_info1137_ineq_407"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({M^{\ast }},{\mathit{ID}_{U}^{\ast }},{\sigma _{U}^{\ast }})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_408"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\sigma _{U}^{\ast }}=({{\mathit{QID}_{U}^{\ast }}^{(1)}},{R_{U}^{\ast }},{V_{U}^{\ast }})$]]></tex-math></alternatives></inline-formula>, with non-negligible probability <inline-formula id="j_info1137_ineq_409"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\epsilon ^{\prime\prime }}$]]></tex-math></alternatives></inline-formula>. Following the Forking Lemma in Pointcheval and Stern (<xref ref-type="bibr" rid="j_info1137_ref_026">1996</xref>, <xref ref-type="bibr" rid="j_info1137_ref_027">2000</xref>), <inline-formula id="j_info1137_ineq_410"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> can output another valid signature tuple <inline-formula id="j_info1137_ineq_411"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({M^{\ast }},{\mathit{ID}_{U}^{\ast }},{\sigma ^{\prime }_{U}})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_412"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\sigma ^{\prime }_{U}}=({{\mathit{QID}_{U}^{\ast }}^{(1)}},{R_{U}^{\ast }},{V^{\prime }_{U}})$]]></tex-math></alternatives></inline-formula>, with the probability at least <inline-formula id="j_info1137_ineq_413"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[${\epsilon ^{\prime\prime }}/2$]]></tex-math></alternatives></inline-formula>. Hence, 
<disp-formula id="j_info1137_eq_010">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \hat{e}(P,{V_{U}^{\ast }})=\hat{e}\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }},{\mathit{HID}_{U}^{\ast }}\big)\cdot \hat{e}\big({P_{\mathit{pub}}},{{h_{U}^{\ast }}^{(1)}}{\mathit{HID}_{U}^{\ast }}+{{h_{U}^{\ast }}^{(2)}}{{\mathit{QID}_{U}^{\ast }}^{(2)}}\big)\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1137_eq_011">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \hat{e}(P,{V^{\prime }_{U}})=\hat{e}\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }},{\mathit{HID}_{U}^{\ast }}\big)\cdot \hat{e}\big({P_{\mathit{pub}}},{{h_{U}^{\ast }}^{(1)}}{\mathit{HID}_{U}^{\ast }}+{{h^{\prime }_{U}}^{(2)}}{{\mathit{QID}_{U}^{\ast }}^{(2)}}\big),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1137_ineq_414"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${{h_{U}^{\ast }}^{(2)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_415"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${{h^{\prime }_{U}}^{(2)}}$]]></tex-math></alternatives></inline-formula> are different hash values from hash queries. Since <inline-formula id="j_info1137_ineq_416"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${P_{\mathit{pub}}}=aP$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_417"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${{\mathit{QID}_{U}^{\ast }}^{(2)}}={\eta _{U}}\cdot P-bP$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_418"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">HID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{HID}_{U}^{\ast }}={\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula> , we have 
<disp-formula id="j_info1137_eq_012">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}\hat{e}(P,{V_{U}^{\ast }})=& \hat{e}\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }},{\zeta _{U}}\cdot bP\big)\\ {} & \cdot \hat{e}\big(aP,{{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}\cdot bP+{{h_{U}^{\ast }}^{(2)}}({\eta _{U}}\cdot P-bP)\big)\\ {} =& \hat{e}\big(P,{\zeta _{U}}b\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }}\big)\\ {} & +a\big({{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}\cdot bP+{{h_{U}^{\ast }}^{(2)}}({\eta _{U}}\cdot P-bP)\big)\big)\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1137_eq_013">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mo>·</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}\hat{e}(P,{V^{\prime }_{U}})=& \hat{e}\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }},{\zeta _{U}}\cdot bP\big)\\ {} & \cdot \hat{e}\big(aP,{{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}\cdot bP+{{h^{\prime }_{U}}^{(2)}}({\eta _{U}}\cdot P-bP)\big)\\ {} =& \hat{e}\big(P,{\zeta _{U}}b\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }}\big)\\ {} & +a\big({{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}\cdot bP+{{h^{\prime }_{U}}^{(2)}}({\eta _{U}}\cdot P-bP)\big)\big).\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
Therefore, we have 
<disp-formula id="j_info1137_eq_014">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {V_{U}^{\ast }}={\zeta _{U}}b\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }}\big)+a\big({{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}\cdot bP+{{h_{U}^{\ast }}^{(2)}}({\eta _{U}}\cdot P-bP)\big)\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1137_eq_015">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {V^{\prime }_{U}}={\zeta _{U}}b\big({{\mathit{QID}_{U}^{\ast }}^{(1)}}+{R_{U}^{\ast }}\big)+a\big({{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}\cdot bP+{{h^{\prime }_{U}}^{(2)}}({\eta _{U}}\cdot P-bP)\big).\]]]></tex-math></alternatives>
</disp-formula> 
Thus, we arrive at 
<disp-formula id="j_info1137_eq_016">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ abP=\frac{({V_{U}^{\ast }}-{V^{\prime }_{U}}+({{h_{U}^{\ast }}^{(2)}}{\eta _{U}}-{{h^{\prime }_{U}}^{(2)}}{\eta _{U}})\cdot {P_{\mathit{pub}}})}{({{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}-{{h_{U}^{\ast }}^{(2)}}-{{h_{U}^{\ast }}^{(1)}}{\zeta _{U}}+{{h^{\prime }_{U}}^{(2)}})}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list>
</p>
<p>Remember that, at the beginning of the proof, we assume <inline-formula id="j_info1137_ineq_419"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is of Type I adversary that can break the proposed scheme with a non-negligible advantage <italic>ϵ</italic> within a running time <italic>t</italic>. And then by Lemma 1 in Cha and Cheon (<xref ref-type="bibr" rid="j_info1137_ref_008">2003</xref>), there exists another algorithm <inline-formula id="j_info1137_ineq_420"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> with the advantage <inline-formula id="j_info1137_ineq_421"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩾</mml:mo>
<mml:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\epsilon ^{\prime\prime }}\geqslant \epsilon (1-1/q)/{q_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula> within a running time <inline-formula id="j_info1137_ineq_422"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>″</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩽</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[${t^{\prime\prime }}\leqslant t$]]></tex-math></alternatives></inline-formula> to perform a fixed ID attack to the ID-based signature scheme. Then, by the same probability analysis utilized in Pointcheval and Stern (<xref ref-type="bibr" rid="j_info1137_ref_026">1996</xref>, <xref ref-type="bibr" rid="j_info1137_ref_027">2000</xref>), we can conclude that the challenger <inline-formula id="j_info1137_ineq_423"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> is able to solve the CDH problem with the probability <inline-formula id="j_info1137_ineq_424"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩾</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>9</mml:mn></mml:math><tex-math><![CDATA[${\epsilon ^{\prime }}\geqslant 1/9$]]></tex-math></alternatives></inline-formula> and within the running time <inline-formula id="j_info1137_ineq_425"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩽</mml:mo>
<mml:mn>23</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${t^{\prime }}\leqslant 23{q_{{f_{2}}}}{q_{{H_{2}}}}qt/(\epsilon (q-1))$]]></tex-math></alternatives></inline-formula>.  □</p></statement><statement id="j_info1137_stat_008"><label>Theorem 2.</label>
<p><italic>In the random oracle model, the proposed SIBSC scheme is secure against Type II adversary under the BDH assumption. Concretely, suppose that there exists a Type II adversary</italic> <inline-formula id="j_info1137_ineq_426"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>that can break the proposed scheme with a non-negligible advantage ϵ. Assume that the hash functions</italic> <inline-formula id="j_info1137_ineq_427"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_428"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_429"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_430"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_info1137_ineq_431"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> <italic>are random oracles, and</italic> <inline-formula id="j_info1137_ineq_432"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>can make</italic> <inline-formula id="j_info1137_ineq_433"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{{f_{i}}}}$]]></tex-math></alternatives></inline-formula> <italic>queries to the random oracles</italic> <inline-formula id="j_info1137_ineq_434"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{i}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1137_ineq_435"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i=1,2)$]]></tex-math></alternatives></inline-formula><italic>,</italic> <inline-formula id="j_info1137_ineq_436"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{{H_{i}}}}$]]></tex-math></alternatives></inline-formula> <italic>queries to the random oracles</italic> <inline-formula id="j_info1137_ineq_437"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{i}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1137_ineq_438"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(i=1,2,3)$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_info1137_ineq_439"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{E}}$]]></tex-math></alternatives></inline-formula> <italic>queries to the key extract oracle, respectively. Then, we can construct an algorithm</italic> <inline-formula id="j_info1137_ineq_440"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> <italic>to solve the BDH problem with an advantage</italic> <inline-formula id="j_info1137_ineq_441"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩾</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[${\epsilon ^{\prime }}\geqslant \frac{2\epsilon }{e(1+{q_{E}}){q_{{H_{3}}}}}$]]></tex-math></alternatives></inline-formula><italic>, where e is Euler’s constant, the base of the natural logarithm.</italic></p></statement><statement id="j_info1137_stat_009"><label>Proof.</label>
<p>Assume that the algorithm <inline-formula id="j_info1137_ineq_442"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> is given a group <inline-formula id="j_info1137_ineq_443"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> of order <italic>q</italic> with a generator <italic>P</italic>, and three elements <inline-formula id="j_info1137_ineq_444"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$aP,bP,cP\in {\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula>, where <italic>a</italic>, <italic>b</italic> and <italic>c</italic> are unknown to <inline-formula id="j_info1137_ineq_445"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula>. In order to compute <inline-formula id="j_info1137_ineq_446"><alternatives><mml:math>
<mml:mi mathvariant="italic">D</mml:mi>
<mml:mo>=</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$D=\hat{e}{(P,P)^{abc}}$]]></tex-math></alternatives></inline-formula>, the algorithm <inline-formula id="j_info1137_ineq_447"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> plays a challenger of the adversary <inline-formula id="j_info1137_ineq_448"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> in the following game. 
<list>
<list-item id="j_info1137_li_067">
<label>•</label>
<p><bold>Initial:</bold> the challenger <inline-formula id="j_info1137_ineq_449"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> runs the <italic>system setup</italic> algorithm and sets <inline-formula id="j_info1137_ineq_450"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${P_{\mathit{pub}}}=aP$]]></tex-math></alternatives></inline-formula> to create the public parameters <inline-formula id="j_info1137_ineq_451"><alternatives><mml:math>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathit{PK}=({\mathbb{G}_{1}},{\mathbb{G}_{2}},q,\hat{e},P,{P_{\mathit{pub}}},{f_{1}},{f_{2}},{H_{1}},{H_{2}},{H_{3}})$]]></tex-math></alternatives></inline-formula> of the proposed scheme. Here <inline-formula id="j_info1137_ineq_452"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_453"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_454"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_455"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_456"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> are random oracles controlled by <inline-formula id="j_info1137_ineq_457"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula>. The challenger <inline-formula id="j_info1137_ineq_458"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> also answers queries of random oracles issued by <inline-formula id="j_info1137_ineq_459"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> as below.</p>
<list>
<list-item id="j_info1137_li_068">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_460"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_461"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can issue queries along with <inline-formula id="j_info1137_ineq_462"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_463"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_464"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list of tuples denoted by <inline-formula id="j_info1137_ineq_465"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>, in which each tuple is of the form <inline-formula id="j_info1137_ineq_466"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula>. Initially <inline-formula id="j_info1137_ineq_467"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula> is empty. When <inline-formula id="j_info1137_ineq_468"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_469"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{1}}$]]></tex-math></alternatives></inline-formula> with a pair <inline-formula id="j_info1137_ineq_470"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_471"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_069">
<label>(1)</label>
<p>If the pair <inline-formula id="j_info1137_ineq_472"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}})$]]></tex-math></alternatives></inline-formula> is already in the list <inline-formula id="j_info1137_ineq_473"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_474"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <inline-formula id="j_info1137_ineq_475"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_476"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_070">
<label>(2)</label>
<p>Otherwise, the challenger <inline-formula id="j_info1137_ineq_477"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a value <inline-formula id="j_info1137_ineq_478"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\alpha _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, adds the tuple <inline-formula id="j_info1137_ineq_479"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(1)}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_info1137_ineq_480"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>, and responds to <inline-formula id="j_info1137_ineq_481"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_482"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{U}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_071">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_483"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_484"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can issue queries along with <inline-formula id="j_info1137_ineq_485"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_486"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_487"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_488"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_489"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\beta _{U}})$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. When <inline-formula id="j_info1137_ineq_490"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_491"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${f_{2}}$]]></tex-math></alternatives></inline-formula> with a tuple <inline-formula id="j_info1137_ineq_492"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_493"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_072">
<label>(1)</label>
<p>If the tuple <inline-formula id="j_info1137_ineq_494"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> is already in <inline-formula id="j_info1137_ineq_495"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_496"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <inline-formula id="j_info1137_ineq_497"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_498"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_073">
<label>(2)</label>
<p>Otherwise, the challenger <inline-formula id="j_info1137_ineq_499"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a value <inline-formula id="j_info1137_ineq_500"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\beta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, adds the tuple <inline-formula id="j_info1137_ineq_501"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\beta _{U}})$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_info1137_ineq_502"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{2}}}}$]]></tex-math></alternatives></inline-formula> and responds to <inline-formula id="j_info1137_ineq_503"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_504"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{U}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_074">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_505"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_506"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can issue queries along with <inline-formula id="j_info1137_ineq_507"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_508"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_509"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_510"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_511"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\zeta _{U}},{\zeta _{U}}\cdot bP)$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. When <inline-formula id="j_info1137_ineq_512"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_513"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{1}}$]]></tex-math></alternatives></inline-formula> with a pair <inline-formula id="j_info1137_ineq_514"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_515"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_075">
<label>(1)</label>
<p>If the tuple <inline-formula id="j_info1137_ineq_516"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}})$]]></tex-math></alternatives></inline-formula> already appears in <inline-formula id="j_info1137_ineq_517"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_518"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <inline-formula id="j_info1137_ineq_519"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_520"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_076">
<label>(2)</label>
<p>Otherwise, the challenger <inline-formula id="j_info1137_ineq_521"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a value <inline-formula id="j_info1137_ineq_522"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\zeta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>, computes <inline-formula id="j_info1137_ineq_523"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula> and adds the tuple <inline-formula id="j_info1137_ineq_524"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(M,{\mathit{ID}_{U}},{R_{U}},{\zeta _{U}},{\zeta _{U}}\cdot bP)$]]></tex-math></alternatives></inline-formula> to the list <inline-formula id="j_info1137_ineq_525"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{1}}}}$]]></tex-math></alternatives></inline-formula>. It responds to <inline-formula id="j_info1137_ineq_526"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_527"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ζ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\zeta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_077">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_528"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_529"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can issue queries along with <inline-formula id="j_info1137_ineq_530"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> to the random oracle <inline-formula id="j_info1137_ineq_531"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_532"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_533"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_534"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext mathvariant="italic">coin</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(2)}},{\eta _{U}},\textit{coin})$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. When <inline-formula id="j_info1137_ineq_535"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_536"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{2}}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_537"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_538"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_078">
<label>(1)</label>
<p>If <inline-formula id="j_info1137_ineq_539"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> already appears in the list <inline-formula id="j_info1137_ineq_540"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_541"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <inline-formula id="j_info1137_ineq_542"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(2)}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_543"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_079">
<label>(2)</label>
<p>Otherwise, the challenger <inline-formula id="j_info1137_ineq_544"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> generates a <inline-formula id="j_info1137_ineq_545"><alternatives><mml:math>
<mml:mi mathvariant="italic">coin</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathit{coin}\in \{0,1\}$]]></tex-math></alternatives></inline-formula> with <inline-formula id="j_info1137_ineq_546"><alternatives><mml:math>
<mml:mi mathvariant="normal">Pr</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">coin</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">δ</mml:mi></mml:math><tex-math><![CDATA[$\mathrm{Pr}[\mathrm{coin}=0]=\delta $]]></tex-math></alternatives></inline-formula> for some <italic>δ</italic> that will be determined later. Then <inline-formula id="j_info1137_ineq_547"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> selects a value <inline-formula id="j_info1137_ineq_548"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\eta _{U}}\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1137_ineq_549"><alternatives><mml:math>
<mml:mi mathvariant="italic">coin</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\mathit{coin}=0$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_550"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> computes <inline-formula id="j_info1137_ineq_551"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(2)}}={H_{2}}({\mathit{ID}_{U}})={\eta _{U}}\cdot P$]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1137_ineq_552"><alternatives><mml:math>
<mml:mi mathvariant="italic">coin</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\mathit{coin}=1$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_553"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> computes <inline-formula id="j_info1137_ineq_554"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(2)}}={H_{2}}({\mathit{ID}_{U}})={\eta _{U}}\cdot bP$]]></tex-math></alternatives></inline-formula>. Finally, <inline-formula id="j_info1137_ineq_555"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> returns <inline-formula id="j_info1137_ineq_556"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{QID}_{U}^{(2)}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_557"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_080">
<label>–</label>
<p><inline-formula id="j_info1137_ineq_558"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> <italic>queries</italic>: at any time, <inline-formula id="j_info1137_ineq_559"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can issue queries along with <italic>S</italic> to the random oracle <inline-formula id="j_info1137_ineq_560"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula>. To respond to these queries, <inline-formula id="j_info1137_ineq_561"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_562"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula> containing pairs of the form <inline-formula id="j_info1137_ineq_563"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(S,T)$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. When <inline-formula id="j_info1137_ineq_564"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> queries the oracle <inline-formula id="j_info1137_ineq_565"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${H_{3}}$]]></tex-math></alternatives></inline-formula> with <italic>S</italic>, <inline-formula id="j_info1137_ineq_566"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds as follows.</p>
<list>
<list-item id="j_info1137_li_081">
<label>(1)</label>
<p>If <italic>S</italic> already appears in the list <inline-formula id="j_info1137_ineq_567"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_568"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the corresponding <italic>T</italic> to <inline-formula id="j_info1137_ineq_569"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_082">
<label>(2)</label>
<p>Otherwise, <inline-formula id="j_info1137_ineq_570"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly selects a string <inline-formula id="j_info1137_ineq_571"><alternatives><mml:math>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$T\in {\{0,1\}^{k}}$]]></tex-math></alternatives></inline-formula>, adds the tuples <inline-formula id="j_info1137_ineq_572"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(S,T)$]]></tex-math></alternatives></inline-formula> to the list <inline-formula id="j_info1137_ineq_573"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula>, and responds to <inline-formula id="j_info1137_ineq_574"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> with <italic>T</italic>.</p>
</list-item>
</list>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_083">
<label>•</label>
<p><bold>Phase 1:</bold> the adversary <inline-formula id="j_info1137_ineq_575"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> may make a number of different queries to the challenger <inline-formula id="j_info1137_ineq_576"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> in an adaptive manner as follows:</p>
<list>
<list-item id="j_info1137_li_084">
<label>–</label>
<p><italic>Key extract queries</italic>: to respond to these queries, <inline-formula id="j_info1137_ineq_577"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> maintains a list <inline-formula id="j_info1137_ineq_578"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula> containing tuples of the form <inline-formula id="j_info1137_ineq_579"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{SID}_{U}})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_580"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}=({\mathit{QID}_{U}^{(1)}},{\mathit{DID}_{U}^{(1)}},{\mathit{DID}_{U}^{(2)}})$]]></tex-math></alternatives></inline-formula>. Initially the list is empty. Upon receiving the query along with <inline-formula id="j_info1137_ineq_581"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula>, if <inline-formula id="j_info1137_ineq_582"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}}$]]></tex-math></alternatives></inline-formula> already appears in the list <inline-formula id="j_info1137_ineq_583"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula>, the challenger <inline-formula id="j_info1137_ineq_584"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds with the associated <inline-formula id="j_info1137_ineq_585"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1137_ineq_586"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>. If not, the challenger <inline-formula id="j_info1137_ineq_587"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> first accesses to the corresponding tuple <inline-formula id="j_info1137_ineq_588"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">QID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">coin</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},{\mathit{QID}_{U}^{(2)}},{\eta _{U}},\mathit{coin})$]]></tex-math></alternatives></inline-formula> in the list <inline-formula id="j_info1137_ineq_589"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{2}}}}$]]></tex-math></alternatives></inline-formula>. In case <inline-formula id="j_info1137_ineq_590"><alternatives><mml:math>
<mml:mi mathvariant="italic">coin</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\mathit{coin}=0$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_591"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> chooses two random values <inline-formula id="j_info1137_ineq_592"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\alpha _{U}},v\in {\mathbb{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula> and sets <inline-formula id="j_info1137_ineq_593"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}=(vP-{\alpha _{U}}{P_{\mathit{pub}}},v,{\eta _{U}}{P_{\mathit{pub}}})$]]></tex-math></alternatives></inline-formula>. However, if the tuple <inline-formula id="j_info1137_ineq_594"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},vP-{\alpha _{U}}{P_{\mathit{pub}}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula> already appears in the list <inline-formula id="j_info1137_ineq_595"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_596"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> resets the <inline-formula id="j_info1137_ineq_597"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> by choosing another two random values. Immediately, the challenger <inline-formula id="j_info1137_ineq_598"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> returns <inline-formula id="j_info1137_ineq_599"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SID}_{U}}$]]></tex-math></alternatives></inline-formula> and stores <inline-formula id="j_info1137_ineq_600"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},vP-{\alpha _{U}}{P_{\mathit{pub}}},{\alpha _{U}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_601"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pub</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}_{U}},vP-{\alpha _{U}}{P_{\mathit{pub}}},v,{\eta _{U}}{P_{\mathit{pub}}})$]]></tex-math></alternatives></inline-formula> in the lists <inline-formula id="j_info1137_ineq_602"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{f_{1}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_603"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{K}}$]]></tex-math></alternatives></inline-formula>, respectively. If <inline-formula id="j_info1137_ineq_604"><alternatives><mml:math>
<mml:mi mathvariant="italic">coin</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\mathit{coin}=1$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_605"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> reports failure and terminates.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1137_li_085">
<label>•</label>
<p><bold>Challenge:</bold> the adversary <inline-formula id="j_info1137_ineq_606"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> outputs <inline-formula id="j_info1137_ineq_607"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({M_{0}},{M_{1}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_608"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> to the challenger <inline-formula id="j_info1137_ineq_609"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula>. Upon receiving them, <inline-formula id="j_info1137_ineq_610"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> picks a random string <inline-formula id="j_info1137_ineq_611"><alternatives><mml:math>
<mml:mi mathvariant="italic">Z</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$Z\in {\{0,1\}^{k}}$]]></tex-math></alternatives></inline-formula> and defines <inline-formula id="j_info1137_ineq_612"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">Z</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{CT}_{U}^{\ast }}=(cP,Z)$]]></tex-math></alternatives></inline-formula>. The challenger <inline-formula id="j_info1137_ineq_613"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> then returns <inline-formula id="j_info1137_ineq_614"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{CT}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> to the adversary <inline-formula id="j_info1137_ineq_615"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>. Observe that the decryption of <inline-formula id="j_info1137_ineq_616"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">CT</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{CT}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> is indeed <inline-formula id="j_info1137_ineq_617"><alternatives><mml:math>
<mml:mi mathvariant="italic">Z</mml:mi>
<mml:mo>⊕</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">DID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$Z\oplus {H_{3}}(\hat{e}(cP,{{\mathit{DID}_{U}^{\ast }}^{(2)}}))$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_086">
<label>•</label>
<p><bold>Phase 2:</bold> the challenger <inline-formula id="j_info1137_ineq_618"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> responds to key extract queries as in Phase 1. Here <inline-formula id="j_info1137_ineq_619"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{ID}_{U}^{\ast }}$]]></tex-math></alternatives></inline-formula> is forbidden to appear in the key extract queries.</p>
</list-item>
<list-item id="j_info1137_li_087">
<label>•</label>
<p><bold>Guess:</bold> the adversary <inline-formula id="j_info1137_ineq_620"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> outputs the guess <inline-formula id="j_info1137_ineq_621"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="fraktur">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathfrak{b}^{\prime }}\in \{0,1\}$]]></tex-math></alternatives></inline-formula>. Immediately, the challenger <inline-formula id="j_info1137_ineq_622"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> randomly picks a pair <inline-formula id="j_info1137_ineq_623"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(S,T)$]]></tex-math></alternatives></inline-formula> in the list <inline-formula id="j_info1137_ineq_624"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">L</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${L_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula> and outputs <inline-formula id="j_info1137_ineq_625"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">η</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${(S)^{{\eta _{U}^{-1}}}}$]]></tex-math></alternatives></inline-formula> as the solution to the given instance of the BDH problem.</p>
</list-item>
</list>
</p>
<p>In the following, we discuss the probability that the challenger <inline-formula id="j_info1137_ineq_626"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> does not abort. 
<list>
<list-item id="j_info1137_li_088">
<label>(1)</label>
<p>In <bold>Phase 1</bold> or <bold>2</bold>: suppose that the adversary <inline-formula id="j_info1137_ineq_627"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> makes a total of <inline-formula id="j_info1137_ineq_628"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${q_{E}}$]]></tex-math></alternatives></inline-formula> key extract queries. Then the probability that the challenger <inline-formula id="j_info1137_ineq_629"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> does not abort is <inline-formula id="j_info1137_ineq_630"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\delta ^{{q_{E}}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1137_li_089">
<label>(2)</label>
<p>In <bold>Challenge</bold>: the probability that the challenger <inline-formula id="j_info1137_ineq_631"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> does not abort is <inline-formula id="j_info1137_ineq_632"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">δ</mml:mi></mml:math><tex-math><![CDATA[$1-\delta $]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</p>
<p>By (1) and (2), the probability that the challenger <inline-formula id="j_info1137_ineq_633"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> does not abort is <inline-formula id="j_info1137_ineq_634"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\delta ^{{q_{E}}}}(1-\delta )$]]></tex-math></alternatives></inline-formula>. Moreover, the maximum value of <inline-formula id="j_info1137_ineq_635"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\delta ^{{q_{E}}}}(1-\delta )$]]></tex-math></alternatives></inline-formula> occurs when <inline-formula id="j_info1137_ineq_636"><alternatives><mml:math>
<mml:mi mathvariant="italic">δ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\delta =1-1/({q_{E}}+1)$]]></tex-math></alternatives></inline-formula>. By similar techniques of Coron’s analysis of the Full Domain Hash (<xref ref-type="bibr" rid="j_info1137_ref_012">2000</xref>), we can obtain the probability that the challenger <inline-formula id="j_info1137_ineq_637"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> does not abort is at least <inline-formula id="j_info1137_ineq_638"><alternatives><mml:math>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$1/e(1+{q_{E}})$]]></tex-math></alternatives></inline-formula>, where <italic>e</italic> is Euler’s constant. In addition, in the phase of <bold>Guess</bold>, the probability that the challenger <inline-formula id="j_info1137_ineq_639"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> outputs the correct solution of the BDH problem is at least <inline-formula id="j_info1137_ineq_640"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$2\epsilon /{q_{{H_{3}}}}$]]></tex-math></alternatives></inline-formula> (Boneh and Franklin, <xref ref-type="bibr" rid="j_info1137_ref_003">2001</xref>). Hence, the challenger <inline-formula id="j_info1137_ineq_641"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> resolves the BDH problem with advantage at least <inline-formula id="j_info1137_ineq_642"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>⩾</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">ϵ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[${\epsilon ^{\prime }}\geqslant \frac{2\epsilon }{e(1+{q_{E}}){q_{{H_{3}}}}}$]]></tex-math></alternatives></inline-formula>.  □</p></statement></p>
</sec>
<sec id="j_info1137_s_014">
<label>6</label>
<title>Performance Analysis</title>
<p>To analyse the computational cost and the communication size of the proposed SIBSC scheme, we consider three time consuming operations <inline-formula id="j_info1137_ineq_643"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_644"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_645"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula>, which, respectively, denote the time of executing a bilinear pairing operation <inline-formula id="j_info1137_ineq_646"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\hat{e}:{\mathbb{G}_{1}}\times {\mathbb{G}_{1}}\to {\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula>, the time of executing a scalar multiplication in <inline-formula id="j_info1137_ineq_647"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> and the time of executing a map-to-point hash function.</p>
<p>In our proposed SIBSC scheme, the sender requires <inline-formula id="j_info1137_ineq_648"><alternatives><mml:math>
<mml:mn>3</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$3{\mathit{TG}_{\mathit{mul}}}+{\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula> to generate a signature. For the encryption procedures, the third party requires <inline-formula id="j_info1137_ineq_649"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}+{\mathit{TG}_{\mathit{mul}}}+{\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula> to generate a ciphertext. Indeed, the execution time of operations <inline-formula id="j_info1137_ineq_650"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1137_ineq_651"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_652"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula> on the pairing system has been implemented in Scott <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_028">2006</xref>), Liu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_020">2014</xref>). In Scott <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_028">2006</xref>), the Philips HiPersmart card (smart card) with an 36 MHz processor was used to execute those operations, while in Liu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_020">2014</xref>) an Inter(R) Pentium IV 3.0 GHz processor (third party) was used to execute those operations. The execution time of operations on smart card and third party was listed in Table <xref rid="j_info1137_tab_002">2</xref>. Full descriptions of the security level on the pairing system were discussed in Scott <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_028">2006</xref>), Liu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_020">2014</xref>). According to Table <xref rid="j_info1137_tab_002">2</xref>, the sender requires less than 490 ms to generate a signature and the third party requires 29.46 ms to generate a ciphertext in our scheme.</p>
<p>On the other hand, in the <italic>Encryption</italic> algorithm, a ciphertext is defined by <inline-formula id="j_info1137_ineq_653"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({R_{A}},{W_{B}})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1137_ineq_654"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{A}}$]]></tex-math></alternatives></inline-formula> is some element in <inline-formula id="j_info1137_ineq_655"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1137_ineq_656"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${W_{B}}$]]></tex-math></alternatives></inline-formula> is bounded to the hash function <inline-formula id="j_info1137_ineq_657"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${H_{3}}:{\mathbb{G}_{2}}\to {\{0,1\}^{k}}$]]></tex-math></alternatives></inline-formula>. Hence, the bit length of a ciphertext is bounded by <inline-formula id="j_info1137_ineq_658"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$|{\mathbb{G}_{1}}|+k$]]></tex-math></alternatives></inline-formula> in our scheme. Moreover, according to Wander <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1137_ref_036">2005</xref>), the total message size of the ciphertext is <inline-formula id="j_info1137_ineq_659"><alternatives><mml:math>
<mml:mn>64</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>20</mml:mn></mml:math><tex-math><![CDATA[$64+20$]]></tex-math></alternatives></inline-formula> bytes. Assume that a packet size is 41 bytes which includes 32 bytes for the payload and 9 bytes for the header. Each packet needs additional 8-byte preamble. Therefore, the ciphertext should be <inline-formula id="j_info1137_ineq_660"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>32</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>∗</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>20</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>9</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>∗</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>∗</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo>=</mml:mo>
<mml:mn>135</mml:mn></mml:math><tex-math><![CDATA[$(32+9)\ast 2+(20+9)\ast 1+8\ast 3=135$]]></tex-math></alternatives></inline-formula> bytes for transmission. Here, transmitting one byte needs 59.2 μ J (Wander <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1137_ref_036">2005</xref>) so that the ciphertext needs <inline-formula id="j_info1137_ineq_661"><alternatives><mml:math>
<mml:mn>135</mml:mn>
<mml:mo>∗</mml:mo>
<mml:mn>59.2</mml:mn>
<mml:mo>=</mml:mo>
<mml:mn>7.992</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mspace width="2.5pt"/>
<mml:mtext>mJ</mml:mtext></mml:math><tex-math><![CDATA[$135\ast 59.2=7.992\hspace{2.5pt}\hspace{2.5pt}\text{mJ}$]]></tex-math></alternatives></inline-formula> for transmission.</p>
<table-wrap id="j_info1137_tab_002">
<label>Table 2</label>
<caption>
<p>Computational cost on the smart card and the third party.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1137_ineq_662"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1137_ineq_663"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"><inline-formula id="j_info1137_ineq_664"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Smart card</td>
<td style="vertical-align: top; text-align: left">380 ms</td>
<td style="vertical-align: top; text-align: left">130 ms</td>
<td style="vertical-align: top; text-align: left">&lt;100 ms</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Third party</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">20.04 ms</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">6.38 ms</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">3.04 ms</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="j_info1137_tab_003">
<label>Table 3</label>
<caption>
<p>Comparisons between the proposed scheme and other schemes.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin"/>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Solution 1</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Solution 2</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Solution 3</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Our solution</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Hired scheme</td>
<td style="vertical-align: top; text-align: left">CC’s IBS</td>
<td style="vertical-align: top; text-align: left">CC’s IBS</td>
<td style="vertical-align: top; text-align: left">CM’s IBSC</td>
<td style="vertical-align: top; text-align: left">Our SIBSC</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">(2003)</td>
<td style="vertical-align: top; text-align: left">(2003)</td>
<td style="vertical-align: top; text-align: left">(2005)</td>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">+ BF’s IBE</td>
<td style="vertical-align: top; text-align: left">+ BF’s IBE</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">+ (2001)</td>
<td style="vertical-align: top; text-align: left">+ (2001)</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Computational cost for</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1137_ineq_665"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1137_ineq_666"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"/>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">smart card</td>
<td style="vertical-align: top; text-align: left">+ 3<inline-formula id="j_info1137_ineq_667"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">2<inline-formula id="j_info1137_ineq_668"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">+ 3<inline-formula id="j_info1137_ineq_669"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">3<inline-formula id="j_info1137_ineq_670"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">+ 2<inline-formula id="j_info1137_ineq_671"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">+ 2<inline-formula id="j_info1137_ineq_672"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">+ <inline-formula id="j_info1137_ineq_673"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Execution time of smart card</td>
<td style="vertical-align: top; text-align: left">&lt; 970 ms</td>
<td style="vertical-align: top; text-align: left">260 ms</td>
<td style="vertical-align: top; text-align: left">&lt; 970 ms</td>
<td style="vertical-align: top; text-align: left">&lt; 490 ms</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Computational cost for</td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1137_ineq_674"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1137_ineq_675"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{e}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">third party</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">+ <inline-formula id="j_info1137_ineq_676"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">+ <inline-formula id="j_info1137_ineq_677"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">mul</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{\mathit{mul}}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">+ <inline-formula id="j_info1137_ineq_678"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"/>
<td style="vertical-align: top; text-align: left">+ <inline-formula id="j_info1137_ineq_679"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">TG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{TG}_{H}}$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Execution time of third party</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">29.46 ms</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">29.46 ms</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Communication size (the ciphertext)</td>
<td style="vertical-align: top; text-align: left">2(<inline-formula id="j_info1137_ineq_680"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$|{\mathbb{G}_{1}}|+k$]]></tex-math></alternatives></inline-formula>)</td>
<td style="vertical-align: top; text-align: left">2(<inline-formula id="j_info1137_ineq_681"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$|{\mathbb{G}_{1}}|+k$]]></tex-math></alternatives></inline-formula>)</td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1137_ineq_682"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$|{\mathbb{G}_{1}}|+k$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1137_ineq_683"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$|{\mathbb{G}_{1}}|+k$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Energy consumption for transmitting the ciphertext</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">15.984 mJ</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">15.984 mJ</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.992 mJ</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">7.992 mJ</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Following Table <xref rid="j_info1137_tab_001">1</xref> in the Introduction, the precise comparisons are presented in Table <xref rid="j_info1137_tab_003">3</xref>. In Solution 1, a smart card takes all computational loads of the hired IBS and IBE schemes to offer authentication and confidentiality. In Solution 2, the IBE scheme is executed by a third party instead of the smart card since it does not require the sender’s private key. It is obvious that Solution 2 aims at reducing the computational cost of the smart card, but not for communication size. On the other hand, Solution 3 employing an IBSC scheme aims at reducing the communication size. As mentioned earlier, since the existing IBSC schemes are inseparable, the smart card takes all computational loads. Table <xref rid="j_info1137_tab_003">3</xref> demonstrates that our solution not only reduces the computational cost required by the smart card but also efficiently decreases the total communication size.</p>
</sec>
<sec id="j_info1137_s_015">
<label>7</label>
<title>Conclusions</title>
<p>In this article, the first <italic>separable</italic> ID-based signcryption (SIBSC) scheme was constructed. In the proposed SIBSC scheme, we aim to employ a semi-trusted third party to assist with expensive pairing computations without endangering the private keys of senders, while retaining communication performance as in IBSC schemes. For security analysis, we demonstrated that our scheme is provably secure to fulfill both authentication and confidentiality by withstanding Type I and Type II adversaries under the computation Diffie–Hellman (CDH) and bilinear Diffie–Hellman (BDH) assumptions, respectively. Indeed, the security analysis was achieved by using random oracles. We believe that to construct a SIBSC scheme without random oracles (in the standard model) is worth studying. It would be an interesting topic for the future work.</p>
</sec>
</body>
<back>
<ack id="j_info1137_ack_001">
<title>Acknowledgements</title>
<p>This research was partially supported by Ministry of Science and Technology, Taiwan, R.O.C., under contract no. MOST103-2221-E-018-022-MY2.</p></ack>
<ref-list id="j_info1137_reflist_001">
<title>References</title>
<ref id="j_info1137_ref_001">
<mixed-citation publication-type="chapter"><string-name><surname>Bellare</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Rogaway</surname>, <given-names>P.</given-names></string-name> (<year>1993</year>). <chapter-title>Random oracles are practical: a paradigm for designing efficient protocols</chapter-title>. In: <source>Proceedings of CCS’93</source>, pp. <fpage>62</fpage>–<lpage>73</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_002">
<mixed-citation publication-type="chapter"><string-name><surname>Boneh</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Boyen</surname>, <given-names>X.</given-names></string-name> (<year>2004</year>). <chapter-title>Secure identity based encryption without random oracles</chapter-title>. In <series>Lecture Notes in Computer Science</series><italic>: Vol.</italic> <volume>3152</volume>. <source>Proceedings of Crypto’04</source>, pp. <fpage>443</fpage>–<lpage>459</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_003">
<mixed-citation publication-type="chapter"><string-name><surname>Boneh</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Franklin</surname>, <given-names>M.</given-names></string-name> (<year>2001</year>). <chapter-title>Identity-based encryption from the Weil pairing</chapter-title>. In: <source>Proceedings of Crypto’01</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2139</volume>. pp. <fpage>213</fpage>–<lpage>229</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_004">
<mixed-citation publication-type="chapter"><string-name><surname>Boneh</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Shen</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Waters</surname>, <given-names>B.</given-names></string-name> (<year>2006</year>). <chapter-title>Strongly unforgeable signatures based on computational Diffie–Hellman</chapter-title>. In: <source>Proceedings of PKC’06</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3958</volume>, pp. <fpage>229</fpage>–<lpage>240</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_005">
<mixed-citation publication-type="chapter"><string-name><surname>Boyen</surname>, <given-names>X.</given-names></string-name> (<year>2003</year>). <chapter-title>Multipurpose identity-based signcryption: a swiss army knife for identity-based cryptography</chapter-title>. In: <source>Proceedings of Crypto’03</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2729</volume>. pp. <fpage>383</fpage>–<lpage>399</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_006">
<mixed-citation publication-type="chapter"><string-name><surname>Boyen</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Waters</surname>, <given-names>B.</given-names></string-name> (<year>2006</year>). <chapter-title>Anonymous hierarchical identity-based encryption (without random oracles)</chapter-title>. In: <source>Proceedings of Crypto’06</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>4117</volume>. pp. <fpage>290</fpage>–<lpage>307</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Canetti</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Goldreich</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Halevi</surname>, <given-names>S.</given-names></string-name> (<year>2004</year>). <article-title>The random oracle methodology, revisited</article-title>. <source>Journal of ACM</source>, <volume>51</volume>(<issue>4</issue>), <fpage>557</fpage>–<lpage>594</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_008">
<mixed-citation publication-type="chapter"><string-name><surname>Cha</surname>, <given-names>J.C.</given-names></string-name>, <string-name><surname>Cheon</surname>, <given-names>J.H.</given-names></string-name> (<year>2003</year>). <chapter-title>An identity-based signature from gap Diffie-Hellman groups</chapter-title>. In: <source>Proceedings of PKC’03</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2567</volume>. pp. <fpage>18</fpage>–<lpage>30</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_009">
<mixed-citation publication-type="chapter"><string-name><surname>Chen</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Malone-Lee</surname>, <given-names>J.</given-names></string-name> (<year>2005</year>). <chapter-title>Improved identity-based signcryption</chapter-title>. In: <source>Proceedings of PKC’05</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3386</volume>, pp. <fpage>362</fpage>–<lpage>379</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Chen</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Cheng</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Smart</surname>, <given-names>N.P.</given-names></string-name> (<year>2007</year>). <article-title>Identity-based key agreement protocols from pairings</article-title>. <source>International Journal of Information Security</source>, <volume>6</volume>(<issue>4</issue>), <fpage>213</fpage>–<lpage>241</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_011">
<mixed-citation publication-type="chapter"><string-name><surname>Chow</surname>, <given-names>S.S.M.</given-names></string-name>, <string-name><surname>Yiu</surname>, <given-names>S.M.</given-names></string-name>, <string-name><surname>Hui</surname>, <given-names>L.C.K.</given-names></string-name>, <string-name><surname>Chow</surname>, <given-names>K.P.</given-names></string-name> (<year>2004</year>). <chapter-title>Efficient forward and provably secure ID-based signcryption scheme with public verifiability and public ciphertext authenticity</chapter-title>. In: <source>Proceedings of ICISC’03</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2971</volume>, pp. <fpage>352</fpage>–<lpage>369</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_012">
<mixed-citation publication-type="chapter"><string-name><surname>Coron</surname>, <given-names>J.S.</given-names></string-name> (<year>2000</year>). <chapter-title>On the exact security of full domain hash</chapter-title>. In: <source>Proceedings of Crypto’00</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>1880</volume>, pp. <fpage>229</fpage>–<lpage>235</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_013">
<mixed-citation publication-type="chapter"><string-name><surname>Fahl</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Harbach</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Muders</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Smith</surname>, <given-names>M.</given-names></string-name> (<year>2012</year>). <chapter-title>Confidentiality as a service – usable security for the cloud</chapter-title>. In: <source>IEEE 11th International Conference on Proceedings of Trust, Security and Privacy in Computing and Communications’12</source>, pp. <fpage>153</fpage>–<lpage>162</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_014">
<mixed-citation publication-type="journal"><string-name><surname>Jin</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Wen</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Du</surname>, <given-names>H.</given-names></string-name> (<year>2010</year>). <article-title>An improved semantically-secure identity-based signcryption scheme in the standard model</article-title>. <source>Computers &amp; Electrical Engineering</source>, <volume>36</volume>(<issue>3</issue>), <fpage>545</fpage>–<lpage>552</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_015">
<mixed-citation publication-type="chapter"><string-name><surname>Kitagawa</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Yang</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Hanaoka</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Matsuura</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Imai</surname>, <given-names>H.</given-names></string-name> (<year>2006</year>). <chapter-title>Generic transforms to acquire CCA-security for identity based encryption: the cases of FOPKC and REACT</chapter-title>. In: <source>Proceedings of ACISP’06</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>4058</volume>. pp. <fpage>348</fpage>–<lpage>359</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Takagi</surname>, <given-names>T.</given-names></string-name> (<year>2013</year>). <article-title>Secure identity-based signcryption in the standard model</article-title>. <source>Mathematical and Computer Modelling</source>, <volume>57</volume>(<issue>11–12</issue>), <fpage>2685</fpage>–<lpage>2694</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_017">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Liao</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Qin</surname>, <given-names>Z.</given-names></string-name> (<year>2011</year>). <article-title>Analysis of an identity-based signcryption scheme in the standard model</article-title>. <source>IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences E</source>, <volume>94–A(1)</volume>, <fpage>268</fpage>–<lpage>269</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_018">
<mixed-citation publication-type="chapter"><string-name><surname>Libert</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Quisquater</surname>, <given-names>J.J.</given-names></string-name> (<year>2003</year>). <chapter-title>A new identity based signcryption schemes from pairings</chapter-title>. In: <source>Proceedings of IEEE Information Theory Workshop’03</source>, pp. <fpage>155</fpage>–<lpage>158</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_019">
<mixed-citation publication-type="chapter"><string-name><surname>Libert</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Vergnaud</surname>, <given-names>D.</given-names></string-name> (<year>2009</year>). <chapter-title>Adaptive-ID secure revocable identity-based encryption</chapter-title>. In: <source>Proceedings of CT-RSA’09</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>5473</volume>. pp. <fpage>1</fpage>–<lpage>15</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_020">
<mixed-citation publication-type="journal"><string-name><surname>Liu</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Kwak</surname>, <given-names>K.S.</given-names></string-name> (<year>2014</year>). <article-title>Certificateless remote anonymous authentication schemes for wireless body area networks</article-title>. <source>IEEE Transactions on Parallel and Distributed Systems</source>, <volume>25</volume>(<issue>2</issue>), <fpage>332</fpage>–<lpage>342</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_021">
<mixed-citation publication-type="journal"><string-name><surname>Ma</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Guan</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Xia</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>X.</given-names></string-name> (<year>2015</year>). <article-title>EnDAS: efficient encrypted data search as a mobile cloud service</article-title>. <source>IEEE Transactions on Emerging Topics in Computing</source>, <volume>3</volume>(<issue>3</issue>), <fpage>372</fpage>–<lpage>383</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_022">
<mixed-citation publication-type="other"><string-name><surname>Malone-Lee</surname>, <given-names>J.</given-names></string-name> (2002). <italic>Identity-based signcryption</italic>. Cryptology ePrint Archive, Report 2002/098. <ext-link ext-link-type="uri" xlink:href="http://eprint.iacr.org/">http://eprint.iacr.org/</ext-link>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_023">
<mixed-citation publication-type="book"><string-name><surname>Mell</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Grance</surname>, <given-names>T.</given-names></string-name> (<year>2009</year>). <source>The NIST Definition of Cloud Computing</source>. <publisher-name>National Institute of Standards and Technology</publisher-name>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_024">
<mixed-citation publication-type="journal"><string-name><surname>Narayan</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Parampalli</surname>, <given-names>U.</given-names></string-name> (<year>2008</year>). <article-title>Efficient identity-based signatures secure in the standard model</article-title>. <source>IET Information Security</source>, <volume>2</volume>(<issue>4</issue>), <fpage>108</fpage>–<lpage>118</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_025">
<mixed-citation publication-type="chapter"><string-name><surname>Paterson</surname>, <given-names>K.G.</given-names></string-name>, <string-name><surname>Schuldt</surname>, <given-names>J.C.N.</given-names></string-name> (<year>2006</year>). <chapter-title>Efficient identity-based signatures secure in the standard model</chapter-title>. In: <source>Proceedings of ACISP’06</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>4058</volume>, pp. <fpage>207</fpage>–<lpage>222</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_026">
<mixed-citation publication-type="chapter"><string-name><surname>Pointcheval</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Stern</surname>, <given-names>J.</given-names></string-name> (<year>1996</year>). <chapter-title>Security proofs for signature schemes</chapter-title>. In: <source>Proceedings of Eurocrypt’96</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>1070</volume>. pp. <fpage>387</fpage>–<lpage>398</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_027">
<mixed-citation publication-type="journal"><string-name><surname>Pointcheval</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Stern</surname>, <given-names>J.</given-names></string-name> (<year>2000</year>). <article-title>Security arguments for digital signatures and blind signatures</article-title>. <source>Journal of Cryptology</source>, <volume>13</volume>(<issue>3</issue>), <fpage>361</fpage>–<lpage>396</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_028">
<mixed-citation publication-type="chapter"><string-name><surname>Scott</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Costigan</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Abdulwahab</surname>, <given-names>W.</given-names></string-name> (<year>2006</year>). <chapter-title>Implementing cryptographic pairings on smartcards</chapter-title>. In: <source>Proceedings of CHES’06</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>4249</volume>, pp. <fpage>134</fpage>–<lpage>147</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_029">
<mixed-citation publication-type="chapter"><string-name><surname>Shamir</surname>, <given-names>A.</given-names></string-name> (<year>1984</year>). <chapter-title>Identity-based cryptosystems and signature schemes</chapter-title>. In: <source>Proceedings of Crypto’84</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>196</volume>, pp. <fpage>47</fpage>–<lpage>53</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_030">
<mixed-citation publication-type="chapter"><string-name><surname>Suo</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Wan</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Zhou</surname>, <given-names>K.</given-names></string-name> (<year>2013</year>). <chapter-title>Security and privacy in mobile cloud computing</chapter-title>. In: <source>Proceedings of Wireless Communications and Mobile Computing Conference’13, 9th International</source>, pp. <fpage>655</fpage>–<lpage>659</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_031">
<mixed-citation publication-type="journal"><string-name><surname>Tsai</surname>, <given-names>T.T.</given-names></string-name>, <string-name><surname>Tseng</surname>, <given-names>Y.M.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>T.Y.</given-names></string-name> (<year>2012</year>). <article-title>A fully secure revocable ID-based encryption in the standard model</article-title>. <source>Informatica</source>, <volume>23</volume>(<issue>3</issue>), <fpage>481</fpage>–<lpage>499</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_032">
<mixed-citation publication-type="journal"><string-name><surname>Tsai</surname>, <given-names>T.T.</given-names></string-name>, <string-name><surname>Tseng</surname>, <given-names>Y.M.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>T.Y.</given-names></string-name> (<year>2013</year>). <article-title>Provably secure revocable ID-based signature in the standard model</article-title>. <source>Security and Communication Networks</source>, <volume>6</volume>(<issue>10</issue>), <fpage>1250</fpage>–<lpage>1260</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_033">
<mixed-citation publication-type="journal"><string-name><surname>Tsai</surname>, <given-names>T.T.</given-names></string-name>, <string-name><surname>Tseng</surname>, <given-names>Y.M.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>S.S.</given-names></string-name> (<year>2014</year>). <article-title>Efficient strongly unforgeable ID-based signature without random oracles</article-title>. <source>Informatica</source>, <volume>25</volume>(<issue>3</issue>), <fpage>505</fpage>–<lpage>521</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_034">
<mixed-citation publication-type="journal"><string-name><surname>Tseng</surname>, <given-names>Y.M.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>S.S.</given-names></string-name>, <string-name><surname>Tsai</surname>, <given-names>T.T.</given-names></string-name>, <string-name><surname>Ke</surname>, <given-names>J.H.</given-names></string-name> (<year>2016</year>). <article-title>List-free ID-based mutual authentication and key agreement protocol for multiserver architectures</article-title>. <source>IEEE Transactions on Emerging Topics in Computing</source>, <volume>4</volume>(<issue>1</issue>), <fpage>102</fpage>–<lpage>112</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_035">
<mixed-citation publication-type="journal"><string-name><surname>Tysowski</surname>, <given-names>P.K.</given-names></string-name>, <string-name><surname>Hasan</surname>, <given-names>M.A.</given-names></string-name> (<year>2013</year>). <article-title>Hybrid attribute- and re-encryption-based key management for secure and scalable mobile applications in clouds</article-title>. <source>IEEE Transactions on Cloud Computing</source>, <volume>1</volume>(<issue>2</issue>), <fpage>172</fpage>–<lpage>186</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_036">
<mixed-citation publication-type="chapter"><string-name><surname>Wander</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Gura</surname>, <given-names>N.</given-names></string-name>, <string-name><surname>Eberle</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Gupta</surname>, <given-names>V.</given-names></string-name>, <string-name><surname>Shantz</surname>, <given-names>S.</given-names></string-name> (<year>2005</year>). <chapter-title>Energy analysis of public-key cryptography for wireless sensor networks</chapter-title>. In: <source>Proceedings of 3rd IEEE International Conference Pervasive Computing Commun’05</source>, pp. <fpage>324</fpage>–<lpage>328</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_037">
<mixed-citation publication-type="chapter"><string-name><surname>Waters</surname>, <given-names>B.</given-names></string-name> (<year>2005</year>). <chapter-title>Efficient identity-based encryption without random oracles</chapter-title>. In: <source>Proceedings of Eurocrypt’05</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3494</volume>. pp. <fpage>1</fpage>–<lpage>33</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_038">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>T.Y.</given-names></string-name>, <string-name><surname>Tseng</surname>, <given-names>Y.M.</given-names></string-name> (<year>2010</year>). <article-title>An ID-based mutual authentication and key exchange protocol for low-power mobile devices</article-title>. <source>The Computer Journal</source>, <volume>53</volume>(<issue>7</issue>), <fpage>1062</fpage>–<lpage>1070</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_039">
<mixed-citation publication-type="journal"><string-name><surname>Zhang</surname>, <given-names>B.</given-names></string-name> (<year>2010</year>). <article-title>Cryptanalysis of an identity based signcryption scheme without random oracles</article-title>. <source>Journal of Computational Information Systems</source>, <volume>6</volume>(<issue>6</issue>), <fpage>1923</fpage>–<lpage>1931</lpage>.</mixed-citation>
</ref>
<ref id="j_info1137_ref_040">
<mixed-citation publication-type="chapter"><string-name><surname>Zheng</surname>, <given-names>Y.</given-names></string-name> (<year>1997</year>). <chapter-title>Digital signcryption or how to achieve cost (signature &amp; encryption) ≪ cost (signature) + cost (encryption)</chapter-title>. In: <source>Proceedings of Crypto’97</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>1294</volume>, pp. <fpage>165</fpage>–<lpage>179</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>