<?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">INFO1143</article-id>
<article-id pub-id-type="doi">10.15388/Informatica.2017.127</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Generic Construction of Certificate-Based Signature from Certificateless Signature with Provable Security</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Gao</surname><given-names>Wei</given-names></name><email xlink:href="mygaowei@163.com">mygaowei@163.com</email><xref ref-type="aff" rid="j_info1143_aff_001">1</xref><xref ref-type="aff" rid="j_info1143_aff_002">2</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>W. Gao</bold> received his PhD and MS degrees in applied mathematics from Hunan University in 2006, Guangzhou University 2003, respectively. He is an associate professor in Ludong University from 2012.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Wang</surname><given-names>Guilin</given-names></name><email xlink:href="wang.guilin@huawei.com">wang.guilin@huawei.com</email><xref ref-type="aff" rid="j_info1143_aff_003">3</xref><bio>
<p><bold>G. Wang</bold> received his PhD degree in computer science, from Institute of Software, Chinese Academy of Sciences, PR China, in 2001. He was a senior lecturer in University of Wollongong, Australia. Now he works in Huawei Technologies Co. Ltd., Singapore. His research interests include cryptography and information security.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Chen</surname><given-names>Kefei</given-names></name><email xlink:href="kfchen@hznu.edu.cn">kfchen@hznu.edu.cn</email><xref ref-type="aff" rid="j_info1143_aff_004">4</xref><bio>
<p><bold>K. Chen</bold> is a professor of cryptography and information security school of science, Hangzhou Normal University since 2013. From 1996 to 2013, he was a professor of cryptography and information security in the School of Science, Shanghai Jiaotong University. His interest fields are public key cryptography, cryptographic protocol analysis, applied cryptographic techniques and computer security.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Wang</surname><given-names>Xueli</given-names></name><email xlink:href="wangxuyuyan@gmail.com">wangxuyuyan@gmail.com</email><xref ref-type="aff" rid="j_info1143_aff_005">5</xref><bio>
<p><bold>X. Wang</bold> received his PhD degree in mathematics from the Academy of China in 1991, his MS degree in mathematics from Shannxi Normal University in 1987. He is currently a professor of Computer Science at South China Normal University. His current research interests include cryptography, number theory.</p></bio>
</contrib>
<aff id="j_info1143_aff_001"><label>1</label>School of Mathematics and Statistics, <institution>Ludong University</institution>, Yantai 264025, <country>China</country></aff>
<aff id="j_info1143_aff_002"><label>2</label><institution>Nanjing University of Information Science &amp; Technology</institution>, Nanjing 210044, <country>China</country></aff>
<aff id="j_info1143_aff_003"><label>3</label><institution>Huawei Technologies Co. Ltd.</institution>, <country>Singapore</country></aff>
<aff id="j_info1143_aff_004"><label>4</label>Department of Mathematics, <institution>Hangzhou Normal University</institution>, Hangzhou 311121, <country>China</country></aff>
<aff id="j_info1143_aff_005"><label>5</label>School of Mathematics, <institution>South China Normal University</institution>, Guangzhou 510631, <country>China</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>2</issue><fpage>215</fpage><lpage>235</lpage><history><date date-type="received"><month>7</month><year>2015</year></date><date date-type="accepted"><month>11</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>This paper studies the generic construction of certificate-based signature (CBS) from certificateless signature (CLS). This paper proposes a new generic conversion from CLS to CBS which is more intuitive, simpler, and provably secure without random oracles than the current one. To develop the security proof, we put forth one novel CLS security model which features a previously neglected but nontrivial attack and hence captures the CLS security notion more comprehensively. We show that many existing CLS schemes can be proved secure in the current model by slightly modifying its original security proof. Following this conversion, many provably secure CBS schemes can be constructed from the corresponding existing CLS schemes.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>certificateless signature</kwd>
<kwd>certificate-based signature</kwd>
<kwd>identity based signature</kwd>
<kwd>provable security</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_info1143_s_001">
<label>1</label>
<title>Introduction</title>
<p><sc>Identity-based Cryptography (IBC)</sc>. In 1984, Shamir (<xref ref-type="bibr" rid="j_info1143_ref_019">1984</xref>) proposed the concept of identity-based PKC (IBC) for reducing the requirements on the public key infrastructure. In IBC, the public key for one entity is its well-known identity information, such as the email address and the full name. The private key for this entity is generated by one trusted party called Private Key Generater (PKG), usually being the signature on the identity information. With this approach, the certification of public keys becomes implicit. However, IBC suffers from the main drawback of being inherently key escrowed, since PKG can generate the private key of any entity.</p>
<p><sc>Certificate-based Cryptography (CBC).</sc> Motivated by avoiding the problem of third party queries in PKC, Gentry proposed the new concept of certificate-based encryption (CBE) by combining public key encryption and identity based encryption. Following the idea of CBE, Kang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_011">2004</xref>) proposed the concept of certificate based-signature (CBS). This certificate has all of the functionality of a conventional PKI certificate – e.g. it can be used explicitly as proof of current certification – but it can also be used as part of the user decryption/signing key, which is composed of the user-generated private key and the certificate. As a result, CBC achieves two main advantages. On the one hand, unlike IBC, there is no key escrow for CBC, since CA does not know the user-generated private key. On the other hand, the encrypter (or signature verifier) does not need to verify the certificate, because the ciphertext (or signature) can not be decrypted (or generated) unless the certificate exists. This allows CBC to eliminate third party queries on certificate status (Gentry, <xref ref-type="bibr" rid="j_info1143_ref_006">2003</xref>). By refining basic CBE/CBS through the use of subset covers, an exceptionally efficient PKI can be constructed (Gentry, <xref ref-type="bibr" rid="j_info1143_ref_006">2003</xref>).</p>
<p><sc>Certificateless cryptography (CLC).</sc> Similarly motivated by combining merits of the traditional PKC and IBC, independently from the work of CBC, the concept of certificateless encryption (CLE) and certificateless signature (CLS) were introduced by Al-Riyami and Paterson (<xref ref-type="bibr" rid="j_info1143_ref_001">2003</xref>). In CLC, each entity has two secrets: a secret value <inline-formula id="j_info1143_ineq_001"><alternatives><mml:math>
<mml:mi mathvariant="italic">SV</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SV}$]]></tex-math></alternatives></inline-formula> chosen by the entity and a partial private key <inline-formula id="j_info1143_ineq_002"><alternatives><mml:math>
<mml:mi mathvariant="italic">PPK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{PPK}$]]></tex-math></alternatives></inline-formula> generated by a third party called Private Key Generater (PKG). The full private key is the output of a function by taking <inline-formula id="j_info1143_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="italic">SV</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SV}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_004"><alternatives><mml:math>
<mml:mi mathvariant="italic">PPK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{PPK}$]]></tex-math></alternatives></inline-formula> as the input, and hence can be only known by the user. On the one hand, unlike IBC, CLC does not suffer from key escrow, since PKG does not have access to the user’s secret value <inline-formula id="j_info1143_ineq_005"><alternatives><mml:math>
<mml:mi mathvariant="italic">SV</mml:mi></mml:math><tex-math><![CDATA[$\mathit{SV}$]]></tex-math></alternatives></inline-formula>. CLC does not require the use of certificates to guarantee the authenticity of public key. The two concepts of CBC and CLC are similar. The main difference is the generation of the partial secret key in CLC (it is called certificate in CBC). In CLC the PKG does not require the user’s public key for the generation of the partial secret key, while in CBC the CA does require the user’s public key for the generation of the certificate. Additionally, the trust level of CBC is 3, while the trust level of CLC is 2 (Liu <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1143_ref_014">2007</xref>). All the above three kinds of public key cryptographic primitives have the considerable advantages in key managements which make them potentially suitable for many applications such as wireless networks (Guo <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1143_ref_007">2014</xref>; Xie and Wang, <xref ref-type="bibr" rid="j_info1143_ref_024">2014</xref>; Shen <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1143_ref_020">2015</xref>) where key management will be additional burden for restricted resources.</p>
<sec id="j_info1143_s_002">
<label>1.1</label>
<title>Related Works</title>
<p>Although CBC and CLC were developed independently, both of them can be conceptually seen as intermediates between traditional PKC and IBC, seeking to simplify the management of certificates while avoiding the key escrow problem in IBC. So a natural question to establish the connection of two concepts arose in the theoretical cryptography field. In 2005, Al-Riyami and Paterson (<xref ref-type="bibr" rid="j_info1143_ref_002">2005</xref>) presented one generic conversion from CLE to CBE and claimed the provable security of this generic construction of CBE. Shortly later, Kang and Park (<xref ref-type="bibr" rid="j_info1143_ref_010">2005</xref>) pointed out that this generic conversion from CLE to CBE has a critical flaw in the security proof. Recently, Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_022">2009</xref>) proposed a new generic conversion from CLS to CBS, and a generic conversion from CLE to CBE (Wu <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1143_ref_023">2012</xref>). These two generic conversions have to depend on the cryptographic hash function which is taken as a random oracle (Canetti <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1143_ref_004">2004</xref>) in the security proof. In addition to the generic results of CBS, there are also some concrete CBS schemes proposed in Kang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_011">2004</xref>), Liu <italic>et al</italic>. (<xref ref-type="bibr" rid="j_info1143_ref_015">2008</xref>, <xref ref-type="bibr" rid="j_info1143_ref_016">2011</xref>), Wu <italic>et al</italic>. (<xref ref-type="bibr" rid="j_info1143_ref_022">2009</xref>, <xref ref-type="bibr" rid="j_info1143_ref_023">2012</xref>), Li <italic>et al</italic>. (<xref ref-type="bibr" rid="j_info1143_ref_012">2010</xref>, <xref ref-type="bibr" rid="j_info1143_ref_013">2012</xref>). In current research of cryptography, there are much more results for certificateless cryptography than certificate-based cryptography.</p>
</sec>
<sec id="j_info1143_s_003">
<label>1.2</label>
<title>Motivations</title>
<p>From the perspective of theoretical cryptography, it is very interesting to investigate the general relationship between certificate-based signatures and certificateless signatures. As mentioned in Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_023">2012</xref>), those two cryptographic primitives are quite closely related. In fact, four similarities in certificateless signatures and certificate-based signatures are presented in Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_023">2012</xref>). However, the state-of-the-art result in Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_023">2012</xref>) is not satisfactory enough in the viewpoint of theory, since the undesirable primitive “random oracle” (Bellare and Rogaway, <xref ref-type="bibr" rid="j_info1143_ref_003">1993</xref>) is needed in this framework: 
<disp-formula id="j_info1143_eq_001">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext>“CLS</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mo>+</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>Random Oracle</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mo stretchy="false">→</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CBS”</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \text{``CLS}\hspace{2.5pt}+\hspace{2.5pt}\text{Random Oracle}\hspace{2.5pt}\to \hspace{2.5pt}\text{CBS''}.\]]]></tex-math></alternatives>
</disp-formula> 
In the field of provable secure cryptography, researchers usually try to construct cryptographic schemes in the standard model instead of the random oracle model. In contrast, it is a natural and intuitive task in theory to wipe out “Random Oracle”, or to get the most concise framework: 
<disp-formula id="j_info1143_eq_002">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext>“CLS</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mo stretchy="false">→</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CBS”</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \text{``CLS}\hspace{2.5pt}\to \hspace{2.5pt}\text{CBS''}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>From the perspective of cryptographic practice, it is also worthwhile to study this most concise framework. In fact, there are much more research works on CLS schemes than those in CBS schemes. Hence, the study on generic construction of CBS from CLS can help us to obtain many concrete CBS schemes from existing CLS schemes with almost no price. Among those constructed in this way, some CBS schemes may have better properties than existing ones.</p>
</sec>
<sec id="j_info1143_s_004">
<label>1.3</label>
<title>Contributions</title>
<p>A new security model for CLS is developed. It captures some new attacks which have never been mentioned in literature. For more details, please refer to Section <xref rid="j_info1143_s_006">2</xref> where two remarks aim to explain its originality. From the viewpoint of basic theory, this further development of security model is an essential refinement for certificateless cryptography theory. From the viewpoint of applications, it is the key technique helping us to prove secure our generic conversion of CBS schemes from CLS schemes.</p>
<p>The most intuitive generic conversion of CLS schemes from CBS schemes is “revived”. Compared with the Wu <italic>et al</italic>.’s (<xref ref-type="bibr" rid="j_info1143_ref_022">2009</xref>) generic conversion from CLS to CBS, our generic conversion is as intuitive as possible, and as concise as possible. Although it is so intuitive, concise and reasonable, this conversion framework can not be adopted by previous works in cryptography, until the formal security proof is completed in this paper. In terms of cryptographic theory, we provide the formal security proof for the intuitive observation on close relation between CLS signatures and CBS signatures.</p>
<p>Many concrete CBS schemes can be constructed from existing CLS schemes by applying the generic framework. One existing CLS scheme is proved secure in our new security model. With this proof as an example, we also listed other CLS schemes which also can be proved secure in the new security model. Hence, many CBS signature schemes can be constructed.</p>
</sec>
<sec id="j_info1143_s_005">
<label>1.4</label>
<title>Organization</title>
<p>This paper is organized as follows. Section <xref rid="j_info1143_s_006">2</xref> reviews the syntax definition of CLS and proposes the new security model for CLS. Section <xref rid="j_info1143_s_007">3</xref> briefly reviews the definition and security model for CBS in one more concise framework. Section <xref rid="j_info1143_s_008">4</xref> presents our new generic construction of CBS from CLS and its security proof. Section <xref rid="j_info1143_s_009">5</xref> compares our result with the state-of-the-art one proposed in Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_023">2012</xref>). Section <xref rid="j_info1143_s_010">6</xref> presents a concrete CBS signature scheme as an application example of our generic conversion. Some other CLS schemes which can be similarly proved secure are listed. At last, Section <xref rid="j_info1143_s_011">7</xref> draws the conclusion.</p>
</sec>
</sec>
<sec id="j_info1143_s_006">
<label>2</label>
<title>Certificateless Signature</title>
<p>We use the notation <inline-formula id="j_info1143_ineq_006"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_007"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> to denote the identity information in the certificateless system and certificate-based system respectively. We put the prefix <inline-formula id="j_info1143_ineq_008"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo></mml:math><tex-math><![CDATA[$\mathit{CL}.$]]></tex-math></alternatives></inline-formula> to specify that this is in the certificateless system and <inline-formula id="j_info1143_ineq_009"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}$]]></tex-math></alternatives></inline-formula> to specify that this is in the certificate-based system. We use the notation 
<disp-formula id="j_info1143_eq_003">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">query</mml:mi>
<mml:mo stretchy="false">↛</mml:mo>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{query}\nrightarrow O\]]]></tex-math></alternatives>
</disp-formula> 
to denote that the query <inline-formula id="j_info1143_ineq_010"><alternatives><mml:math>
<mml:mi mathvariant="italic">query</mml:mi></mml:math><tex-math><![CDATA[$\mathit{query}$]]></tex-math></alternatives></inline-formula> has never been submitted to the oracle <italic>O</italic>, and the notation 
<disp-formula id="j_info1143_eq_004">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">answer</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{answer}\gets O\]]]></tex-math></alternatives>
</disp-formula> 
to denote that the answer <inline-formula id="j_info1143_ineq_011"><alternatives><mml:math>
<mml:mi mathvariant="italic">answer</mml:mi></mml:math><tex-math><![CDATA[$\mathit{answer}$]]></tex-math></alternatives></inline-formula> has been returned by the oracle <italic>O</italic>.</p><statement id="j_info1143_stat_001"><label>Definition 1.</label>
<p>A certificateless signature scheme consists of the following six algorithms. 
<list>
<list-item id="j_info1143_li_001">
<label>(1)</label>
<p><sans-serif>CL.Setup</sans-serif>(<inline-formula id="j_info1143_ineq_012"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${1^{k}})\to (\mathit{CL}.\mathit{msk},\mathit{CL}.\mathit{param})$]]></tex-math></alternatives></inline-formula>. It takes <inline-formula id="j_info1143_ineq_013"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${1^{k}}$]]></tex-math></alternatives></inline-formula> as input where <italic>k</italic> is the security parameter, and returns the master private key <inline-formula id="j_info1143_ineq_014"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{msk}$]]></tex-math></alternatives></inline-formula> and the parameter <inline-formula id="j_info1143_ineq_015"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula> which is shared in the system.</p>
</list-item>
<list-item id="j_info1143_li_002">
<label>(2)</label>
<p><sans-serif>CL.ExtractPPK</sans-serif><inline-formula id="j_info1143_ineq_016"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$(\mathit{CL}.\mathit{msk},\mathit{CL}.\mathit{param},\mathsf{ID})\to {D_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>. It takes the master private key <inline-formula id="j_info1143_ineq_017"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{msk}$]]></tex-math></alternatives></inline-formula>, the system parameter <inline-formula id="j_info1143_ineq_018"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula> and the identity <inline-formula id="j_info1143_ineq_019"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula> as input, and returns the partial private key <inline-formula id="j_info1143_ineq_020"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_003">
<label>(3)</label>
<p><sans-serif>CL.SetSV</sans-serif><inline-formula id="j_info1143_ineq_021"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$(\mathit{CL}.\mathit{param})\to {X_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>. It takes as input the system parameter <inline-formula id="j_info1143_ineq_022"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, and outputs a secret value <inline-formula id="j_info1143_ineq_023"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_004">
<label>(4)</label>
<p><sans-serif>CL.SetPK</sans-serif>(<inline-formula id="j_info1143_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param},{X_{\mathsf{ID}}})\to ({\mathit{CL}.\mathit{PK}_{\mathsf{ID}}})$]]></tex-math></alternatives></inline-formula>. It takes as input the system parameter <inline-formula id="j_info1143_ineq_025"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, and this identity’s secret value <inline-formula id="j_info1143_ineq_026"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>, and outputs the public key <inline-formula id="j_info1143_ineq_027"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CL}.\mathit{PK}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_005">
<label>(5)</label>
<p><sans-serif>CL.Sign</sans-serif><inline-formula id="j_info1143_ineq_028"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$(\mathit{CL}.\mathit{param},{D_{\mathsf{ID}}},{X_{\mathsf{ID}}},m)\to \mathit{CL}.\sigma $]]></tex-math></alternatives></inline-formula>. It takes as input the system parameter <inline-formula id="j_info1143_ineq_029"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, the partial private key <inline-formula id="j_info1143_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>, the secret value <inline-formula id="j_info1143_ineq_031"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> and the message <italic>m</italic>, and outputs the signature <inline-formula id="j_info1143_ineq_032"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\sigma $]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_006">
<label>(6)</label>
<p><sans-serif>CL.Verify</sans-serif><inline-formula id="j_info1143_ineq_033"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">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[$(\mathit{CL}.\mathit{param},\mathsf{ID},{\mathit{CL}.\mathit{PK}_{\mathsf{ID}}},m,\mathit{CL}.\sigma )\to b\in \{0,1\}$]]></tex-math></alternatives></inline-formula>. It takes as input the system parameter <inline-formula id="j_info1143_ineq_034"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, an identity <inline-formula id="j_info1143_ineq_035"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula>, this identity’s public key <inline-formula id="j_info1143_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CL}.\mathit{PK}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> and a message/signature pair <inline-formula id="j_info1143_ineq_037"><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:mi mathvariant="italic">CL</mml:mi>
<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[$(m,\mathit{CL}.\sigma )$]]></tex-math></alternatives></inline-formula>, and outputs 1 if the signature is correct, or 0 otherwise.</p>
</list-item>
</list>
</p></statement>
<p>The following definition has some essentially different points from other ones including that in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>). Two remarks on these basic differences will be presented during the definition. To get more succinct security definition than others, we put four kinds of adversary models together in one unified framework. Additionally, in Section <xref rid="j_info1143_s_010">6</xref>, we will show that many existing CLS signature schemes can be proved secure in our new security model and present 6 examples.</p><statement id="j_info1143_stat_002"><label>Definition 2.</label>
<p>A CLS scheme is CL-EUF-CMCI secure against a certain kind of adversary 
<disp-formula id="j_info1143_eq_005">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathcal{A}\in \big\{\text{CL.Normal-}{\mathcal{A}^{I}},\text{CL.Super-}{\mathcal{A}^{I}},\text{CL.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CL.Super-}{\mathcal{A}^{\mathit{II}}}\big\},\]]]></tex-math></alternatives>
</disp-formula> 
if no polynomially bounded adversary <inline-formula id="j_info1143_ineq_038"><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 success probability in the following CLS game. In the following, 
<disp-formula id="j_info1143_eq_006">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \text{CL.Normal-}{\mathcal{A}^{I}},\hspace{2.5pt}\text{CL.Super-}{\mathcal{A}^{I}},\hspace{2.5pt}\text{CL.Normal-}{\mathcal{A}^{\mathit{II}}},\hspace{2.5pt}\text{CL.Super-}{\mathcal{A}^{\mathit{II}}}\]]]></tex-math></alternatives>
</disp-formula> 
will be called normal Type I adversary, super Type I adversary, normal Type II adversary, and super Type II adversary respectively.</p>
<p>(1) <sans-serif>Initial</sans-serif>: the challenger runs the algorithm <sans-serif>CL.Setup</sans-serif>, returns <inline-formula id="j_info1143_ineq_039"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Params</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{Params}$]]></tex-math></alternatives></inline-formula> and the auxiliary information <inline-formula id="j_info1143_ineq_040"><alternatives><mml:math>
<mml:mi mathvariant="italic">aux</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">nil</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathit{aux}\in \{\mathit{nil},\mathit{CL}.\mathit{msk}\}$]]></tex-math></alternatives></inline-formula> to the attacker <inline-formula id="j_info1143_ineq_041"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_info1143_ineq_042"><alternatives><mml:math>
<mml:mi mathvariant="italic">nil</mml:mi></mml:math><tex-math><![CDATA[$\mathit{nil}$]]></tex-math></alternatives></inline-formula> means nothing), where 
<disp-formula id="j_info1143_eq_007">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">aux</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">nil</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">aux</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</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[\[\begin{array}{l@{\hskip4.0pt}l}\mathit{aux}=\mathit{nil},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CL.Normal-}{\mathcal{A}^{I}},\text{CL.Super-}{\mathcal{A}^{I}}\big\},\\ {} \mathit{aux}=\mathit{CL}.\mathit{msk},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CL.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CL.Super-}{\mathcal{A}^{\mathit{II}}}\big\}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>(2) <sans-serif>Queries</sans-serif>: in this phase, <inline-formula id="j_info1143_ineq_043"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can adaptively make requests to a few oracles among the following ones. 
<list>
<list-item id="j_info1143_li_007">
<label>(i)</label>
<p><inline-formula id="j_info1143_ineq_044"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}(\mathsf{ID})\to {\mathit{CL}.\mathit{PK}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>. This oracle receives an input <inline-formula id="j_info1143_ineq_045"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula> and outputs this original public key of the identity <inline-formula id="j_info1143_ineq_046"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_008">
<label>(ii)</label>
<p><inline-formula id="j_info1143_ineq_047"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi>∅</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{ReplacePK}}}(\mathsf{ID},\mathit{CL}.\mathit{PK})\to \varnothing $]]></tex-math></alternatives></inline-formula>. For a public key replacement query <inline-formula id="j_info1143_ineq_048"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{ID},\mathit{CL}.\mathit{PK})$]]></tex-math></alternatives></inline-formula>, it sets <inline-formula id="j_info1143_ineq_049"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{PK}$]]></tex-math></alternatives></inline-formula> as the current public key.</p>
</list-item>
<list-item id="j_info1143_li_009">
<label>(iii)</label>
<p><inline-formula id="j_info1143_ineq_050"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{SecretV}}}(\mathit{CL}.\mathit{PK})\to X$]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1143_ineq_051"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{PK}$]]></tex-math></alternatives></inline-formula> is the original public key of a ceratin identity <inline-formula id="j_info1143_ineq_052"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula> (i.e. <inline-formula id="j_info1143_ineq_053"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{PK}$]]></tex-math></alternatives></inline-formula> has been returned from the oracle <inline-formula id="j_info1143_ineq_054"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>), this oracle returns the secret value <italic>X</italic> corresponding to <inline-formula id="j_info1143_ineq_055"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{PK}$]]></tex-math></alternatives></inline-formula>. Otherwise, it refuses this query.</p>
</list-item>
<list-item id="j_info1143_li_010">
<label>(iv)</label>
<p><inline-formula id="j_info1143_ineq_056"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PartialPK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{PartialPK}}}(\mathsf{ID},\mathit{CL}.\mathit{PK})\to {D_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>. For a partial private key query <inline-formula id="j_info1143_ineq_057"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula>, this oracle runs the algorithm <sans-serif>CL.ExtractPPK</sans-serif> and outputs the result <inline-formula id="j_info1143_ineq_058"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_011">
<label>(v)</label>
<p><inline-formula id="j_info1143_ineq_059"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{NSign}}}(\mathsf{ID},m)\to \mathit{CL}.\sigma $]]></tex-math></alternatives></inline-formula>. If 
<disp-formula id="j_info1143_eq_008">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CL}.{\overline{\mathit{PK}}_{\mathsf{ID}}}\gets {O^{\mathit{CL}.\mathit{CreateU}}},\]]]></tex-math></alternatives>
</disp-formula> 
which means that the current public key <inline-formula id="j_info1143_ineq_060"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> has been provided by the oracle <inline-formula id="j_info1143_ineq_061"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, it outputs a valid signature <inline-formula id="j_info1143_ineq_062"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\sigma $]]></tex-math></alternatives></inline-formula> of <italic>m</italic> under the current public key <inline-formula id="j_info1143_ineq_063"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> of the identity <inline-formula id="j_info1143_ineq_064"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula>. Otherwise, it refuses the query.</p>
</list-item>
</list>
</p></statement><statement id="j_info1143_stat_003"><label>Remark 1.</label>
<p>Originally, “normal” is used to mean that one signing query is normal (or reasonable) for the challenger which knows both the current secret value and partial private key for this query. To make one signing oracle query “normal”, all previous definition models require that the current public key be the original one of the current identity. However, this requirement is only sufficient for that the challenger knows the current secret value, but not necessary. In fact, the sufficient and necessary condition for “normal” signing queries should be that the current public key has been generated by the challenger, or formally the oracle <inline-formula id="j_info1143_ineq_065"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>. For example, the adversary gets Alice’s public key <inline-formula id="j_info1143_ineq_066"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$p{k_{A}}$]]></tex-math></alternatives></inline-formula> and Bob’s public key <inline-formula id="j_info1143_ineq_067"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$p{k_{B}}$]]></tex-math></alternatives></inline-formula> from the oracle <inline-formula id="j_info1143_ineq_068"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, then requires Alice’s public key to take the value of <inline-formula id="j_info1143_ineq_069"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$p{k_{B}}$]]></tex-math></alternatives></inline-formula> through the oracle <inline-formula id="j_info1143_ineq_070"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{ReplacePK}}}$]]></tex-math></alternatives></inline-formula>, and finally queries the signature corresponding to Alice’s identity and the replaced (not original) public key. In this example, although Alice’s public key has been replaced, the challenger still knows the current secret value and hence this signing query should be called “normal”. In fact, our definition for “normal” captures this example, while previous security models leave it out.</p></statement>
<list>
<list-item id="j_info1143_li_012">
<label>(vi)</label>
<p><inline-formula id="j_info1143_ineq_071"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{SSign}}}(\mathsf{ID},m)\to \mathit{CL}.\sigma $]]></tex-math></alternatives></inline-formula>. For a super signing query <inline-formula id="j_info1143_ineq_072"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{ID},m)$]]></tex-math></alternatives></inline-formula>, it outputs a valid signature <inline-formula id="j_info1143_ineq_073"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\sigma $]]></tex-math></alternatives></inline-formula> of <italic>m</italic> under the current public key <inline-formula id="j_info1143_ineq_074"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> of the identity <inline-formula id="j_info1143_ineq_075"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
<p>Every attack model <inline-formula id="j_info1143_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> has its own set <inline-formula id="j_info1143_ineq_077"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{O}_{\mathcal{A}}}$]]></tex-math></alternatives></inline-formula> of allowed oracles. In particular, with <inline-formula id="j_info1143_ineq_078"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateUser</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathcal{O}^{\prime }}=\{{O^{\mathit{CL}.\mathit{CreateUser}}},{O^{\mathit{CL}.\mathit{ReplacePK}}},{O^{\mathit{CL}.\mathit{SecretV}}}\}$]]></tex-math></alternatives></inline-formula> being commonly allowed, 
<disp-formula id="j_info1143_eq_009">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PartialPK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PartialPK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l@{\hskip4.0pt}l}{\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CL}.\mathit{NSign}}},{O^{\mathit{CL}.\mathit{PartialPK}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CL.Normal-}{\mathcal{A}^{I}},\\ {} {\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CL}.\mathit{SSign}}},{O^{\mathit{CL}.\mathit{PartialPK}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CL.Super-}{\mathcal{A}^{I}},\\ {} {\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CL}.\mathit{NSign}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CL.Normal-}{\mathcal{A}^{\mathit{II}}},\\ {} {\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CL}.\mathit{SSign}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CL.Super-}{\mathcal{A}^{\mathit{II}}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
(3) <sans-serif>Output</sans-serif>: After all queries, <inline-formula id="j_info1143_ineq_079"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> outputs a forgery <inline-formula id="j_info1143_ineq_080"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<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" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathsf{ID}^{\ast }},{m^{\ast }},\mathit{CL}.{\sigma ^{\ast }})$]]></tex-math></alternatives></inline-formula>. Let <inline-formula id="j_info1143_ineq_081"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}$]]></tex-math></alternatives></inline-formula> be the current public key of <inline-formula id="j_info1143_ineq_082"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{ID}^{\ast }}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_info1143_ineq_083"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is said to win the game if the forgery satisfies the following restrictions to ensure that the successful forgery is nontrivial. It is well-known that the basic security requirement for CLS is that both the secret value and the partial private key are the two indispensable factors for generating a CLS signature. In other words, any forgery generated by the attacker who knows at most one of these two indispensable factors should be accepted as successful.</p>
<p>(i) For <inline-formula id="j_info1143_ineq_084"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{A}\in \{\text{CL.Normal-}{\mathcal{A}^{I}},\text{CL.Super-}{\mathcal{A}^{I}},\text{CL.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CL.Super-}{\mathcal{A}^{\mathit{II}}}\}$]]></tex-math></alternatives></inline-formula>, it is commonly required that 
<disp-formula id="j_info1143_eq_010">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">mpk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.param</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</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[\[ 1=\mathsf{CL}.\mathsf{Verify}\big(\mathit{CL}.\mathit{mpk},\text{CL.param},{\mathsf{ID}^{\ast }},\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}},{m^{\ast }},\mathit{CL}.{\sigma ^{\ast }}\big),\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1143_eq_011">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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 maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Sign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \big({\mathsf{ID}^{\ast }},{m^{\ast }}\big)\nrightarrow {O^{\mathit{CL}.\mathit{Sign}}},\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_info1143_eq_012">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Sign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Sign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</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[\[\begin{array}{l@{\hskip4.0pt}l}{O^{\mathit{CL}.\mathit{Sign}}}={O^{\mathit{CL}.\mathit{NSign}}},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CL.Normal-}{\mathcal{A}^{I}},\text{CL.Normal-}{\mathcal{A}^{\mathit{II}}}\big\},\\ {} {O^{\mathit{CL}.\mathit{Sign}}}={O^{\mathit{CL}.\mathit{SSign}}},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CL.Super-}{\mathcal{A}^{I}},\text{CL.Super-}{\mathcal{A}^{\mathit{II}}}\big\}.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
Here, we use the notation ↛ to denote that the query <inline-formula id="j_info1143_ineq_085"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathsf{ID}^{\ast }},{m^{\ast }})$]]></tex-math></alternatives></inline-formula> has never been provided to the oracle <inline-formula id="j_info1143_ineq_086"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Sign</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{Sign}}}$]]></tex-math></alternatives></inline-formula>. This restriction ensures that the signature is valid and not trivially obtained from the signing oracle.</p>
<p>(ii) For <inline-formula id="j_info1143_ineq_087"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{A}\in \{\text{CL.Normal-}{\mathcal{A}^{I}},\text{CL.Super-}{\mathcal{A}^{I}}\}$]]></tex-math></alternatives></inline-formula>, additionally, it is required that 
<disp-formula id="j_info1143_eq_013">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PartialPK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathsf{ID}^{\ast }}\nrightarrow {O^{\mathit{CL}.\mathit{PartialPK}}}.\]]]></tex-math></alternatives>
</disp-formula> 
This restriction ensures that the target partial private key is not known by <inline-formula id="j_info1143_ineq_088"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
<p>(iii) For <inline-formula id="j_info1143_ineq_089"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mtext>CL.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CL.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{A}\in \{\text{CL.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CL.Super-}{\mathcal{A}^{\mathit{II}}}\}$]]></tex-math></alternatives></inline-formula>, additionally, it is required that 
<disp-formula id="j_info1143_eq_014">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}\nrightarrow {O^{\mathit{CL}.\mathit{SecretV}}},\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1143_eq_015">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}\gets {O^{\mathit{CL}.\mathit{CreateU}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_info1143_ineq_090"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}\gets {O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula> means that <inline-formula id="j_info1143_ineq_091"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}$]]></tex-math></alternatives></inline-formula> is provided by the oracle <inline-formula id="j_info1143_ineq_092"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>. <statement id="j_info1143_stat_004"><label>Remark 2.</label>
<p>Fundamentally speaking, the original purpose for this restriction is to ensure that the target secret value is not trivially known by Type II adversary. For this purpose, the type II adversary is prohibited from generating the target public key by himself. In fact, previous security definitions require that the target public key must be the original one for the target identity, while our definition only requires that the current public key must come from the challenger, or formally the oracle <inline-formula id="j_info1143_ineq_093"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>. For example, the adversary gets Alice’s public key <inline-formula id="j_info1143_ineq_094"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$p{k_{A}}$]]></tex-math></alternatives></inline-formula> and Bob’s public key <inline-formula id="j_info1143_ineq_095"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$p{k_{B}}$]]></tex-math></alternatives></inline-formula> from the oracle <inline-formula id="j_info1143_ineq_096"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, then requires Alice’s public key to take the value of <inline-formula id="j_info1143_ineq_097"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">B</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$p{k_{B}}$]]></tex-math></alternatives></inline-formula> through the oracle <inline-formula id="j_info1143_ineq_098"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{ReplacePK}}}$]]></tex-math></alternatives></inline-formula>, and finally forges the signature corresponding to Alice’s identity and her replaced (not original) public key. In this case, although Alice’s public key has been replaced, the adversary still does not know the current secret value and hence this signing forgery should be seen as successful. In fact, our definition formally captures this example, while previous security models leave it out. In fact, this remark for “successful” forgery is somewhat like that for “normal” signing query.</p></statement></p>
</sec>
<sec id="j_info1143_s_007">
<label>3</label>
<title>Certificate-Based Signature</title><statement id="j_info1143_stat_005"><label>Definition 3.</label>
<p>A Certificate-Based Signature Scheme (CBS) consists of five algorithms as follows. 
<list>
<list-item id="j_info1143_li_013">
<label>(i)</label>
<p><inline-formula id="j_info1143_ineq_099"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Setup</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{CB}.\mathsf{Setup}({1^{k}})\to (\mathit{CB}.\mathit{msk},\mathit{CB}.\mathit{param})$]]></tex-math></alternatives></inline-formula>. It takes as input the security parameter <inline-formula id="j_info1143_ineq_100"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${1^{k}}$]]></tex-math></alternatives></inline-formula> and returns the certifier’s master secret key <inline-formula id="j_info1143_ineq_101"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{msk}$]]></tex-math></alternatives></inline-formula> and the system parameter <inline-formula id="j_info1143_ineq_102"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula> that includes the description of a string space Γ, which can be any subset of <inline-formula id="j_info1143_ineq_103"><alternatives><mml:math>
<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:math><tex-math><![CDATA[${\{0,1\}^{\ast }}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_014">
<label>(ii)</label>
<p><inline-formula id="j_info1143_ineq_104"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">GenUK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{CB}.\mathsf{GenUK}(\mathit{CB}.\mathit{param})\to ({\mathit{CB}.\mathit{PK}_{\mathit{ID}}},{\mathit{CB}.\mathit{SK}_{\mathit{ID}}})$]]></tex-math></alternatives></inline-formula>. It takes input the system parameter <inline-formula id="j_info1143_ineq_105"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, and outputs the secet/public key pair <inline-formula id="j_info1143_ineq_106"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{SK}_{\mathit{ID}}},{\mathit{PK}_{\mathit{ID}}})$]]></tex-math></alternatives></inline-formula> for a certain entity <inline-formula id="j_info1143_ineq_107"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_015">
<label>(iii)</label>
<p><inline-formula id="j_info1143_ineq_108"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Cert</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{CB}.\mathsf{Cert}(\mathit{CB}.\mathit{msk},\mathit{CB}.\mathit{param},\mathit{ID},{\mathit{CB}.\mathit{PK}_{\mathit{ID}}})\to {\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. It takes as input the master secret key <inline-formula id="j_info1143_ineq_109"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{msk}$]]></tex-math></alternatives></inline-formula>, the system parameter <inline-formula id="j_info1143_ineq_110"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, the identity <inline-formula id="j_info1143_ineq_111"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> and its public key <inline-formula id="j_info1143_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, and outputs the certificate <inline-formula id="j_info1143_ineq_113"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_016">
<label>(iv)</label>
<p><inline-formula id="j_info1143_ineq_114"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Sign</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{CB}.\mathsf{Sign}(\mathit{CB}.\mathit{param},\mathit{ID},{\mathit{CB}.\mathit{PK}_{\mathit{ID}}},{\mathit{cert}_{\mathit{ID}}},{\mathit{CB}.\mathit{SK}_{\mathit{ID}}},m)\to \mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula>. It takes as input the system parameter <inline-formula id="j_info1143_ineq_115"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, the identity <inline-formula id="j_info1143_ineq_116"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>, the public key <inline-formula id="j_info1143_ineq_117"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{PK}$]]></tex-math></alternatives></inline-formula>, the certificate <inline-formula id="j_info1143_ineq_118"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, the secret key <inline-formula id="j_info1143_ineq_119"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CB}.\mathit{SK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> and the message <italic>m</italic>, and outputs the signature <inline-formula id="j_info1143_ineq_120"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_017">
<label>(v)</label>
<p><inline-formula id="j_info1143_ineq_121"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</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:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">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[$\mathsf{CB}.\mathsf{Verify}(\mathit{CB}.\mathit{param},\mathit{ID},{\mathit{CB}.\mathit{PK}_{\mathit{ID}}},m,\mathit{CB}.\sigma )\to b\in \{0,1\}$]]></tex-math></alternatives></inline-formula>. It takes as input the system parameter <inline-formula id="j_info1143_ineq_122"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, an identity <inline-formula id="j_info1143_ineq_123"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>, this identity’s public key <inline-formula id="j_info1143_ineq_124"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> and a message/signature pair <inline-formula id="j_info1143_ineq_125"><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:mi mathvariant="italic">CB</mml:mi>
<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[$(m,\mathit{CB}.\sigma )$]]></tex-math></alternatives></inline-formula>, and outputs 1 if the signature is correct, or 0 otherwise.</p>
</list-item>
</list>
</p></statement><statement id="j_info1143_stat_006"><label>Definition 4.</label>
<p>A CBS scheme is CB-EUF-CMCI secure against a certain kind of adversary 
<disp-formula id="j_info1143_eq_016">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathcal{A}\in \big\{\text{CB.Normal-}{\mathcal{A}^{I}},\text{CB.Super-}{\mathcal{A}^{I}},\text{CB.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CB.Super-}{\mathcal{A}^{\mathit{II}}}\big\},\]]]></tex-math></alternatives>
</disp-formula> 
if no polynomially bounded adversary <inline-formula id="j_info1143_ineq_126"><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 success probability in the following CBS game. In this definition, 
<disp-formula id="j_info1143_eq_017">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \text{CB.Normal-}{\mathcal{A}^{I}},\hspace{2.5pt}\text{CB.Super-}{\mathcal{A}^{I}},\hspace{2.5pt}\text{CB.Normal-}{\mathcal{A}^{\mathit{II}}},\hspace{2.5pt}\text{CB.Super-}{\mathcal{A}^{\mathit{II}}}\]]]></tex-math></alternatives>
</disp-formula> 
will be called normal Type I adversary, super Type I adversary, normal Type II adversary, and super Type II adversary respectively.</p>
<p>(1) <sans-serif>Initial</sans-serif>: the challenger runs the algorithm <sans-serif>CB.Setup</sans-serif>, returns <inline-formula id="j_info1143_ineq_127"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Params</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{Params}$]]></tex-math></alternatives></inline-formula> and the auxiliary information <inline-formula id="j_info1143_ineq_128"><alternatives><mml:math>
<mml:mi mathvariant="italic">aux</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">nil</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathit{aux}\in \{\mathit{nil},\mathit{CB}.\mathit{msk}\}$]]></tex-math></alternatives></inline-formula> to the attack <inline-formula id="j_info1143_ineq_129"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> (<inline-formula id="j_info1143_ineq_130"><alternatives><mml:math>
<mml:mi mathvariant="italic">nil</mml:mi></mml:math><tex-math><![CDATA[$\mathit{nil}$]]></tex-math></alternatives></inline-formula> means nothing), where 
<disp-formula id="j_info1143_eq_018">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">aux</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">nil</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">aux</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</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[\[\begin{array}{l@{\hskip4.0pt}l}\mathit{aux}=\mathit{nil},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CB.Normal-}{\mathcal{A}^{I}},\text{CB.Super-}{\mathcal{A}^{I}}\big\},\\ {} \mathit{aux}=\mathit{CB}.\mathit{msk},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CB.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CB.Super-}{\mathcal{A}^{\mathit{II}}}\big\}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>(2) <sans-serif>Queries</sans-serif>: in this phase, <inline-formula id="j_info1143_ineq_131"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can adaptively make requests to a few oracles among the following ones. 
<list>
<list-item id="j_info1143_li_018">
<label>(i)</label>
<p><inline-formula id="j_info1143_ineq_132"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}(\mathit{ID})\to {\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. This oracle receives an input <inline-formula id="j_info1143_ineq_133"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> and outputs this original public key of the identity <inline-formula id="j_info1143_ineq_134"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_019">
<label>(ii)</label>
<p><inline-formula id="j_info1143_ineq_135"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi>∅</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{ReplacePK}}}(\mathit{ID},\mathit{CB}.\mathit{PK})\to \varnothing $]]></tex-math></alternatives></inline-formula>. For a public key replacement query <inline-formula id="j_info1143_ineq_136"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathit{ID},\mathit{CB}.\mathit{PK})$]]></tex-math></alternatives></inline-formula>, it sets <inline-formula id="j_info1143_ineq_137"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{PK}$]]></tex-math></alternatives></inline-formula> as the current public key of <inline-formula id="j_info1143_ineq_138"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_020">
<label>(iii)</label>
<p><inline-formula id="j_info1143_ineq_139"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Corrupt}}}(\mathit{ID})\to {\mathit{CB}.\mathit{SK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1143_ineq_140"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> has been submitted to the oracle <inline-formula id="j_info1143_ineq_141"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, this oracle returns the secret key <inline-formula id="j_info1143_ineq_142"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CB}.\mathit{SK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> corresponding to <inline-formula id="j_info1143_ineq_143"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>’s original public key. Otherwise, it first makes the oracle query <inline-formula id="j_info1143_ineq_144"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}(\mathit{ID})$]]></tex-math></alternatives></inline-formula> and then the oracle query <inline-formula id="j_info1143_ineq_145"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Corrupt}}}(\mathit{ID})$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_021">
<label>(iv)</label>
<p><inline-formula id="j_info1143_ineq_146"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Cert</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Cert}}}(\mathit{ID},\mathit{CB}.\mathit{PK})\to {\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. For this certification query, this oracle gets the result <inline-formula id="j_info1143_ineq_147"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> by running the algorithm <sans-serif>CB.Cert</sans-serif> and outputs it.</p>
</list-item>
<list-item id="j_info1143_li_022">
<label>(v)</label>
<p><inline-formula id="j_info1143_ineq_148"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{NSign}}}(\mathit{ID},m)\to \mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1143_ineq_149"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> has been submitted to <inline-formula id="j_info1143_ineq_150"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, it outputs a valid signature <inline-formula id="j_info1143_ineq_151"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula> of <italic>m</italic> under the original public key <inline-formula id="j_info1143_ineq_152"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> of the identity <inline-formula id="j_info1143_ineq_153"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>. Otherwise, it refuses the query.</p>
</list-item>
<list-item id="j_info1143_li_023">
<label>(vi)</label>
<p><inline-formula id="j_info1143_ineq_154"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{SSign}}}(\mathit{ID},m)\to \mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula>. For a super signing query <inline-formula id="j_info1143_ineq_155"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathit{ID},m)$]]></tex-math></alternatives></inline-formula>, it outputs a valid signature <inline-formula id="j_info1143_ineq_156"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula> of <italic>m</italic> under the current public key <inline-formula id="j_info1143_ineq_157"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> of the identity <inline-formula id="j_info1143_ineq_158"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</p>
<p>Every attack model <inline-formula id="j_info1143_ineq_159"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> has its own set <inline-formula id="j_info1143_ineq_160"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{O}_{\mathcal{A}}}$]]></tex-math></alternatives></inline-formula> of allowed oracles. In particular, with <inline-formula id="j_info1143_ineq_161"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateUser</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathcal{O}^{\prime }}=\{{O^{\mathit{CB}.\mathit{CreateUser}}},{O^{\mathit{CB}.\mathit{ReplacePK}}},{O^{\mathit{CB}.\mathit{Corrupt}}}\}$]]></tex-math></alternatives></inline-formula> being commonly allowed, 
<disp-formula id="j_info1143_eq_019">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Cert</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Cert</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>∪</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l@{\hskip4.0pt}l}{\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CB}.\mathit{NSign}}},{O^{\mathit{CB}.\mathit{Cert}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CB.Normal-}{\mathcal{A}^{I}},\\ {} {\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CB}.\mathit{SSign}}},{O^{\mathit{CB}.\mathit{Cert}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CB.Super-}{\mathcal{A}^{I}},\\ {} {\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CB}.\mathit{NSign}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CB.Normal-}{\mathcal{A}^{\mathit{II}}},\\ {} {\mathcal{O}_{\mathcal{A}}}={\mathcal{O}^{\prime }}\cup \big\{{O^{\mathit{CB}.\mathit{SSign}}}\big\},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}=\text{CB.Super-}{\mathcal{A}^{\mathit{II}}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>(3) <sans-serif>Output</sans-serif>: after all queries, <inline-formula id="j_info1143_ineq_162"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> outputs a forgery <inline-formula id="j_info1143_ineq_163"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<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" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}^{\ast }},{m^{\ast }},\mathit{CB}.{\sigma ^{\ast }})$]]></tex-math></alternatives></inline-formula>. Let <inline-formula id="j_info1143_ineq_164"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}$]]></tex-math></alternatives></inline-formula> be the current public key of <inline-formula id="j_info1143_ineq_165"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{ID}^{\ast }}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_info1143_ineq_166"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> is said to win the game if this forgery satisfies the following requirements. 
<list>
<list-item id="j_info1143_li_024">
<label>(i)</label>
<p>For <inline-formula id="j_info1143_ineq_167"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{A}\in \{\text{CB.Normal-}{\mathcal{A}^{I}},\text{CB.Super-}{\mathcal{A}^{I}},\text{CB.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CB.Super-}{\mathcal{A}^{\mathit{II}}}\}$]]></tex-math></alternatives></inline-formula>, it is commonly required that 
<disp-formula id="j_info1143_eq_020">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mn>1</mml:mn>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">mpk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</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[\[ 1=\mathsf{CB}.\mathsf{Verify}\big(\mathit{CB}.\mathit{mpk},\mathit{CB}.\mathit{param},{\mathit{ID}^{\ast }},\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}},{m^{\ast }},\mathit{CB}.{\sigma ^{\ast }}\big),\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1143_eq_021">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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 maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Sign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \big({\mathit{ID}^{\ast }},{m^{\ast }}\big)\nrightarrow {O^{\mathit{Sign}}},\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_info1143_eq_022">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mtext>B.Sign</mml:mtext>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mtext>B.Sign</mml:mtext>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>for</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true">{</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</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[\[\begin{array}{l@{\hskip4.0pt}l}{O^{C\text{B.Sign}}}={O^{\mathit{CB}.\mathit{NSign}}},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CB.Normal-}{\mathcal{A}^{I}},\text{CB.Normal-}{\mathcal{A}^{\mathit{II}}}\big\},\\ {} {O^{C\text{B.Sign}}}={O^{\mathit{CB}.\mathit{SSign}}},\hspace{1em}& \text{for}\hspace{2.5pt}\mathcal{A}\in \big\{\text{CB.Super-}{\mathcal{A}^{I}},\text{CB.Super-}{\mathcal{A}^{\mathit{II}}}\big\}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1143_li_025">
<label>(ii)</label>
<p>For <inline-formula id="j_info1143_ineq_168"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{A}\in \{\text{CB.Normal-}{\mathcal{A}^{I}},\text{CB.Super-}{\mathcal{A}^{I}}\}$]]></tex-math></alternatives></inline-formula>, additionally, it is required that 
<disp-formula id="j_info1143_eq_023">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Cert</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{ID}^{\ast }}\nrightarrow {O^{\mathit{CB}.\mathit{Cert}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1143_li_026">
<label>(iii)</label>
<p>For <inline-formula id="j_info1143_ineq_169"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mtext>CB.Normal-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mtext>CB.Super-</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mathcal{A}\in \{\text{CB.Normal-}{\mathcal{A}^{\mathit{II}}},\text{CB.Super-}{\mathcal{A}^{\mathit{II}}}\}$]]></tex-math></alternatives></inline-formula>, additionally, it is required that 
<disp-formula id="j_info1143_eq_024">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{ID}^{\ast }}\nrightarrow {O^{\mathit{CB}.\mathit{Corrupt}}},\]]]></tex-math></alternatives>
</disp-formula> 
and 
<disp-formula id="j_info1143_eq_025">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<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{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}={O^{\mathit{CB}.\mathit{CreateU}}}({\mathit{ID}^{\ast }}).\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list>
</p></statement>
</sec>
<sec id="j_info1143_s_008">
<label>4</label>
<title>Generic Construction CLS-2-CBS and Security Proof</title>
<p>Let <inline-formula id="j_info1143_ineq_170"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> be a CLS scheme 
<disp-formula id="j_info1143_eq_026">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Setup</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">SetSV</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">SetPK</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">ExtractPPK</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Sign</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\Pi ^{\mathit{CL}}}=(\mathsf{CL}.\mathsf{Setup},\mathsf{CL}.\mathsf{SetSV},\mathsf{CL}.\mathsf{SetPK},\mathsf{CL}.\mathsf{ExtractPPK},\mathsf{CL}.\mathsf{Sign},\mathsf{CL}.\mathsf{Verify}),\]]]></tex-math></alternatives>
</disp-formula> 
with algorithms as specified in Definition <xref rid="j_info1143_stat_001">1</xref>. Then a CBS scheme 
<disp-formula id="j_info1143_eq_027">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Setup</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">GenUK</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Cert</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Sign</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\Pi ^{\mathit{CL}}}=(\mathsf{CB}.\mathsf{Setup},\mathsf{CB}.\mathsf{GenUK},\mathsf{CB}.\mathsf{Cert},\mathsf{CB}.\mathsf{Sign},\mathsf{CB}.\mathsf{Verify})\]]]></tex-math></alternatives>
</disp-formula> 
is defined as follows. Let Γ be the identity information space for <inline-formula id="j_info1143_ineq_171"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_172"><alternatives><mml:math>
<mml:mi mathvariant="script">PKCB</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{PKCB}$]]></tex-math></alternatives></inline-formula> be the public key space for <inline-formula id="j_info1143_ineq_173"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_174"><alternatives><mml:math>
<mml:mi mathvariant="script">IDCL</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{IDCL}$]]></tex-math></alternatives></inline-formula> denotes the space of identities for <inline-formula id="j_info1143_ineq_175"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula>. Without loss of generality, we assume that <inline-formula id="j_info1143_ineq_176"><alternatives><mml:math>
<mml:mi mathvariant="script">IDCL</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Γ</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="script">PKCB</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{IDCL}=\Gamma \times \mathcal{PKCB}$]]></tex-math></alternatives></inline-formula>.</p>
<p>(1) <sans-serif>CB.Setup</sans-serif>. On input a security parameter <inline-formula id="j_info1143_ineq_177"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${1^{k}}$]]></tex-math></alternatives></inline-formula>, first run 
<disp-formula id="j_info1143_eq_028">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">←</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Setup</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<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{CL}.\mathit{msk},\mathit{CL}.\mathit{param})\gets \mathsf{CL}.\mathsf{Setup}\big({1^{k}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
Then set <inline-formula id="j_info1143_ineq_178"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{msk}=\mathit{CL}.\mathit{msk}$]]></tex-math></alternatives></inline-formula>. Define <inline-formula id="j_info1143_ineq_179"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula> by extending <inline-formula id="j_info1143_ineq_180"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula> to include some other relative information. The output is <inline-formula id="j_info1143_ineq_181"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathit{CB}.\mathit{msk},\mathit{CB}.\mathit{param})$]]></tex-math></alternatives></inline-formula>.</p>
<p>(2) <sans-serif>CB.GenUK</sans-serif>. On input <inline-formula id="j_info1143_ineq_182"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, first extract <inline-formula id="j_info1143_ineq_183"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula> from <inline-formula id="j_info1143_ineq_184"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>. Run 
<disp-formula id="j_info1143_eq_029">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="right center left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mo stretchy="false">←</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">SetSV</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mtd>
<mml:mtd class="array">
<mml:mo stretchy="false">←</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Set</mml:mi>
<mml:mi mathvariant="sans-serif">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<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[\[\begin{array}{r@{\hskip4.0pt}c@{\hskip4.0pt}l}X& \gets & \mathsf{CL}.\mathsf{SetSV}(\mathit{CL}.\mathit{param}),\\ {} \mathit{CL}.\mathit{PK}& \gets & \mathsf{CL}.\mathsf{Set}\mathsf{PK}(\mathit{CL}.\mathit{param},X).\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
The output is <inline-formula id="j_info1143_ineq_185"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
<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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathit{CB}.\mathit{PK},\mathit{CB}.\mathit{SK})=(\mathit{CL}.\mathit{PK},X)$]]></tex-math></alternatives></inline-formula>.</p>
<p>(3) <sans-serif>CB.Cert</sans-serif>. On input <inline-formula id="j_info1143_ineq_186"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{msk},\mathit{CB}.\mathit{param},\mathit{ID},{\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, first extract <inline-formula id="j_info1143_ineq_187"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula> from <inline-formula id="j_info1143_ineq_188"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>. Set the <inline-formula id="j_info1143_ineq_189"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||{\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_190"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{msk}=\mathit{CB}.\mathit{msk}$]]></tex-math></alternatives></inline-formula>. The output is 
<disp-formula id="j_info1143_eq_030">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">ExtractPPK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<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{cert}_{\mathit{ID}}}\gets \mathsf{CL}.\mathsf{ExtractPPK}(\mathit{CL}.\mathit{param},\mathit{CL}.\mathit{msk},\mathsf{ID}).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>(4) <sans-serif>CB.Sign</sans-serif>. On input <inline-formula id="j_info1143_ineq_191"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_192"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_193"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CB}.\mathit{SK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, <italic>m</italic>, first extract <inline-formula id="j_info1143_ineq_194"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula> from <inline-formula id="j_info1143_ineq_195"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>. Then set <inline-formula id="j_info1143_ineq_196"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||{\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_197"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CL}.\mathit{PK}_{\mathsf{ID}}}={\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_198"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{\mathsf{ID}}}={\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_199"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${X_{\mathsf{ID}}}={\mathit{CB}.\mathit{SK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. The output is 
<disp-formula id="j_info1143_eq_031">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Sign</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">L</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<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{CB}.\sigma \gets \mathsf{CL}.\mathsf{Sign}(CL.param,\mathsf{ID},{\mathit{CL}.\mathit{PK}_{\mathsf{ID}}},{D_{\mathsf{ID}}},{X_{\mathsf{ID}}},m).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>(5) <sans-serif>CB.Verify</sans-serif>. On input <inline-formula id="j_info1143_ineq_200"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</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:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param},\mathit{ID},{\mathit{CB}.\mathit{PK}_{\mathit{ID}}},m,\mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula>, extract <inline-formula id="j_info1143_ineq_201"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{param}$]]></tex-math></alternatives></inline-formula> from <inline-formula id="j_info1143_ineq_202"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula>. Set <inline-formula id="j_info1143_ineq_203"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||{\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_204"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{CL}.\mathit{PK}_{\mathit{ID}}}={\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_205"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\sigma =\mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula>. The output is 
<disp-formula id="j_info1143_eq_032">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi>
<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[\[ b\gets \mathsf{CL}.\mathsf{Verify}(\mathit{CL}.\mathit{param},\mathsf{ID},{\mathit{CL}.\mathit{PK}_{\mathsf{ID}}},m,\mathit{CL}.\sigma ).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The following four theorems deal with the four kinds of adversaries respectively. As will be seen, all these security reductions are perfectly tight and depend on no random oracles. These two reduction features show that both concepts of CBS and CLS are very closely related to each other. <statement id="j_info1143_stat_007"><label>Theorem 1.</label>
<p><italic>Suppose that</italic> <inline-formula id="j_info1143_ineq_206"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> <italic>is a super Type I adversary against</italic> <inline-formula id="j_info1143_ineq_207"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and running time t. Then there is a super Type I adversary</italic> <inline-formula id="j_info1143_ineq_208"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> <italic>against</italic> <inline-formula id="j_info1143_ineq_209"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and running time</italic> <inline-formula id="j_info1143_ineq_210"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(t)$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_info1143_stat_008"><label>Proof.</label>
<p>Let <inline-formula id="j_info1143_ineq_211"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> denote the <inline-formula id="j_info1143_ineq_212"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> challenger against <inline-formula id="j_info1143_ineq_213"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_info1143_ineq_214"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> mounts a Type I attack on <inline-formula id="j_info1143_ineq_215"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> by simulating the challenger for <inline-formula id="j_info1143_ineq_216"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> and using help from <inline-formula id="j_info1143_ineq_217"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> as follows.</p>
<p><sans-serif>Initial</sans-serif> phase for CBS game. <inline-formula id="j_info1143_ineq_218"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> obtains from <inline-formula id="j_info1143_ineq_219"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> the system parameter of <inline-formula id="j_info1143_ineq_220"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> and extends it into the system parameter <inline-formula id="j_info1143_ineq_221"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_222"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> as done in <inline-formula id="j_info1143_ineq_223"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Setup</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{CB}.\mathsf{Setup}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_224"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_info1143_ineq_225"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> supplies <inline-formula id="j_info1143_ineq_226"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{param}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1143_ineq_227"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>.</p>
<p><sans-serif>Queries</sans-serif> Phase for CBS game. When <inline-formula id="j_info1143_ineq_228"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> enters the <sans-serif>Queries</sans-serif> phase for the CBS game, <inline-formula id="j_info1143_ineq_229"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> accordingly enters the <sans-serif>Queries</sans-serif> phase of the CLS game. For the oracle queries from <inline-formula id="j_info1143_ineq_230"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_231"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> handles these queries as follows.</p>
<p>(1) <inline-formula id="j_info1143_ineq_232"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}(\mathit{ID})\to {\mathit{CB}.\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. If the query <inline-formula id="j_info1143_ineq_233"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> has been submitted to the oracle <inline-formula id="j_info1143_ineq_234"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, it will directly return the previous answer which is recorded in the list <italic>L</italic>. Otherwise, it does as follows. <inline-formula id="j_info1143_ineq_235"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> chooses a random identity <inline-formula id="j_info1143_ineq_236"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{ID}^{\prime }}$]]></tex-math></alternatives></inline-formula> and obtains its original public key <inline-formula id="j_info1143_ineq_237"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime }}}}$]]></tex-math></alternatives></inline-formula> through the oracle <inline-formula id="j_info1143_ineq_238"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>. It sets <inline-formula id="j_info1143_ineq_239"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||{\mathit{CB}.\mathit{PK}_{{\mathsf{ID}^{\prime }}}}$]]></tex-math></alternatives></inline-formula> and requires the oracle <inline-formula id="j_info1143_ineq_240"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{ReplacePK}}}$]]></tex-math></alternatives></inline-formula> to change the public key of <inline-formula id="j_info1143_ineq_241"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula> into <inline-formula id="j_info1143_ineq_242"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime }}}}$]]></tex-math></alternatives></inline-formula>. In this case, the CBS original public key of ID is the CLS original public key of <inline-formula id="j_info1143_ineq_243"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{ID}^{\prime }}$]]></tex-math></alternatives></inline-formula>. In other words, every original public key for <inline-formula id="j_info1143_ineq_244"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> is related with a certain original public key for <inline-formula id="j_info1143_ineq_245"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Additionally, to record the above operations for future use, <inline-formula id="j_info1143_ineq_246"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> sets the original public key 
<disp-formula id="j_info1143_eq_033">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}}=\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime }}}}\]]]></tex-math></alternatives>
</disp-formula> 
and the current public key 
<disp-formula id="j_info1143_eq_034">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}=\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime }}}},\]]]></tex-math></alternatives>
</disp-formula> 
and adds the tuple 
<disp-formula id="j_info1143_eq_035">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<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[\[ \big(\mathit{ID},{\mathsf{ID}^{\prime }},\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}},\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}\big)\]]]></tex-math></alternatives>
</disp-formula> 
to the initially empty list <italic>L</italic>.</p>
<p>(2) <inline-formula id="j_info1143_ineq_247"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi>∅</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{ReplacePK}}}(\mathit{ID},\mathit{CB}.\mathit{PK})\to \varnothing $]]></tex-math></alternatives></inline-formula>. If <inline-formula id="j_info1143_ineq_248"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> has not been submitted to the oracle <inline-formula id="j_info1143_ineq_249"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_250"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> first makes the query <inline-formula id="j_info1143_ineq_251"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}(\mathit{ID})$]]></tex-math></alternatives></inline-formula> by himself before the following operations. Otherwise, it directly does the following. <inline-formula id="j_info1143_ineq_252"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> sets <inline-formula id="j_info1143_ineq_253"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||\mathit{CB}.\mathit{PK}$]]></tex-math></alternatives></inline-formula>, and sequentially makes two oracle queries <inline-formula id="j_info1143_ineq_254"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{CreateU}}}(\mathsf{ID})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_255"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{ReplacePK}}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1143_ineq_256"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{ID},\mathit{CB}.\mathit{PK})$]]></tex-math></alternatives></inline-formula> to change the public key value of <inline-formula id="j_info1143_ineq_257"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula> into <inline-formula id="j_info1143_ineq_258"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{PK}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Additionally, to record the above operation, <inline-formula id="j_info1143_ineq_259"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> searches the relative tuple 
<disp-formula id="j_info1143_eq_036">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<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[\[ \big(\mathit{ID},{\mathsf{ID}^{\prime }},\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}},\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}\big),\]]]></tex-math></alternatives>
</disp-formula> 
and then changes the value of <inline-formula id="j_info1143_ineq_260"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> into <inline-formula id="j_info1143_ineq_261"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{PK}$]]></tex-math></alternatives></inline-formula>.</p>
<p>(3) <inline-formula id="j_info1143_ineq_262"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Corrupt}}}(\mathit{ID})\to {\mathit{CB}.\mathit{SK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. Without loss of generality, we assume that <inline-formula id="j_info1143_ineq_263"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> has been submitted to the oracle <inline-formula id="j_info1143_ineq_264"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_info1143_ineq_265"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> searches the corresponding tuple 
<disp-formula id="j_info1143_eq_037">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<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[\[ \big(\mathit{ID},{\mathsf{ID}^{\prime }},\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}},\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}\big)\]]]></tex-math></alternatives>
</disp-formula> 
in the list <italic>L</italic>. Then it makes the oracle query <inline-formula id="j_info1143_ineq_266"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{SecretV}}}(\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}})$]]></tex-math></alternatives></inline-formula> and relays this answer to the attacker <inline-formula id="j_info1143_ineq_267"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>. Here note <inline-formula id="j_info1143_ineq_268"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}}=\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime }}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>(4) <inline-formula id="j_info1143_ineq_269"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Cert</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Cert}}}(\mathit{ID},\mathit{CB}.\mathit{PK})\to {\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>. Without loss of generality, we assume that the current public key <inline-formula id="j_info1143_ineq_270"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}=\mathit{CB}.\mathit{PK}$]]></tex-math></alternatives></inline-formula> in the corresponding tuple 
<disp-formula id="j_info1143_eq_038">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<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[\[ \big(\mathit{ID},{\mathsf{ID}^{\prime }},\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}},\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}\big)\]]]></tex-math></alternatives>
</disp-formula> 
of the list <italic>L</italic>. <inline-formula id="j_info1143_ineq_271"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> sets <inline-formula id="j_info1143_ineq_272"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||\mathit{CB}.\mathit{PK}$]]></tex-math></alternatives></inline-formula>, makes the oracle query <inline-formula id="j_info1143_ineq_273"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PartialPK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{PartialPK}}}(\mathsf{ID})$]]></tex-math></alternatives></inline-formula>, and then relays the returned partial private key <inline-formula id="j_info1143_ineq_274"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${D_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> as the certificate for <inline-formula id="j_info1143_ineq_275"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>(5) <inline-formula id="j_info1143_ineq_276"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{SSign}}}(\mathit{ID},m)\to \mathit{CB}.\sigma $]]></tex-math></alternatives></inline-formula>. For a query <inline-formula id="j_info1143_ineq_277"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathit{ID},m)$]]></tex-math></alternatives></inline-formula>, this oracle browses the list <italic>L</italic> for the corresponding tuple 
<disp-formula id="j_info1143_eq_039">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</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:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \big(\mathit{ID},{\mathsf{ID}^{\prime }},\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}},\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
Then it sets <inline-formula id="j_info1143_ineq_278"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, makes the signing oracle query <inline-formula id="j_info1143_ineq_279"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{SSign}}}(\mathsf{ID},m)$]]></tex-math></alternatives></inline-formula> and relays this answer to <inline-formula id="j_info1143_ineq_280"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>.</p>
<p><sans-serif>Output</sans-serif> for CBS game. Now the attacker <inline-formula id="j_info1143_ineq_281"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> returns its forgery <inline-formula id="j_info1143_ineq_282"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<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" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}^{\ast }},{m^{\ast }},\mathit{CB}.{\sigma ^{\ast }})$]]></tex-math></alternatives></inline-formula>. Without loss of generality, we assume that <inline-formula id="j_info1143_ineq_283"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> has made the oracle query <inline-formula id="j_info1143_ineq_284"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula> or the replacing public key oracle query for <inline-formula id="j_info1143_ineq_285"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{ID}^{\ast }}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_info1143_ineq_286"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> browses the list <italic>L</italic> for the the corresponding tuple 
<disp-formula id="j_info1143_eq_040">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<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[\[ \big({\mathit{ID}^{\ast }},{\mathsf{ID}^{\prime \ast }},\mathit{CB}.{\widetilde{\mathit{PK}}_{{\mathit{ID}^{\ast }}}},\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}\big),\]]]></tex-math></alternatives>
</disp-formula> 
and returns <inline-formula id="j_info1143_ineq_287"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<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" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathsf{ID}^{\ast }},{m^{\ast }},\mathit{CL}.{\sigma ^{\ast }})$]]></tex-math></alternatives></inline-formula> to its challenger <inline-formula id="j_info1143_ineq_288"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula>, where 
<disp-formula id="j_info1143_eq_041">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<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">CB</mml:mi>
<mml:mo>.</mml:mo>
<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:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathsf{ID}^{\ast }}={\mathit{ID}^{\ast }}||\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}},\mathit{CL}.{\sigma ^{\ast }}=\mathit{CB}.{\sigma ^{\ast }}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p><bold>Analysis.</bold> First, from the relations of <inline-formula id="j_info1143_ineq_289"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_290"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula>, it can be easily or trivially seen that <inline-formula id="j_info1143_ineq_291"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> perfectly simulates the game settings for <inline-formula id="j_info1143_ineq_292"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> in the two phases of <sans-serif>Initial</sans-serif> and <sans-serif>Queries</sans-serif>. Second, if the forgery <inline-formula id="j_info1143_ineq_293"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<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" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}^{\ast }},{m^{\ast }},\mathit{CB}.{\sigma ^{\ast }})$]]></tex-math></alternatives></inline-formula> is successful, i.e. this forgery satisfies the three additions: 
<disp-formula id="j_info1143_eq_042">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="right center left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="sans-serif">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>∗</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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 maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mo stretchy="false">↛</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mo stretchy="false">↛</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Cert</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{r@{\hskip4.0pt}c@{\hskip4.0pt}l}\mathsf{CB}.\mathsf{Verify}\big(\mathit{CB}.\mathit{param},{\mathit{ID}^{\ast }},\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}},m\ast ,\mathit{CB}.{\sigma ^{\ast }}\big)& =& 1,\\ {} \big({\mathit{ID}^{\ast }},{m^{\ast }}\big)& \nrightarrow & {O^{\mathit{CB}.\mathit{SSign}}},\\ {} \big({\mathit{ID}^{\ast }},\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}\big)& \nrightarrow & {O^{\mathit{CB}.\mathit{Cert}}},\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
then, by checking these two groups of three restrictions one by one (the above and the below), it easily follows that <inline-formula id="j_info1143_ineq_294"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<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" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathsf{ID}^{\ast }},{m^{\ast }},\mathit{CL}.{\sigma ^{\ast }})$]]></tex-math></alternatives></inline-formula> is also successful, i.e. this forgery satisfies that 
<disp-formula id="j_info1143_eq_043">
<alternatives><mml:math display="block">
<mml:mtable columnspacing="4.0pt 4.0pt" equalrows="false" columnlines="none none" equalcolumns="false" columnalign="right center left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="sans-serif">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">param</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</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:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">σ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mo>=</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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 maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:mo stretchy="false">↛</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mtd>
<mml:mtd class="array">
<mml:mo stretchy="false">↛</mml:mo>
</mml:mtd>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PartialPK</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{r@{\hskip4.0pt}c@{\hskip4.0pt}l}\mathsf{CL}.\mathsf{Verify}\big(\mathit{CL}.\mathit{param},{\mathsf{ID}^{\ast }},\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}},{m^{\ast }},\mathit{CL}.{\sigma ^{\ast }}\big)& =& 1,\\ {} \big({\mathsf{ID}^{\ast }},{m^{\ast }}\big)& \nrightarrow & {O^{\mathit{CL}.\mathit{SSign}}},\\ {} {\mathsf{ID}^{\ast }}& \nrightarrow & {O^{\mathit{CL}.\mathit{PartialPK}}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
Hence, the success probability of <inline-formula id="j_info1143_ineq_295"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> is same to that of <inline-formula id="j_info1143_ineq_296"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>. Additionally, since what <inline-formula id="j_info1143_ineq_297"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> mainly does in reduction is just issuing some relative queries to <inline-formula id="j_info1143_ineq_298"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula>, it is obvious that the time of <inline-formula id="j_info1143_ineq_299"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> is almost equal to the time <italic>t</italic> of <inline-formula id="j_info1143_ineq_300"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>. Hence we say that the running time of <inline-formula id="j_info1143_ineq_301"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> is <inline-formula id="j_info1143_ineq_302"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(t)$]]></tex-math></alternatives></inline-formula>.  □</p></statement><statement id="j_info1143_stat_009"><label>Theorem 2.</label>
<p><italic>Suppose that</italic> <inline-formula id="j_info1143_ineq_303"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> <italic>is a super Type II adversary against</italic> <inline-formula id="j_info1143_ineq_304"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and running time t. Then there is a super Type II adversary</italic> <inline-formula id="j_info1143_ineq_305"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> <italic>against</italic> <inline-formula id="j_info1143_ineq_306"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and</italic> <inline-formula id="j_info1143_ineq_307"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(t)$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_info1143_stat_010"><label>Proof.</label>
<p>Let <inline-formula id="j_info1143_ineq_308"><alternatives><mml:math>
<mml:mi mathvariant="script">C</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{C}$]]></tex-math></alternatives></inline-formula> denote a <inline-formula id="j_info1143_ineq_309"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> challenger against Type II adversary <inline-formula id="j_info1143_ineq_310"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula>. <inline-formula id="j_info1143_ineq_311"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> mounts a Type II attack on <inline-formula id="j_info1143_ineq_312"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> using help from <inline-formula id="j_info1143_ineq_313"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> as follows.</p>
<p><sans-serif>Initial</sans-serif> for CBS game. How <inline-formula id="j_info1143_ineq_314"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> communicates with <inline-formula id="j_info1143_ineq_315"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> is the same to how <inline-formula id="j_info1143_ineq_316"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> communicates with <inline-formula id="j_info1143_ineq_317"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> in the above proof for Theorem <xref rid="j_info1143_stat_007">1</xref>, except that <inline-formula id="j_info1143_ineq_318"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> additionally gets the master private key <inline-formula id="j_info1143_ineq_319"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CL}.\mathit{msk}$]]></tex-math></alternatives></inline-formula> and relays it to <inline-formula id="j_info1143_ineq_320"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> as the master key <inline-formula id="j_info1143_ineq_321"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CB}.\mathit{msk}$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_info1143_ineq_322"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p><sans-serif>Queries</sans-serif> for CBS game. How <inline-formula id="j_info1143_ineq_323"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> answers these queries from <inline-formula id="j_info1143_ineq_324"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> is the same to how <inline-formula id="j_info1143_ineq_325"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> simulates the oracles for <inline-formula id="j_info1143_ineq_326"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> in the above proof for Theorem <xref rid="j_info1143_stat_007">1</xref>, except that <inline-formula id="j_info1143_ineq_327"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> does not query the oracle <inline-formula id="j_info1143_ineq_328"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Cert</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Cert}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p><sans-serif>Output</sans-serif> for CBS game. How <inline-formula id="j_info1143_ineq_329"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> generates the forged signature is the same to how <inline-formula id="j_info1143_ineq_330"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> generates the forged signature in the above proof for Theorem <xref rid="j_info1143_stat_007">1</xref>. Of course, the forged signatures from <inline-formula id="j_info1143_ineq_331"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_332"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> satisfy different conditions.</p>
<p><bold>Analysis</bold>. This analysis can immediately follow from the analysis in the above proof of Theorem <xref rid="j_info1143_stat_007">1</xref>. Here, we only deal with the somewhat difficult part of the analysis. In particular, we will show how to get 
<disp-formula id="j_info1143_eq_044">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>and</mml:mtext>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}\nrightarrow {O^{\mathit{CL}.\mathit{SecretV}}},\hspace{1em}\text{and}\hspace{1em}\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}\gets {O^{\mathit{CL}.\mathit{CreateU}}},\]]]></tex-math></alternatives>
</disp-formula> 
from 
<disp-formula id="j_info1143_eq_045">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>and</mml:mtext>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</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[\[ {\mathit{ID}^{\ast }}\nrightarrow {O^{\mathit{CB}.\mathit{Corrupt}}},\hspace{1em}\text{and}\hspace{1em}\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}={O^{\mathit{CB}.\mathit{CreateU}}}\big({\mathit{ID}^{\ast }}\big),\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_info1143_eq_046">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<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">CB</mml:mi>
<mml:mo>.</mml:mo>
<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:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathsf{ID}^{\ast }}={\mathit{ID}^{\ast }}||\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}},\hspace{2em}\mathit{CL}.{\sigma ^{\ast }}=\mathit{CB}.{\sigma ^{\ast }}.\]]]></tex-math></alternatives>
</disp-formula> 
By checking the simulation of the oracle <inline-formula id="j_info1143_ineq_333"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula> by <inline-formula id="j_info1143_ineq_334"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> for <inline-formula id="j_info1143_ineq_335"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> (same to those in the proof of Theorem <xref rid="j_info1143_stat_007">1</xref>), the equation <inline-formula id="j_info1143_ineq_336"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}={O^{\mathit{CB}.\mathit{CreateU}}}({\mathit{ID}^{\ast }})$]]></tex-math></alternatives></inline-formula> means that the original public key <inline-formula id="j_info1143_ineq_337"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\widetilde{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}$]]></tex-math></alternatives></inline-formula> is equal to the current public key <inline-formula id="j_info1143_ineq_338"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}$]]></tex-math></alternatives></inline-formula>, i.e. that 
<disp-formula id="j_info1143_eq_047">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CB}.{\widetilde{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}=\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}.\]]]></tex-math></alternatives>
</disp-formula> 
By checking the simulation of oracles <inline-formula id="j_info1143_ineq_339"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1143_ineq_340"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">ReplacePK</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{ReplacePK}}}$]]></tex-math></alternatives></inline-formula>, it can be seen that the CLS current public key <inline-formula id="j_info1143_ineq_341"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_342"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> is always equal to the CBS current public key <inline-formula id="j_info1143_ineq_343"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_344"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>. In particular, for <inline-formula id="j_info1143_ineq_345"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathsf{ID}^{\ast }}={\mathit{ID}^{\ast }}||\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}$]]></tex-math></alternatives></inline-formula>, we have 
<disp-formula id="j_info1143_eq_048">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}=\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Let the tuple <inline-formula id="j_info1143_ineq_346"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{ID}^{\ast }},{\mathsf{ID}^{\prime \ast }},\mathit{CB}.{\widetilde{\mathit{PK}}_{{\mathit{ID}^{\ast }}}},\mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}})$]]></tex-math></alternatives></inline-formula> be the corresponding record in <italic>L</italic>. Then by checking the simulation of the oracle <inline-formula id="j_info1143_ineq_347"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula> again, it can be seen that the CBS original public key <inline-formula id="j_info1143_ineq_348"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\widetilde{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}$]]></tex-math></alternatives></inline-formula> is equal to the CLS original public key <inline-formula id="j_info1143_ineq_349"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime \ast }}}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_350"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{ID}^{\prime \ast }}$]]></tex-math></alternatives></inline-formula>, i.e. that 
<disp-formula id="j_info1143_eq_049">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CB}.{\widetilde{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}=\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime \ast }}}}.\]]]></tex-math></alternatives>
</disp-formula> 
By the above three equations, we can get 
<disp-formula id="j_info1143_eq_050">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}=\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime \ast }}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Hence, from 
<disp-formula id="j_info1143_eq_051">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</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[\[ \mathit{CB}.{\overline{\mathit{PK}}_{{\mathit{ID}^{\ast }}}}={O^{\mathit{CB}.\mathit{CreateU}}}\big({\mathit{ID}^{\ast }}\big),\]]]></tex-math></alternatives>
</disp-formula> 
we can get that 
<disp-formula id="j_info1143_eq_052">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}\gets {O^{\mathit{CL}.\mathit{CreateU}}}.\]]]></tex-math></alternatives>
</disp-formula> 
By checking the oracle simulation process provided by <inline-formula id="j_info1143_ineq_351"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> to <inline-formula id="j_info1143_ineq_352"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> (same to those in the proof of Theorem <xref rid="j_info1143_stat_007">1</xref>), it can be seen that <inline-formula id="j_info1143_ineq_353"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{SecretV}}}(\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime \ast }}}})$]]></tex-math></alternatives></inline-formula> is queried by <inline-formula id="j_info1143_ineq_354"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> only when <inline-formula id="j_info1143_ineq_355"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Corrupt}}}({\mathit{ID}^{\ast }})$]]></tex-math></alternatives></inline-formula> is queried by <inline-formula id="j_info1143_ineq_356"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula>. Then by the just proved equation <inline-formula id="j_info1143_ineq_357"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}=\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime \ast }}}}$]]></tex-math></alternatives></inline-formula>, we prove that <inline-formula id="j_info1143_ineq_358"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{SecretV}}}$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1143_ineq_359"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}})$]]></tex-math></alternatives></inline-formula> is queried by <inline-formula id="j_info1143_ineq_360"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula> only when <inline-formula id="j_info1143_ineq_361"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{Corrupt}}}({\mathit{ID}^{\ast }})$]]></tex-math></alternatives></inline-formula> is queried by <inline-formula id="j_info1143_ineq_362"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula>. In other words, from 
<disp-formula id="j_info1143_eq_053">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">Corrupt</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{ID}^{\ast }}\nrightarrow {O^{\mathit{CB}.\mathit{Corrupt}}}\]]]></tex-math></alternatives>
</disp-formula> 
we can get 
<disp-formula id="j_info1143_eq_054">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">↛</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">SecretV</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{CL}.{\overline{\mathit{PK}}_{{\mathsf{ID}^{\ast }}}}\nrightarrow {O^{\mathit{CL}.\mathit{SecretV}}}.\]]]></tex-math></alternatives>
</disp-formula> 
 □</p></statement><statement id="j_info1143_stat_011"><label>Theorem 3.</label>
<p><italic>Suppose that</italic> <inline-formula id="j_info1143_ineq_363"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> <italic>is a normal Type I adversary against</italic> <inline-formula id="j_info1143_ineq_364"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and running time t. Then there is a normal Type I adversary</italic> <inline-formula id="j_info1143_ineq_365"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> <italic>against</italic> <inline-formula id="j_info1143_ineq_366"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and running time</italic> <inline-formula id="j_info1143_ineq_367"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(t)$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_info1143_stat_012"><label>Proof.</label>
<p>The proof for Theorem <xref rid="j_info1143_stat_011">3</xref> is the same to that for Theorem <xref rid="j_info1143_stat_007">1</xref>, except the difference that the CBS normal signing oracle is simulated depending on the CLS normal signing oracle in this proof for Theorem <xref rid="j_info1143_stat_011">3</xref>, while the CBS super signing oracle is simulated depending on the CLS super signing oracle in this proof for Theorem <xref rid="j_info1143_stat_007">1</xref>. Now show how to simulate the CBS normal signing oracle using the CLS normal signing oracle.</p>
<p>For a normal signing query <inline-formula id="j_info1143_ineq_368"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{NSign}}}(\mathit{ID},m)$]]></tex-math></alternatives></inline-formula>, browse the list <italic>L</italic> for the corresponding tuple 
<disp-formula id="j_info1143_eq_055">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</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:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \big(\mathit{ID},{\mathsf{ID}^{\prime }},\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}},\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
Set <inline-formula id="j_info1143_ineq_369"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathit{ID}||\mathit{CB}.{\overline{\mathit{PK}}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> and make the signing oracle query <inline-formula id="j_info1143_ineq_370"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{NSign}}}(\mathsf{ID},m)$]]></tex-math></alternatives></inline-formula> and relay this answer to <inline-formula id="j_info1143_ineq_371"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula>. By checking the simulation of the oracle <inline-formula id="j_info1143_ineq_372"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">CreateU</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CB}.\mathit{CreateU}}}$]]></tex-math></alternatives></inline-formula>, it can be seen that the original CBS public key <inline-formula id="j_info1143_ineq_373"><alternatives><mml:math>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CB}.{\widetilde{\mathit{PK}}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_374"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> is the original CLS public key <inline-formula id="j_info1143_ineq_375"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime }}}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_376"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{ID}^{\prime }}$]]></tex-math></alternatives></inline-formula>, and the original CLS public key <inline-formula id="j_info1143_ineq_377"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo stretchy="true">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\widetilde{\mathit{PK}}_{{\mathsf{ID}^{\prime }}}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_378"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathsf{ID}^{\prime }}$]]></tex-math></alternatives></inline-formula> is the current CLS public key <inline-formula id="j_info1143_ineq_379"><alternatives><mml:math>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="false">
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mo accent="true">‾</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathit{CL}.{\overline{\mathit{PK}}_{\mathsf{ID}}}$]]></tex-math></alternatives></inline-formula> of <inline-formula id="j_info1143_ineq_380"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{ID}$]]></tex-math></alternatives></inline-formula>. Hence, the query <inline-formula id="j_info1143_ineq_381"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathsf{ID},m)$]]></tex-math></alternatives></inline-formula> will not be rejected by the oracle <inline-formula id="j_info1143_ineq_382"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">NSign</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${O^{\mathit{CL}.\mathit{NSign}}}$]]></tex-math></alternatives></inline-formula>. Hence, this proof can immediately follow Theorem <xref rid="j_info1143_stat_007">1</xref>.  □</p></statement><statement id="j_info1143_stat_013"><label>Theorem 4.</label>
<p><italic>Suppose that</italic> <inline-formula id="j_info1143_ineq_383"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> <italic>is a normal Type II adversary against</italic> <inline-formula id="j_info1143_ineq_384"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CB}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and running time t. Then there is a normal Type II adversary</italic> <inline-formula id="j_info1143_ineq_385"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{B}^{I}}$]]></tex-math></alternatives></inline-formula> <italic>against</italic> <inline-formula id="j_info1143_ineq_386"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Π</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">CL</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\Pi ^{\mathit{CL}}}$]]></tex-math></alternatives></inline-formula> <italic>with success probability ϵ and running time</italic> <inline-formula id="j_info1143_ineq_387"><alternatives><mml:math>
<mml:mi mathvariant="italic">O</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$O(t)$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_info1143_stat_014"><label>Proof.</label>
<p>The proof for Theorem <xref rid="j_info1143_stat_013">4</xref> is the same to that for Theorem <xref rid="j_info1143_stat_009">2</xref>, except for the difference that the CBS normal signing oracle is simulated depending on the CLS normal signing oracle in this proof for Theorem <xref rid="j_info1143_stat_013">4</xref>, while the CBS super signing oracle is simulated depending on the CLS super signing oracle in this proof for Theorem <xref rid="j_info1143_stat_009">2</xref>. Additionally, in the proof of Theorem <xref rid="j_info1143_stat_011">3</xref>, we have showed how to simulate the CBS normal signing oracle by using the CLS normal signing oracle. Hence, this proof can immediately follow Theorem <xref rid="j_info1143_stat_009">2</xref> and Theorem <xref rid="j_info1143_stat_011">3</xref>.  □</p></statement></p>
</sec>
<sec id="j_info1143_s_009">
<label>5</label>
<title>Comparison Between CLS-2-CBS with Wu <italic>et al</italic>.’s Result</title>
<p>
<list>
<list-item id="j_info1143_li_027">
<label>(1)</label>
<p>Our generic construction is very similar to that of Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_022">2009</xref>). In particular, if we replace 
<disp-formula id="j_info1143_eq_056">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathsf{ID}=\mathit{ID}||{\mathit{CB}.\mathit{PK}_{\mathit{ID}}}\]]]></tex-math></alternatives>
</disp-formula> 
with 
<disp-formula id="j_info1143_eq_057">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="normal">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mtext>where</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>is a hash function</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathsf{ID}=\mathrm{H}(\mathit{ID}||{\mathrm{CB}.\mathrm{PK}_{\mathit{ID}}}),\hspace{1em}\text{where}\hspace{2.5pt}H\hspace{2.5pt}\text{is a hash function},\]]]></tex-math></alternatives>
</disp-formula> 
then our construction will become identical with Wu <italic>et al</italic>.’s (<xref ref-type="bibr" rid="j_info1143_ref_022">2009</xref>) construction.</p>
</list-item>
<list-item id="j_info1143_li_028">
<label>(2)</label>
<p>Our security proof is in the standard model. Contrastingly, the security proof in Wu <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_022">2009</xref>) relies the assumption that the hash function in <inline-formula id="j_info1143_ineq_388"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">ID</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{ID}=\mathrm{H}(\mathit{ID}||{\mathit{CB}.\mathit{PK}_{\mathit{ID}}})$]]></tex-math></alternatives></inline-formula> is a random oracle. As a result, our method can convert a CLS scheme secure in the standard model into a CBS scheme secure in the standard model. However, through Wu <italic>et al</italic>.’s method, the resulting CBS scheme is only secure in the random oracle model. Of course, the standard model is preferable over the random oracle model in security proof Canetti <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_004">2004</xref>).</p>
</list-item>
<list-item id="j_info1143_li_029">
<label>(3)</label>
<p>We emphasize the theoretical significance of our generic construction. Roughly speaking, by our result, the cryptographic primitive of CBS can be obtained from the single primitive of CLS. However, by Wu <italic>et al</italic>.’s result, the primitive of CBS can not be obtained from the single primitive of CLS, since the random oracle is additionally needed.</p>
</list-item>
<list-item id="j_info1143_li_030">
<label>(4)</label>
<p>To support our generic conversion, the new CLS security model is developed by introducing one nontrivial attack never mentioned before. This new definition succeeds in more elaborately capturing the security notion of CLS. Notably, this new security is inherently preserved in many existing CLS schemes. In other words, our contribution in this respect is that we point out, formalize, and apply this subtle property to refine the close relation between CLS and CBS.</p>
</list-item>
</list>
</p>
</sec>
<sec id="j_info1143_s_010">
<label>6</label>
<title>Application Example – One Concrete CBS scheme</title>
<p>Let <inline-formula id="j_info1143_ineq_389"><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_info1143_ineq_390"><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> be two groups of prime order <italic>q</italic> and let <italic>P</italic> be a generator of <inline-formula id="j_info1143_ineq_391"><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>, where <inline-formula id="j_info1143_ineq_392"><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 additively represented and <inline-formula id="j_info1143_ineq_393"><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 multiplicatively represented. A map <inline-formula id="j_info1143_ineq_394"><alternatives><mml:math>
<mml:mi mathvariant="italic">e</mml:mi>
<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[$e:{\mathbb{G}_{1}}\times {\mathbb{G}_{1}}\to {\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula> is said to be a bilinear pairing, if the following three conditions hold: (1) <italic>e</italic> is bilinear, i.e. <inline-formula id="j_info1143_ineq_395"><alternatives><mml:math>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</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">e</mml:mi>
<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:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$e(aP,bP)=e{(P,P)^{ab}}$]]></tex-math></alternatives></inline-formula> for all <inline-formula id="j_info1143_ineq_396"><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>; (2) <italic>e</italic> is non-degenerate, i.e. <inline-formula id="j_info1143_ineq_397"><alternatives><mml:math>
<mml:mi mathvariant="italic">e</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">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[$e(P,P)\ne 1$]]></tex-math></alternatives></inline-formula>, where 1 is the identity of <inline-formula id="j_info1143_ineq_398"><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>; (3) <italic>e</italic> is efficiently computable.</p>
<p>The CDH problem: given <italic>P</italic>, <inline-formula id="j_info1143_ineq_399"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[$aP$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1143_ineq_400"><alternatives><mml:math>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[$bP$]]></tex-math></alternatives></inline-formula> with uniformly random choices of <inline-formula id="j_info1143_ineq_401"><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:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$a,b\in {\mathbb{Z}_{q}}$]]></tex-math></alternatives></inline-formula>, output <inline-formula id="j_info1143_ineq_402"><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>. An algorithm <inline-formula id="j_info1143_ineq_403"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> has success probability <italic>ϵ</italic> in solving the CDH problem, if 
<disp-formula id="j_info1143_eq_058">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">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:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{Pr}\big[\mathcal{A}(P,aP,bP)=abP\big]=\epsilon ].\]]]></tex-math></alternatives>
</disp-formula> 
The CDH problem is said to be <inline-formula id="j_info1143_ineq_404"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ϵ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(t,\epsilon )$]]></tex-math></alternatives></inline-formula>-intractable if there is no algorithm to solve this problem with time less than <italic>t</italic> and success probability greater than <italic>ϵ</italic>.</p>
<p>The following scheme is constructed from the second CLS scheme in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>) through the generic conversion <inline-formula id="j_info1143_ineq_405"><alternatives><mml:math>
<mml:mi mathvariant="italic">CLS</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CLS}$]]></tex-math></alternatives></inline-formula>-2-<inline-formula id="j_info1143_ineq_406"><alternatives><mml:math>
<mml:mi mathvariant="italic">CBS</mml:mi></mml:math><tex-math><![CDATA[$\mathit{CBS}$]]></tex-math></alternatives></inline-formula>.</p>
<list>
<list-item id="j_info1143_li_031">
<label>(i)</label>
<p><inline-formula id="j_info1143_ineq_407"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Setup</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">params</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{Setup}({1^{k}})\to (\mathit{msk},\mathit{params})$]]></tex-math></alternatives></inline-formula>. This algorithm is run by the authority CA. Let <inline-formula id="j_info1143_ineq_408"><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_info1143_ineq_409"><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> be two groups of prime order <italic>q</italic>, <italic>P</italic> be a generator of <inline-formula id="j_info1143_ineq_410"><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_info1143_ineq_411"><alternatives><mml:math>
<mml:mi mathvariant="italic">e</mml:mi>
<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[$e:{\mathbb{G}_{1}}\times {\mathbb{G}_{1}}\to {\mathbb{G}_{2}}$]]></tex-math></alternatives></inline-formula> be a bilinear pairing. It specifies two hash functions <inline-formula id="j_info1143_ineq_412"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</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">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 stretchy="false">→</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${H_{0}},{H_{1}}:{\{0,1\}^{\ast }}\to {\mathbb{G}_{1}^{\ast }}$]]></tex-math></alternatives></inline-formula>. Let Γ be the set of identity information. It chooses the master key <inline-formula id="j_info1143_ineq_413"><alternatives><mml:math>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[$\mathit{msk}=s$]]></tex-math></alternatives></inline-formula> uniformly at random from <inline-formula id="j_info1143_ineq_414"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{q}}$]]></tex-math></alternatives></inline-formula> and computes the public key <inline-formula id="j_info1143_ineq_415"><alternatives><mml:math>
<mml:mi mathvariant="italic">mpk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[$\mathit{mpk}=sP$]]></tex-math></alternatives></inline-formula>. The system parameter is
<disp-formula id="j_info1143_eq_059">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">params</mml:mi>
<mml:mo>=</mml:mo>
<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">e</mml:mi>
<mml:mo mathvariant="normal">,</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">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">mpk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</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">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">Γ</mml:mi>
<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{params}=(q,e,{\mathbb{G}_{1}},{\mathbb{G}_{2}},P,\mathit{mpk},{H_{0}},{H_{1}},\Gamma ).\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1143_li_032">
<label>(ii)</label>
<p><inline-formula id="j_info1143_ineq_416"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">GenUK</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">params</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathsf{GenUK}(\mathit{params})\to ({\mathit{PK}_{\mathit{ID}}},{\mathit{SK}_{\mathit{ID}}})$]]></tex-math></alternatives></inline-formula>. It selects a random <inline-formula id="j_info1143_ineq_417"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SK}_{\mathit{ID}}}\in {Z_{q}}$]]></tex-math></alternatives></inline-formula>, computes <inline-formula id="j_info1143_ineq_418"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[${\mathit{PK}_{\mathit{ID}}}={\mathit{SK}_{\mathit{ID}}}P$]]></tex-math></alternatives></inline-formula> and outputs <inline-formula id="j_info1143_ineq_419"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{SK}_{\mathit{ID}}},{\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> as <inline-formula id="j_info1143_ineq_420"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>’s secret/public key pair.</p>
</list-item>
<list-item id="j_info1143_li_033">
<label>(iii)</label>
<p><inline-formula id="j_info1143_ineq_421"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Cert</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">CB</mml:mi>
<mml:mo>.</mml:mo>
<mml:mi mathvariant="italic">msk</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">params</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">cert</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Cert}(\mathit{CB}.\mathit{msk},\mathit{params},\mathit{ID},{\mathit{PK}_{\mathit{ID}}})\to \mathit{cert}$]]></tex-math></alternatives></inline-formula>. It sets <inline-formula id="j_info1143_ineq_422"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{cert}_{\mathit{ID}}}=s{H_{0}}(\mathit{ID}||{\mathit{PK}_{\mathit{ID}}})$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_info1143_li_034">
<label>(iv)</label>
<p><inline-formula id="j_info1143_ineq_423"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Sign</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">params</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">σ</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Sign}(\mathit{params},\mathit{ID},{\mathit{cert}_{\mathit{ID}}},{\mathit{PK}_{\mathit{ID}}},{\mathit{SK}_{\mathit{ID}}},m)\to \sigma $]]></tex-math></alternatives></inline-formula>. For a message <italic>m</italic>, the user <inline-formula id="j_info1143_ineq_424"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula> computes the signature <inline-formula id="j_info1143_ineq_425"><alternatives><mml:math>
<mml:mi mathvariant="italic">σ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\sigma =(u,v,W)$]]></tex-math></alternatives></inline-formula>, where</p>
<list>
<list-item id="j_info1143_li_035">
<label>–</label>
<p><inline-formula id="j_info1143_ineq_426"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<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 stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<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:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$u={H_{1}}(m||\mathit{ID}||{\mathit{PK}_{\mathit{ID}}}||{r_{1}}P||e{(P,P)^{{r_{2}}}})$]]></tex-math></alternatives></inline-formula> for random <inline-formula id="j_info1143_ineq_427"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</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">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${r_{1}},{r_{2}}\in {Z_{q}}$]]></tex-math></alternatives></inline-formula>, which are chosen by <inline-formula id="j_info1143_ineq_428"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_info1143_li_036">
<label>–</label>
<p><inline-formula id="j_info1143_ineq_429"><alternatives><mml:math>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">SK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$v={r_{1}}-u\cdot {\mathit{SK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula> mod <italic>q</italic>, <inline-formula id="j_info1143_ineq_430"><alternatives><mml:math>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">cert</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$W={r_{2}}P-u\cdot {\mathit{cert}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1143_li_037">
<label>(v)</label>
<p><inline-formula id="j_info1143_ineq_431"><alternatives><mml:math>
<mml:mi mathvariant="sans-serif">Verify</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">params</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</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:mi mathvariant="italic">σ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi></mml:math><tex-math><![CDATA[$\mathsf{Verify}(\mathit{params},\mathit{ID},{\mathit{PK}_{\mathit{ID}}},m,\sigma )\to b$]]></tex-math></alternatives></inline-formula>. Given a message/signature pair <inline-formula id="j_info1143_ineq_432"><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:mi mathvariant="italic">σ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
<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[$(m,\sigma =(u,v,W))$]]></tex-math></alternatives></inline-formula>, user <inline-formula id="j_info1143_ineq_433"><alternatives><mml:math>
<mml:mi mathvariant="italic">ID</mml:mi></mml:math><tex-math><![CDATA[$\mathit{ID}$]]></tex-math></alternatives></inline-formula>’s public key <inline-formula id="j_info1143_ineq_434"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{PK}_{\mathit{ID}}}$]]></tex-math></alternatives></inline-formula>, anyone can check whether 
<disp-formula id="j_info1143_eq_060">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">u</mml:mi>
<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 maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">W</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:mi mathvariant="italic">e</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo maxsize="1.19em" minsize="1.19em" fence="true" mathvariant="normal">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<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[\[ u={H_{1}}\big(m||\mathit{ID}||{\mathit{PK}_{\mathit{ID}}}||vP+u\cdot {\mathit{PK}_{\mathit{ID}}}||e(W,P)e{\big({H_{0}}(\mathit{ID}||{\mathit{PK}_{\mathit{ID}}}),sP\big)^{u}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
If the equality holds, output 1; otherwise, output 0.</p>
</list-item>
</list>
<statement id="j_info1143_stat_015"><label>Lemma 1.</label>
<p><italic>The second certificateless scheme in</italic> <italic>Huang</italic> et al.<italic> (</italic><xref ref-type="bibr" rid="j_info1143_ref_009"><italic>2011</italic></xref><italic>)</italic> <italic>is CL-EUF-CMCI secure against a super Type I adversary.</italic></p></statement><statement id="j_info1143_stat_016"><label>Proof.</label>
<p>The proof directly follows the observation that (1) the security definition against a super Type I adversary in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>) is essentially the same as that of ours, except some notation differences.  □</p></statement><statement id="j_info1143_stat_017"><label>Lemma 2.</label>
<p><italic>The second certificateless scheme in</italic> <italic>Huang</italic> et al.<italic> (</italic><xref ref-type="bibr" rid="j_info1143_ref_009"><italic>2011</italic></xref><italic>)</italic> <italic>is CL-EUF-CMCI secure against a super Type II adversary.</italic></p></statement><statement id="j_info1143_stat_018"><label>Proof.</label>
<p>First, compare the security definition against a super Type II adversary in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>) and that of ours. 
<list>
<list-item id="j_info1143_li_038">
<label>(1)</label>
<p>Observe the difference: Huang’s definition in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>) requires that the attacked identity’s public key be the original one, while our definition allows that the attacked identity’s public key can be the replaced one under the constraint condition that this public key must be the other identity’s original public key. In other words, for our definition, the attacker can replace Alice’s public key with Bob’s original public key, and then attack Alice with this replaced public key.</p>
</list-item>
<list-item id="j_info1143_li_039">
<label>(2)</label>
<p>Observe the common purpose of these restrictions: in both definitions, the super type II adversary does not know the attacked identity’s current secret value. All in all, facing the same purpose of keeping the target secret value secret from the adversary, our definition tries to make less restrictions while the restriction in Huang’s definition goes too far.</p>
</list-item>
</list> 
Next revisit the security proof (for Theorem 4.4) in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>): 
<list>
<list-item id="j_info1143_li_040">
<label>(3)</label>
<p>Observe the key point of probability analysis (for Theorem 4.4 in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>)): only if the target public key comes from the challenger and the corresponding secret value is never queried, this security proof always conducts well. In other words, for the proof of Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>), what matters is not that the target public key is “original”, but that the corresponding secret key is not known by this adversary.</p>
</list-item>
</list>
</p>
<p>At last, following the above observations, we can easily obtain the security proof for Lemma <xref rid="j_info1143_stat_017">2</xref>, by slightly adapting the security proof for Theorem 4.4 in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>): in addition to some trivial modifications, change (1) the condition equation “<inline-formula id="j_info1143_ineq_435"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">π</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{ID}^{\ast }}={\mathit{ID}_{\pi }}$]]></tex-math></alternatives></inline-formula>” into “<inline-formula id="j_info1143_ineq_436"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathit{ID}^{\ast }}$]]></tex-math></alternatives></inline-formula>’s current public key <inline-formula id="j_info1143_ineq_437"><alternatives><mml:math>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">π</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$={\mathit{ID}_{\pi }}$]]></tex-math></alternatives></inline-formula>’s original public key” and (2) “<inline-formula id="j_info1143_ineq_438"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{A}_{II}}$]]></tex-math></alternatives></inline-formula> is not allowed to replace this user’s public key” into “<inline-formula id="j_info1143_ineq_439"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathcal{A}_{II}}$]]></tex-math></alternatives></inline-formula> is not allowed to query the secret value corresponding to this user’s current public key”. Hence, we can omit the detailed proof.  □</p></statement><statement id="j_info1143_stat_019"><label>Theorem 5.</label>
<p><italic>The above CBS scheme is secure (in the random oracle model) against CB.Super-</italic><inline-formula id="j_info1143_ineq_440"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{I}}$]]></tex-math></alternatives></inline-formula> <italic>and CB.Super-</italic><inline-formula id="j_info1143_ineq_441"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="script">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">II</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathcal{A}^{\mathit{II}}}$]]></tex-math></alternatives></inline-formula><italic>, assuming that CDH problem is hard in</italic> <inline-formula id="j_info1143_ineq_442"><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><italic>.</italic></p></statement><statement id="j_info1143_stat_020"><label>Proof.</label>
<p>We can obtain the proof immediately from Theorems <xref rid="j_info1143_stat_007">1</xref>, <xref rid="j_info1143_stat_009">2</xref> for the security of the generic construction and Lemmas <xref rid="j_info1143_stat_015">1</xref>, <xref rid="j_info1143_stat_017">2</xref> for the security of the underlying CLS scheme.  □</p></statement><statement id="j_info1143_stat_021"><label>Remark 3.</label>
<p>Just as the proof of Lemmas <xref rid="j_info1143_stat_015">1</xref> and <xref rid="j_info1143_stat_017">2</xref>, we can similarly prove that many existing certificateless signature schemes are secure in our new security model, by slightly modifying their original proof. In fact, by revisiting the two remarks during Definition <xref rid="j_info1143_stat_002">2</xref> in Section <xref rid="j_info1143_s_006">2</xref> and the three observations in Lemma <xref rid="j_info1143_stat_017">2</xref>, we can conclude that how to get these proofs is almost trivial. In other words, for a normal signing query, the common basic reason why both the original proof and the modified proof conduct well is not that the public key has been replaced, but that the current secret value is not known by the challenger; for a signature forgery, the common basic reason why both the original proof and the modified proof conducts is not that the public key has been replaced, but that the current secret value is not known by the adversary. Hence, these almost trivial modifications and the proof in our new security model for existing CLS schemes can be omitted here. Some examples among them are as follows.</p></statement>
<list>
<list-item id="j_info1143_li_041">
<label>(1)</label>
<p>The first certificateless scheme in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_009">2011</xref>) is CL-EUF-CMCI secure against a normal Type I adversary and a super Type II adversary;</p>
</list-item>
<list-item id="j_info1143_li_042">
<label>(2)</label>
<p>The certificateless scheme in Huang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_008">2005</xref>) is CL-EUF-CMCI secure against a normal Type I adversary and a normal Type II adversary;</p>
</list-item>
<list-item id="j_info1143_li_043">
<label>(3)</label>
<p>The certificateless scheme in Choi <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_005">2011</xref>) is CL-EUF-CMCI secure against a super Type I adversary and a super Type II adversary;</p>
</list-item>
<list-item id="j_info1143_li_044">
<label>(4)</label>
<p>The certificateless scheme in Zhang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_026">2007</xref>) is CL-EUF-CMCI secure against a normal Type I adversary and a normal Type II adversary.</p>
</list-item>
<list-item id="j_info1143_li_045">
<label>(5)</label>
<p>The certificateless scheme based on RSA in Zhang and Mao (<xref ref-type="bibr" rid="j_info1143_ref_025">2012</xref>) is CL-EUF-CMCI secure against a normal Type I adversary and a normal Type II adversary.</p>
</list-item>
<list-item id="j_info1143_li_046">
<label>(6)</label>
<p>The certificateless scheme in Pang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1143_ref_018">2015</xref>) is CL-EUF-CMCI secure against a normal Type I adversary and a normal Type II adversary.</p>
</list-item>
</list>
<p>All the above certificateless signature schemes can be used to construct certificate-based signature schemes through the generic framework. For example, based on the state-of-the-art CLS signature scheme secure in the standard model (Pang <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1143_ref_018">2015</xref>), we can construct one CBS scheme in the standard model which is almost the same to the the state-of-the-art CBS scheme recently proposed by Lu and Li (<xref ref-type="bibr" rid="j_info1143_ref_017">2015</xref>). Hence, we omit the trivial scheme description. In particular, both of them can be seen as the extension of the famous Waters signature scheme (Waters, <xref ref-type="bibr" rid="j_info1143_ref_021">2005</xref>).</p>
<p>Now we simply present the efficiency comparisons between the Lu-Li CBS scheme and our CBS scheme generically constructed from Pang <italic>et al</italic>.’s CLS scheme. First, because both of them are constructed based on the Waters signature scheme, there is almost no difference in the first three algorithms for setup, user key generation and the certification generation of both CBS schemes, except some notational differences. Second, for the signing algorithms, both CBS schemes have the same signature size, i.e. 3 group elements. To generate a signature, our CBS scheme needs 7 exponentiations in the bilinear group, while the Lu-Li CBS scheme needs 6 exponentiations. Third, to verify a signature, both CBS schemes need 3 pairing computations. Here note that group exponentiations and parings are the main computation for generating and verifying a signature respectively. Hence, we can see that the CBS scheme constructed using our generic framework in the standard model is almost as efficient as the Lu-Li CBS scheme in terms of signature size and computation complexity.</p>
</sec>
<sec id="j_info1143_s_011">
<label>7</label>
<title>Conclusion</title>
<p>In this paper, we proposed a new provably secure generic conversion from CLS to CBS. To analyse its security, we redefined the security model for CLS by formalizing some important but previously ignored properties. This new security definition is the main reason why our new conversion can be provably secure in the standard model. As an example, we constructed a new provably secure certificate-based signature scheme by applying this new generic method. These results formally showed that the two conceptions of CBS and CLS (CBC and CLC) are very closely related to each other.</p>
</sec>
</body>
<back>
<ack id="j_info1143_ack_001">
<title>Acknowledgements</title>
<p>This work is partially supported by National Natural Science Foundation of China (61202475, 61472114 and 61133014), Shandong Province Statistics Key Project (KT16022), the Priority Academic Program Development of Jiangsu Higher Education Institutions (PAPD, Nanjing University of Information Science &amp; Technology) and Jiangsu Collaborative Innovation Center on Atmospheric Environment and Equipment Technology (CICAEET, Nanjing University of Information Science &amp; Technology).</p></ack>
<ref-list id="j_info1143_reflist_001">
<title>References</title>
<ref id="j_info1143_ref_001">
<mixed-citation publication-type="chapter"><string-name><surname>Al-Riyami</surname>, <given-names>S.S.</given-names></string-name>, <string-name><surname>Paterson</surname>, <given-names>K.G.</given-names></string-name> (<year>2003</year>). <chapter-title>Certificateless public key cryptography</chapter-title>. In: <source>Proceedings of ASIACRYPT 2003</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2894</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>452</fpage>–<lpage>473</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_002">
<mixed-citation publication-type="chapter"><string-name><surname>Al-Riyami</surname>, <given-names>S.S.</given-names></string-name>, <string-name><surname>Paterson</surname>, <given-names>K.G.</given-names></string-name> (<year>2005</year>). <chapter-title>CBE from CLE: a generic construction and effiient schemes</chapter-title>. In: <source>Proceedings of PKC 2005</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3386</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>398</fpage>–<lpage>415</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_003">
<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 1st ACM Conference on Computer and Communications Security</source>. <publisher-name>ACM Press</publisher-name>, pp. <fpage>62</fpage>–<lpage>73</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_004">
<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_info1143_ref_005">
<mixed-citation publication-type="journal"><string-name><surname>Choi</surname>, <given-names>K.Y.</given-names></string-name>, <string-name><surname>Park</surname>, <given-names>J.H.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>D.H.</given-names></string-name> (<year>2011</year>). <article-title>A new provably secure certificateless short signature scheme</article-title>. <source>Computers &amp; Mathematics with Applications</source>, <volume>61</volume>(<issue>7</issue>), <fpage>1760</fpage>–<lpage>1768</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_006">
<mixed-citation publication-type="chapter"><string-name><surname>Gentry</surname>, <given-names>C.</given-names></string-name> (<year>2003</year>). <chapter-title>Certificate-based signature and the certificate revocation problem</chapter-title>. In: <source>Proeedings of EUROCRYPT 2003</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2656</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>272</fpage>–<lpage>293</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Guo</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>S.</given-names></string-name> (<year>2014</year>). <article-title>A variable threshold-value authentication architecture for wireless mesh networks</article-title>. <source>Journal of Internet Technology</source>, <volume>15</volume>(<issue>16</issue>), <fpage>929</fpage>–<lpage>936</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_008">
<mixed-citation publication-type="chapter"><string-name><surname>Huang</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Mu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>F.</given-names></string-name> (<year>2005</year>). <chapter-title>On the security of certificateless signature schemes from asiacrypt 2003</chapter-title>. In: <source>Proceedings of Cryptology and Network Security 2005</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3810</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>13</fpage>–<lpage>25</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_009">
<mixed-citation publication-type="journal"><string-name><surname>Huang</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Mu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Wong</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>W.</given-names></string-name> (<year>2011</year>). <article-title>Certificateless signatures: new schemes and security models</article-title>. <source>The Computer Journal</source>, <volume>55</volume>(<issue>4</issue>), <fpage>457</fpage>–<lpage>474</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_010">
<mixed-citation publication-type="other"><string-name><surname>Kang</surname>, <given-names>B.G.</given-names></string-name>, <string-name><surname>Park</surname>, <given-names>J.H.</given-names></string-name> (2005). Is it possible to have CBE from CLE? Iacr cryptology print archive. available at eprint.iacr.org/2005/431.ps.</mixed-citation>
</ref>
<ref id="j_info1143_ref_011">
<mixed-citation publication-type="chapter"><string-name><surname>Kang</surname>, <given-names>B.G.</given-names></string-name>, <string-name><surname>Park</surname>, <given-names>J.H.</given-names></string-name>, <string-name><surname>Hahn</surname>, <given-names>S.G.</given-names></string-name> (<year>2004</year>). <chapter-title>A certificate-based signature scheme</chapter-title>. In: <source>Proceedings of CT-RSA 2004</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2964</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>99</fpage>–<lpage>111</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Mu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Wu</surname>, <given-names>Q.</given-names></string-name> (<year>2010</year>). <article-title>Constructions of certificate-based signature secure against key replacement attacks</article-title>. <source>Journal of Computer Security</source>, <volume>18</volume>(<issue>3</issue>), <fpage>421</fpage>–<lpage>449</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Li</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Xu</surname>, <given-names>L.</given-names></string-name> (<year>2012</year>). <article-title>An efficient short certificate-based signature scheme</article-title>. <source>Journal of Systems and Software</source>, <volume>85</volume>(<issue>2</issue>), <fpage>314</fpage>–<lpage>322</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_014">
<mixed-citation publication-type="chapter"><string-name><surname>Liu</surname>, <given-names>J.K.</given-names></string-name>, <string-name><surname>Au</surname>, <given-names>M.H.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name> (<year>2007</year>). <chapter-title>Self-generated certificate public key cryptography and certificateless signature/encryption scheme in the standard model</chapter-title>. In: <source>Proceedings of the 2nd ACM Symposium on Information, Computer and Communications Security</source>. <publisher-name>ACM Press</publisher-name>, pp. <fpage>273</fpage>–<lpage>283</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_015">
<mixed-citation publication-type="chapter"><string-name><surname>Liu</surname>, <given-names>J.K.</given-names></string-name>, <string-name><surname>Baek</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Zhou</surname>, <given-names>J.</given-names></string-name> (<year>2008</year>). <chapter-title>Certificate-based signature schemes without pairings or random oracles</chapter-title>. In: <source>Proceedings of Information Security Conference 2008</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>5222</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>285</fpage>–<lpage>297</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_016">
<mixed-citation publication-type="chapter"><string-name><surname>Liu</surname>, <given-names>J.K.</given-names></string-name>, <string-name><surname>Bao</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Zhou</surname>, <given-names>J.</given-names></string-name> (<year>2011</year>). <chapter-title>Short and efficient certificate-based signature</chapter-title>. In: <source>Proceedings of Networking Workshops 2011</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>2867</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>167</fpage>–<lpage>178</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_017">
<mixed-citation publication-type="journal"><string-name><surname>Lu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>J.</given-names></string-name> (<year>2015</year>). <article-title>Improved certificate-based signature scheme without random oracles</article-title>. <source>IET Information Security</source>, <volume>10</volume>(<issue>2</issue>), <fpage>80</fpage>–<lpage>86</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_018">
<mixed-citation publication-type="journal"><string-name><surname>Pang</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Hu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Liu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Xu</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Li</surname>, <given-names>H.</given-names></string-name> (<year>2015</year>). <article-title>Efficient and secure certificateless signature scheme in the standard model</article-title>. <source>International Journal of Communication Systems</source>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1002/dac.3041" xlink:type="simple">https://doi.org/10.1002/dac.3041</ext-link>. <comment>Published online in Wiley Online Library (wileyonlinelibrary.com)</comment>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_019">
<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 1984</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>196</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>47</fpage>–<lpage>53</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_020">
<mixed-citation publication-type="journal"><string-name><surname>Shen</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Tan</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>J.W.</given-names></string-name>, <string-name><surname>Lee</surname>, <given-names>S.</given-names></string-name> (<year>2015</year>). <article-title>A novel routing protocol providing good transmission reliability in underwater sensor networks</article-title>. <source>Journal of Internet Technology</source>, <volume>16</volume>(<issue>1</issue>), <fpage>171</fpage>–<lpage>178</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_021">
<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 2005</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>3494</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>114</fpage>–<lpage>127</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_022">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Mu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>X.</given-names></string-name> (<year>2009</year>). <article-title>Certificate-based signatures revisited</article-title>. <source>Journal of Universal Computer Science</source>, <volume>15</volume>(<issue>8</issue>), <fpage>1659</fpage>–<lpage>1684</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_023">
<mixed-citation publication-type="journal"><string-name><surname>Wu</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Mu</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>X.</given-names></string-name> (<year>2012</year>). <article-title>Provably secure construction of certificate-based encryption from certificateless encryption</article-title>. <source>The Computer Journal</source>, <volume>55</volume>(<issue>10</issue>), <fpage>1157</fpage>–<lpage>1168</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_024">
<mixed-citation publication-type="journal"><string-name><surname>Xie</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>Y.</given-names></string-name> (<year>2014</year>). <article-title>Construction of tree network with limited delivery latency in homogeneous wireless wensor networks</article-title>. <source>Wireless Personal Communications</source>, <volume>78</volume>(<issue>1</issue>), <fpage>231</fpage>–<lpage>246</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_025">
<mixed-citation publication-type="journal"><string-name><surname>Zhang</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Mao</surname>, <given-names>J.</given-names></string-name> (<year>2012</year>). <article-title>An efficient RSA-based certificateless signature scheme</article-title>. <source>The Journal of Systems and Software</source>, <volume>85</volume>(<issue>3</issue>), <fpage>638</fpage>–<lpage>642</lpage>.</mixed-citation>
</ref>
<ref id="j_info1143_ref_026">
<mixed-citation publication-type="chapter"><string-name><surname>Zhang</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>F.</given-names></string-name> (<year>2007</year>). <chapter-title>New efficient certificateless signature scheme</chapter-title>. In: <source>Proceedings of EUC 2007</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>4809</volume>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin</publisher-loc>, pp. <fpage>692</fpage>–<lpage>703</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>