<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">30270</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2022.030270</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Code-based Sequential Aggregate Signature Scheme</article-title>
<alt-title alt-title-type="left-running-head">Code-based Sequential Aggregate Signature Scheme</alt-title>
<alt-title alt-title-type="right-running-head">Code-based Sequential Aggregate Signature Scheme</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Dou</surname><given-names>Bennian</given-names></name><xref ref-type="aff" rid="aff-1">1</xref><email>benniandou@163.com</email></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western"><surname>Xu</surname><given-names>Lei</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Yu</surname><given-names>Xiaoling</given-names></name><xref ref-type="aff" rid="aff-2">2</xref></contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western"><surname>Mei</surname><given-names>Lin</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-5" contrib-type="author">
<name name-style="western"><surname>Zuo</surname><given-names>Cong</given-names></name><xref ref-type="aff" rid="aff-3">3</xref></contrib>
<aff id="aff-1"><label>1</label><institution>School of Mathematics and Statistics, Nanjing University of Science and Technology</institution>, <addr-line>Nanjing, 210094</addr-line>, <country>China</country></aff>
<aff id="aff-2"><label>2</label><institution>College of Data Science, Taiyuan University of Technology</institution>, <addr-line>Taiyuan, 030000</addr-line>, <country>China</country></aff>
<aff id="aff-3"><label>3</label><institution>SCRIPTS, Nanyang Technological University</institution>, <addr-line>639798</addr-line>, <country>Singapore</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Bennian Dou. Email: <email>benniandou@163.com</email></corresp>
</author-notes>
<pub-date pub-type="epub" date-type="pub" iso-8601-date="2022-07-25"><day>25</day>
<month>07</month>
<year>2022</year></pub-date>
<volume>73</volume>
<issue>3</issue>
<fpage>5219</fpage>
<lpage>5231</lpage>
<history>
<date date-type="received"><day>22</day><month>3</month><year>2022</year></date>
<date date-type="accepted"><day>29</day><month>5</month><year>2022</year></date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2022 Dou et al.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Dou et al.</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_30270.pdf"></self-uri>
<abstract>
<p>This paper proposes the first code-based quantum immune sequential aggregate signature (SAS) scheme and proves the security of the proposed scheme in the random oracle model. Aggregate signature (AS) schemes and sequential aggregate signature schemes allow a group of potential signers to sign different messages respectively, and all the signatures of those users on those messages can be aggregated into a single signature such that the size of the aggregate signature is much smaller than the total size of all individual signatures. Because of the aggregation of many signatures into a single short signature, AS and SAS schemes can reduce bandwidth and save storage; moreover, when a SAS is verified, not only the valid but also the order in which each signer signed can be verified. AS and SAS schemes can be applied to traffic control, banking transaction and military applications. Most of the existing AS and SAS schemes are based either on pairing or Rivest&#x2013;Shamir&#x2013;Adleman (RSA), and hence, can be broken by Shor&#x2019;s quantum algorithm for Integer Factoring Problem (IFP) and Discrete Logarithm Problem (DLP). There are no quantum algorithms to solve syndrome decoding problems. Hence, code-based cryptography is seen as one of the promising candidates for post-quantum cryptography. This paper shows how to construct quantum immune sequential aggregate signatures based on coding theory. Specifically, we construct our scheme with the first code based signature scheme proposed by Courtois, Finiasz and Sendrier (CFS). Compared to the CFS signature scheme without aggregation, the proposed sequential aggregate signature scheme can save about 90&#x0025; storage when the number of signers is asymptotically large.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Sequential aggregate signature</kwd>
<kwd>CFS signature</kwd>
<kwd>post-quantum cryptography</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1"><label>1</label><title>Introduction</title>
<p>Security systems may often encounter the scenario which is to manage many different signatures on many different messages generated by many distinct users. For example, in a Public Key Infrastructure (PKI) of depth <italic>n</italic>, user signatures are accompanied by a chain of <italic>n</italic> certificates. The chain contains <italic>n</italic> signatures by <italic>n</italic> Certificate Authorities (CAs) on <italic>n</italic> distinct certificates. Another example is secure border gateway protocol (S-BGP) [<xref ref-type="bibr" rid="ref-1">1</xref>] in which each router receives a list of <italic>n</italic> signatures attesting to a certain path of length <italic>n</italic> in the network. A router signs its own segment in the path and passes the resulting list of <italic>n&#x002B;</italic>1 signatures to the next router. Both systems would benefit from a method which can compress the different signatures on different messages issued by different users. The certificate chain would be shortened by compressing the <italic>n</italic> signatures in the chain into a short single signature.</p>
<p>Aggregate signatures (AS), proposed by Boneh&#x00A0;et&#x00A0;al.&#x00A0;[<xref ref-type="bibr" rid="ref-2">2</xref>] in 2003, are digital signatures that address the problem of compressing signatures. AS allows <italic>n</italic> members of a given group of potential signers to sign <italic>n</italic> different messages <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> respectively, and all the signatures of those users on those messages can be aggregated into a single short signature <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula>. This single short signature <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> and the <italic>n</italic> original messages <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> are enough to convince the verifier that the <italic>n</italic> signers did indeed sign the <italic>n</italic> original messages <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> respectively. In the scheme of [<xref ref-type="bibr" rid="ref-2">2</xref>], the aggregate signature can be produced by anyone. Subsequently, at Eurocrypt 2004, Lysyanskaya&#x00A0;et&#x00A0;al.&#x00A0;[<xref ref-type="bibr" rid="ref-3">3</xref>] proposed another aggregate signature, namely sequential aggregate signature (SAS). In a sequential aggregate signature scheme, the aggregate signature cannot be produced by an outsider; instead, it must be constructed sequentially by each signer modifying the aggregate-so-far signature in turn.</p>
<p>Because of the aggregation of many signatures into a single short signature, AS and SAS schemes can reduce bandwidth and save storage; moreover, when a SAS is verified, not only the valid but also the order in which each signer signed can be verified. AS and SAS schemes can be applied to traffic control, banking transaction and military applications. Particularly, AS and SAS schemes are suitable for the secure border gateway protocol (S-BGP) which is designed to improve the security of the global Internet routing system. In the scenario of S-BGP, each router receives a list of <italic>n</italic> signatures attesting to a certain path of length <italic>n</italic> in the network. A router signs its own segment in the path and passes the resulting list of <italic>n</italic> &#x002B;&#x2009;1 signatures to the next router. When an AS scheme or a SAS scheme is used in S-BGP, one can significantly reduce associated bandwidth overhead and memory space for signatures.</p>
<p>Since Boneh&#x00A0;et&#x00A0;al.&#x00A0;introduced aggregate signature scheme, there are many AS schemes have been presented [<xref ref-type="bibr" rid="ref-2">2</xref>&#x2013;<xref ref-type="bibr" rid="ref-8">8</xref>], most of them are constructed either from pairings [<xref ref-type="bibr" rid="ref-2">2</xref>,<xref ref-type="bibr" rid="ref-4">4</xref>&#x2013;<xref ref-type="bibr" rid="ref-8">8</xref>] or from Rivest&#x2013;Shamir&#x2013;Adleman (RSA) [<xref ref-type="bibr" rid="ref-3">3</xref>]. The security of the above schemes except [<xref ref-type="bibr" rid="ref-7">7</xref>] is proved in the random oracle model, and the security of [<xref ref-type="bibr" rid="ref-7">7</xref>] is proved in the standard model.</p>
<p>In 1997, Shor [<xref ref-type="bibr" rid="ref-9">9</xref>] discovered a remarkable quantum algorithm which can solve both the factoring problem and the discrete logarithm problem in finite fields and on elliptic curves in polynomial time. So in the age of quantum, Shor&#x2019;s algorithm will break all digital signature schemes, including Full Domain Hash RSA (FDHRSA), the Digital Signature Algorithm (DSA) and the Elliptic Curve DSA (ECDSA), which are based on factoring problem and the discrete logarithm problem. Thus, Shor&#x2019;s algorithm can also break all the aforementioned AS and SAS including Boneh et al.&#x2019;s AS, Lysyanskaya et al.&#x2019;s SAS. In response, the cryptographic community has been focusing on a coordinated effort to produce viable alternatives, based on hard problems which are not vulnerable to quantum cryptanalytic attacks. These include cryptosystems based on lattices, linear codes, multivariate equations, and others. Such an effort is led by NIST&#x2019;s (National Institute of Standards and Technology) call for Post-Quantum Standardization [<xref ref-type="bibr" rid="ref-10">10</xref>], which is currently nearing its end.</p>
<p>In1978, McEliece [<xref ref-type="bibr" rid="ref-11">11</xref>] constructed a public key encryption (PKE) based on coding theory. In 1986, Niederreiter [<xref ref-type="bibr" rid="ref-12">12</xref>] proposed an equivalent code-based PKE. But the first practical code-based signature scheme was proposed by Courtois&#x00A0;et&#x00A0;al.&#x00A0;until 2001 [<xref ref-type="bibr" rid="ref-13">13</xref>], their signature scheme is also known as the CFS signature. The CFS signature adapts the full domain hash (FDH) approach of Bellare&#x00A0;et&#x00A0;al.&#x00A0;[<xref ref-type="bibr" rid="ref-14">14</xref>] to Niederreiter encryption scheme. The security of the CFS signature is based on two difficult problems of coding theory: The <italic>Goppa Bounded Decoding problem</italic> (GBD), and the <italic>Permuted Goppa Code Distinguishing problem</italic> (PGD) [<xref ref-type="bibr" rid="ref-13">13</xref>,<xref ref-type="bibr" rid="ref-15">15</xref>].</p>
<p><bold>Our contribution.</bold> Up to date, there exists no quantum algorithm solving the GBD and PGD, so the CFS signature is seen as one of the promising candidates for post-quantum signatures [<xref ref-type="bibr" rid="ref-16">16</xref>,<xref ref-type="bibr" rid="ref-17">17</xref>]. After the publishing of the CFS scheme, there are just a few code-based signatures with special properties have been presented, namely blind, (threshold) ring signature, and identity-based signature, for details, refer to the survey paper [<xref ref-type="bibr" rid="ref-17">17</xref>]. To the best knowledge we know, there is no code-based aggregate signature or sequential aggregate signature in the literature.</p>
<p>In this paper, we construct a code-based sequential aggregate signature from the CFS signature. We prove the proposed SAS secure in the random oracle under reasonable assumptions for permuted Goppa code. Due to the anti-quantum of the CFS signature schemes [<xref ref-type="bibr" rid="ref-16">16</xref>,<xref ref-type="bibr" rid="ref-17">17</xref>], to the best knowledge we know, our scheme is the first code-based quantum immune sequential aggregate signature (SAS) scheme. We compare our scheme with some other aggregate schemes in <xref ref-type="table" rid="table-1">Tab. 1</xref>.</p>
<table-wrap id="table-1"><label>Table 1</label><caption><title>The comparisons with other schemes</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Scheme</th>
<th align="left">Boneh&#x00A0;et&#x00A0;al.&#x00A0;[<xref ref-type="bibr" rid="ref-2">2</xref>]</th>
<th align="left">Lysyanskaya&#x00A0;et&#x00A0;al.&#x00A0;[<xref ref-type="bibr" rid="ref-3">3</xref>]</th>
<th align="left">Lu&#x00A0;et&#x00A0;al.&#x00A0;[<xref ref-type="bibr" rid="ref-7">7</xref>]</th>
<th align="left">Ours</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Type</td>
<td align="left">AS</td>
<td align="left">SAS</td>
<td align="left">SAS</td>
<td align="left">SAS</td>
</tr>
<tr>
<td align="left">Hardness assumption</td>
<td align="left">Paring</td>
<td align="left">RSA</td>
<td align="left">Paring</td>
<td align="left">Syndrome decoding</td>
</tr>
<tr>
<td align="left">Security model</td>
<td align="left">Random oracle</td>
<td align="left">Random oracle</td>
<td align="left">Standard model</td>
<td align="left">Random oracle</td>
</tr>
<tr>
<td align="left">Post-quantum</td>
<td align="left">No</td>
<td align="left">No</td>
<td align="left">No</td>
<td align="left">Yes</td>
</tr>
</tbody>
</table>
</table-wrap>
<p><bold>Related works.</bold> Recently, [<xref ref-type="bibr" rid="ref-18">18</xref>&#x2013;<xref ref-type="bibr" rid="ref-20">20</xref>] used the Schnorr-Lyubashevsky framework to construct code based signatures without trapdoors. The Schnorr-Lyubashevsky framework has been shown able to produce secure and efficient signature schemes without trapdoors in the lattice-based setting. There are some works [<xref ref-type="bibr" rid="ref-21">21</xref>] analyzed such Schnorr-Lyubashevsky framework code based signatures. Some lattice based aggregate signatures have been proposed in [<xref ref-type="bibr" rid="ref-22">22</xref>,<xref ref-type="bibr" rid="ref-23">23</xref>]. Xu&#x00A0;et&#x00A0;al.&#x00A0;proposed a post-quantum blind signature in [<xref ref-type="bibr" rid="ref-24">24</xref>]. Quantum spin states can be used to construct hybrid cryptosystems and other schemes [<xref ref-type="bibr" rid="ref-25">25</xref>&#x2013;<xref ref-type="bibr" rid="ref-27">27</xref>].</p>
<p><bold>Organizations.</bold> The rest of the paper is organized as follows: In Section 2, we give the formal definitions and security model of sequential aggregate signature schemes. Section 3 reviews coding theory and the CFS signature. A concrete code-based sequential aggregate signature scheme is proposed in Section 4.We compare the efficiency between aggregate and non-aggregate for the CFS signature in Section 5. Finally, we end with concluding remarks in Section 6.</p>
</sec>
<sec id="s2"><label>2</label><title>Sequential Aggregate Signature Scheme</title>
<p>In this section, we give the formal definitions and security model of sequential aggregate signature (SAS) schemes. We adopt the main notions in [<xref ref-type="bibr" rid="ref-3">3</xref>].</p>
<sec id="s2_1"><label>2.1</label><title>SAS Schemes</title>
<p><bold>Definition 1.</bold> <italic>A sequential aggregate signature (SAS) scheme</italic> <bold>SAS</bold> &#x003D; <bold>(KeyGen, AggSign, AggVerify)</bold> <italic>consists of three algorithms</italic>:</p>
<p><bold>KeyGen(</bold><inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula><bold>):</bold> <italic>KeyGen</italic>(<inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>k</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) <italic>generates public and secret key pair</italic> (<inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>S</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>)<italic>of each user</italic> <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>AggSign:</bold> <italic>AggSign takes as inputs a secret key</italic> <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:mi>S</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>,<italic> a message</italic> <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, <italic>and a sequential aggregate-so-far signature</italic> <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> <italic>on messages</italic> <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> <italic>under respective public keys</italic> <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, <italic>where</italic> <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> <italic>is the inmost message. If</italic> <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, <italic>the aggregate-so-far</italic> <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> <italic>is taken to be empty. It adds a signature on</italic> <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> under <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>S</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <italic>to the aggregate, outputting a sequential aggregate</italic> <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> <italic>on all messages</italic> <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>AggVerify:</bold> <italic>AggVerify takes as inputs a sequential aggregate signature</italic> <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula>, <italic>messages</italic> <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <italic>and public keys</italic> <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <italic>outputs 1 if</italic> <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> <italic>is a valid sequential aggregate (with</italic> <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> <italic>inmost) on the given messages under the given keys, otherwise outputs 0.</italic></p>
<p><xref ref-type="fig" rid="fig-1">Fig. 1</xref> shows how a sequential aggregate signature scheme works. SAS schemes can reduce bandwidth and save storage; moreover, when a SAS is verified, not only the valid but also the order in which each signer signed can be verified.</p>
<fig id="fig-1"><label>Figure 1</label><caption><title>Workflow of a sequential aggregate signature scheme</title></caption><graphic mimetype="image" mime-subtype="png" xlink:href="CMC_30270-fig-1.png"/></fig>
</sec>
<sec id="s2_2"><label>2.2</label><title>Security Model of SAS Schemes</title>
<p>Let <bold>SAS &#x003D; (KeyGen; AggSign; AggVerify)</bold> be a sequential aggregate signature scheme. To give the security model of SAS schemes, we consider the following game associated to a challenger <italic>C</italic> and a forger <italic>A</italic>. <italic>A</italic>&#x2019;s advantage, <bold>AdvAggSig<sub>A</sub></bold>, is defined to be his probability to win in the game.</p>
<p><bold>Setup.</bold> The aggregate forger <italic>A</italic> is provided with a public key <italic>PK</italic>, generated at random.</p>
<p><bold>Queries.</bold> Proceeding adaptively, <italic>A</italic> requests sequential aggregate signatures with <italic>PK</italic> on messages of his choice. For each query, he supplies a sequential aggregate signature <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> on some messages <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> under distinct keys <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, and an additional message <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> to be signed by the oracle under key <italic>PK</italic> (where <italic>i</italic> is at most <italic>N</italic>, a game parameter).</p>
<p><bold>Response.</bold> Finally, <italic>A</italic> outputs <italic>i</italic> distinct public keys <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Here <italic>i</italic> is at most <italic>N</italic>. One of these keys must equal <italic>PK</italic>, the challenge key. Algorithm <italic>A</italic> also outputs messages <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and a sequential aggregate signature <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> by the <italic>i</italic> users, each on his corresponding message, with <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> inmost.</p>
<p>The forger wins if the sequential aggregate signature <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> is a valid sequential aggregate signature on messages <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> under keys <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> is nontrivial, i.e., <italic>A</italic> did not request a sequential aggregate signature on messages <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> under keys <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, where <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> is the index of the challenge key <italic>PK</italic> in the forgery. Note that <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:mrow><mml:msup><mml:mi>i</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula> need not equal <italic>i</italic>. The probability is over the coin tosses of the key-generation algorithm and of <italic>A</italic>.</p>
<p><bold>Definition 2.</bold><italic> We say a sequential aggregate forger A</italic> <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>-<italic>breaks an N-user aggregate signature scheme in the sequential aggregate chosen-key model if: A runs in time at most</italic> <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>;<italic> A makes at most</italic> <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <italic>queries to the hash function and at most</italic> <inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <italic>queries to the aggregate signing oracle; AdvAggSig</italic><sub>A</sub>, <italic>is at least</italic> <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>, <italic>and the forged sequential aggregate signature is by at most N users. A sequential aggregate signature scheme is</italic> <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> -<italic>secure against existential forgery in the sequential aggregate chosen-key model if no forger</italic> <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>-<italic>breaks it</italic>.</p>
</sec>
</sec>
<sec id="s3"><label>3</label><title>Coding Theory and CFS Signature</title>
<sec id="s3_1"><label>3.1</label><title>Coding Theory</title>
<p>A binary [<italic>n, k</italic>]<italic>-</italic>code <italic>C</italic> is a linear subspace of dimension <italic>k</italic> of the linear space <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup></mml:math></inline-formula>. Elements of <inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup></mml:math></inline-formula> are called words and elements of <italic>C</italic> are codewords. A code is usually given in the form of a <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula> parity check matrix H. The codewords of <italic>C</italic> are words <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> that satisfies <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula>. A syndrome <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> is a vector <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> for a word <inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>. The support of a word <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is defined as <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:mrow><mml:mtext>support</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>i</mml:mi><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>&#x2260;</mml:mo><mml:mn>0</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>. The Hamming weight of a word <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> denoted by <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is the cardinality of <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:mrow><mml:mtext>support</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The Hamming distance <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:mrow><mml:mtext>d</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> between two words <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> is defined as <inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The minimum distance <italic>d</italic> of a [<italic>n, k</italic>]<italic>-</italic>code <italic>C</italic> is <inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:mo movablelimits="true" form="prefix">min</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mrow><mml:mtext>d(</mml:mtext></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2260;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow><mml:mo fence="false" stretchy="false">}</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>. A syndrome <inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> is said to be <italic>decodable</italic> according to a <italic>t</italic>-error correcting code if there exists a word <inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup></mml:math></inline-formula> such that <inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> with <inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mi>t</mml:mi></mml:math></inline-formula>. We recall that decoding a syndrome <italic>s</italic> is retrieving such a word <inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>. Decoding in a random linear code is difficult, which we will restate soon later.</p>
<p>Goppa codes are subfield subcodes of particular alternant codes with efficient decoding algorithm. Goppa codes are widely used in coding-based cryptography. For given integers <italic>m</italic> and <italic>t</italic>, Goppa codes are of length <inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>m</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, of dimension <italic>k</italic> &#x003D; <italic>n &#x2212; mt</italic> and are <italic>t</italic>-correcting. The density of decodable syndromes is approximately <inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>t</mml:mi><mml:mo>!</mml:mo></mml:mrow></mml:mfrac></mml:math></inline-formula> [<xref ref-type="bibr" rid="ref-13">13</xref>]. We denote by <inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> the decoding algorithm associated with a Goppa Code of parity check matrix H.</p>
<p>In order to establish the security of the CFS signature and the pro-posed SAS, we introduce some problems on coding theory.</p>
<p><bold>Definition 3.</bold> <italic>Goppa Bouned Decoding Problem (GBD): Given a random </italic><inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula> <italic>binary matrix H, a syndrome</italic> <inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <italic>output a word</italic> <inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup></mml:math></inline-formula> of weight <inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>log</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2061;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> <italic>such that</italic> <inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
<p>The associated decision problem of GBD is NP-complete [<xref ref-type="bibr" rid="ref-28">28</xref>].</p>
<p><bold>Definition 4.</bold> <italic>Multiple Goppa Bounded Decoding (MGBD): Given a random</italic> <inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula> <italic>binary matrix H, an arbitrary number</italic> <inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:mi>c</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> <italic>and a syndrome</italic> <inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> <italic>, output a word</italic> <inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup></mml:math></inline-formula> <italic>of weight</italic> <inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mi>c</mml:mi><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>log</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2061;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> <italic>such that</italic> <inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
<p>The associated decision problem of MGBD is conjectured to be NP-complete, too [<xref ref-type="bibr" rid="ref-29">29</xref>].</p>
<p><bold>Definition 5.</bold> <italic>We say an algorithm A is</italic> <inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>-<italic>solves MGBD(GBD) if A runs in time at most</italic> <inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>, <italic>and outputs a word</italic> <inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup></mml:math></inline-formula> <italic>of weight</italic> <inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mi>c</mml:mi><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>log</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2061;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula> (<inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mtext>e</mml:mtext></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>log</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2061;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula>) <italic>with at least</italic> <italic>probability</italic> <inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>, <italic>such that</italic> <inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Lemma 1.</bold> <italic>There is no algorithm A which is</italic> <inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula><italic>-solves MGBD and GBD</italic>.</p>
<p>Let <inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mi>e</mml:mi><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mi>w</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>e</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x230A;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>log</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x230B;</mml:mo></mml:mrow></mml:math></inline-formula>, To describe the CFS signature and the proposed SAS, we need a one to one function <inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:mi>&#x03D5;</mml:mi><mml:mo>:</mml:mo><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. For the construction of such function <inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:mi>&#x03D5;</mml:mi></mml:math></inline-formula> and its inverse <inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, refer to [<xref ref-type="bibr" rid="ref-30">30</xref>].</p>
</sec>
<sec id="s3_2"><label>3.2</label><title>The CFS Signature</title>
<p>The basic idea of code-based cryptography is using a certain code which has efficient decoding algorithm with trapdoor information as private key and publishing the random look like variant of this code as public key.</p>
<p>The first code-based signature is the CFS signature which was introduced by Courtois, Finiasz and Sendrier at Asiacrypt 2001 [<xref ref-type="bibr" rid="ref-13">13</xref>]. The CFS signature is obtained by applying full hash domain approach to the Niederreiter public key cryptosystem. The CFS signature we will describe below is a minor modification of the original CFS signature, and this modified CFS signature enables us to prove its security more reasonable in random oracle [<xref ref-type="bibr" rid="ref-15">15</xref>,<xref ref-type="bibr" rid="ref-30">30</xref>]. The CFS signature consists of three algorithms which are described as follows:</p>
<p><bold>SystemParameters:</bold> Two integers <inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>.</p>
<p><bold>CFSKeyGen (</bold><inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula><bold>)<italic>:</italic></bold> CFSKeyGen (<inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) generates a [<italic>n</italic>, <italic>k</italic>, <italic>d</italic>]-binary Goppa code <italic>C</italic> (<inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>m</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, <italic>k</italic>&#x003D;<italic>n-mt</italic>, <italic>d</italic>&#x2009;&#x003D;&#x2009;2<italic>t</italic>&#x002B;1) with parity check matrix <inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, then <italic>C</italic> is a <italic>t</italic>-error correcting code, let its efficient decoding algorithm is <inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. CFSKeyGen (<inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) generates a random <inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> invertible matrix S and a random <inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:mi>n</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula> permutation matrix P. Let <inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>S</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mtext>P</mml:mtext></mml:mrow></mml:math></inline-formula>, then H is a parity check matrix of the code <inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:msup><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> which is a permuted code of <italic>C.</italic> <inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:msup><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is also a <italic>t</italic>-error correcting Goppa code, let its efficient decoding be <inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>(obtained from <inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:mrow><mml:mtext>S, P,&#xA0;</mml:mtext></mml:mrow><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>). Finally, CFSKeyGen (<inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) outputs H as the public key, and the corresponding private key is <inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Sign:</bold> Let <inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:mi>h</mml:mi><mml:mo>:</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> be a hash function. Let <inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x2308;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>log</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>!</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2309;</mml:mo></mml:mrow></mml:math></inline-formula>. To sign a message <italic>m</italic>, Sign does
<list list-type="order">
<list-item><p>choose <inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> randomly from <inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>;</p></list-item>
<list-item><p><inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>;</p></list-item>
<list-item><p>if no <inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> was found go to 1.</p></list-item>
</list></p>
<p>Let <inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> then the signature on <italic>m</italic> is <inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Verification:</bold> Let <inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. The signature is valid if and only if <inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> holds.</p>
<p><bold>Security of the CFS Signature:</bold> The security of the CFS signature is based on two assumptions: One is the intractability of GBD as stated in Lemma1; the other is the intractability of the Permuted Goppa Code Distinguish (PGD) which we will describe below.</p>
<p><bold>Definition 6.</bold> <italic>Permuted Goppa Code Distinguish Problem (PGD): Given</italic> H <italic>generated by CFSKeyGen (</italic><inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula><italic>) as the public key in the CFS signature, the Permuted Goppa Code Distinguish Problem is to distinguish</italic> H <italic>from a parity check matrix of a random linear code</italic>.</p>
<p><bold>Definition 7.</bold><italic> We say an algorithm A is </italic><inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula><italic>-<italic>solves PGD if A runs in time at most</italic></italic> <inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>, <italic>and can distinguish H from a parity check matrix of a random linear code with probability at least</italic> <inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:mrow><mml:mstyle displaystyle="false" scriptlevel="0"><mml:mrow><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac></mml:mrow></mml:mstyle></mml:mrow><mml:mo>+</mml:mo><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>.</p>
<p><bold>Lemma 2 (</bold> [<xref ref-type="bibr" rid="ref-13">13</xref>,<xref ref-type="bibr" rid="ref-15">15</xref>]<bold>).</bold> <italic>There is no algorithm A which is</italic> <inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula><italic>-solves PGD</italic>.</p>
<p>Because of Lemma 2, we can apply Lemma 1 to permuted Goppa code. In fact, we have</p>
<p><bold>Definition 8.</bold> <italic>Permuted Goppa Code Bounded Decoding (PGBD): Given H generated by CFSKeyGen</italic> (<inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) <italic>as the public key in the CFS signature, an arbitrary number</italic> <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mi>c</mml:mi><mml:mo>&#x003E;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> <italic>and a syndrome</italic> <inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, <italic>the Permuted Goppa Code Bounded Decoding Problem is to output a word</italic> <inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:msubsup><mml:mi>F</mml:mi><mml:mn>2</mml:mn><mml:mi>n</mml:mi></mml:msubsup></mml:math></inline-formula> <italic>of weight</italic> <inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mi>c</mml:mi><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>log</mml:mi><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x2061;</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:mfrac></mml:math></inline-formula>(<italic>&#x003D;ct, since n&#x2212;k&#x003D;mt,</italic> <inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>m</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) <italic>such that </italic><inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>. <italic>We say an algorithm A is</italic> <inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>-<italic>solves PGBD, if A runs in time at most </italic><inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula>, <italic>and can output the demanding vector </italic><inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">e</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> <italic>with at least probability</italic> <inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>.</p>
<p><bold>Lemma 3 (</bold> [<xref ref-type="bibr" rid="ref-13">13</xref>]<bold>).</bold> <italic>There is no algorithm A which is</italic> <inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula><italic>-solves PGBD</italic>.</p>
</sec>
</sec>
<sec id="s4"><label>4</label><title>The Proposed Code-Based SAS</title>
<p>In this section, we propose a sequential aggregate signature based on CFS signature, and also prove the security of the proposed SAS.</p>
<sec id="s4_1"><label>4.1</label><title>The Proposed SAS</title>
<p>We firstly introduce some notations for vectors. We write a vector as <inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> and its length <inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>. The elements of <inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> are <inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. For a vector <inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> denotes the subvector contains elements <inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>a</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>b</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Suppose <inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>l</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, where <inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x230A;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>log</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x230B;</mml:mo></mml:mrow></mml:math></inline-formula>, if needed, <inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi></mml:math></inline-formula> 0&#x2019;s can be padded to <inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> to obtain an <inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:math></inline-formula> dimension vector <inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold">z</mml:mi><mml:mo stretchy="false">&#x00AF;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:munder><mml:mrow><mml:munder><mml:mrow><mml:mn>00</mml:mn><mml:mo>&#x22EF;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>&#x23DF;</mml:mo></mml:munder></mml:mrow><mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:mrow></mml:munder><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>. Meanwhile, for a vector <inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:munder><mml:mrow><mml:munder><mml:mrow><mml:mn>00</mml:mn><mml:mo>&#x22EF;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>&#x23DF;</mml:mo></mml:munder></mml:mrow><mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:mrow></mml:munder><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>, the unpadding of <bold>z</bold> is denoted by <inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:mrow><mml:mrow><mml:mover><mml:mi mathvariant="bold">z</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>.Henceforward, we denote by <inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> the message vector whose elements are <inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, and denote by <inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> the public key vector whose elements are <inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
<p>The proposed SAS consists of three algorithms which are described below:</p>
<p><bold>SystemParameters:</bold> Two integers <inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>.</p>
<p><bold>KeyGen</bold> (<inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>): For each user <inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:mrow><mml:msub><mml:mi>U</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>n</mml:mi></mml:math></inline-formula>), KeyGen (<inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) generates the key pair (<inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) (<inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the public key, and the corresponding private key is <inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) just as CFSKeyGen (<inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:mrow><mml:msup><mml:mn>1</mml:mn><mml:mi>&#x03BA;</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>) does in the CFS signature.</p>
<p><bold>AggSign:</bold> The inputs are a secret key <inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, a message <inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow></mml:math></inline-formula>, and a sequential aggregate-so-far signature <inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> on messages <inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>(message vector whose elements are <inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) under public keys <inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>(public key vector whose elements are <inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>). Let <inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:mi>h</mml:mi><mml:mo>:</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">&#x2192;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> be a hash function. Let <inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x2308;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>log</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>!</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2309;</mml:mo></mml:mrow></mml:math></inline-formula>. To sign, AggSign does
<list list-type="order">
<list-item><p>choose <inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> randomly from <inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>;</p></list-item>
<list-item><p><inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2295;</mml:mo><mml:mover><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:math></inline-formula>;</p></list-item>
<list-item><p>if no <inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> was found, go to 1.</p></list-item>
</list></p>
<p>Let <inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, then the sequential aggregate signature on messages <inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>(whose elements are <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) under public keys <inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>( whose elements are <inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) is <inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:mi>&#x03C3;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p>
<p><bold>AggVerify:</bold> The input is a sequential aggregate signature <inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:mi>&#x03C3;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> on messages <inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> under public keys <inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>. To verify, let <inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>, set <inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>. Then for <inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, compute <inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">m</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>j</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and set <inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">m</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula>. Accept if <inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Correctness of the proposed scheme.</bold> From the process of AggVerify, we know that
<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mover><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>T</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2295;</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>m</mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x005E;</mml:mo></mml:mover></mml:mrow></mml:math></disp-formula></p>
<p>On the other hand, if the sequential signature is computed correctly, from the process AggSign we have,
<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>D</mml:mi><mml:mi>e</mml:mi><mml:mi>c</mml:mi><mml:mi>o</mml:mi><mml:mi>d</mml:mi><mml:mrow><mml:msub><mml:mi>e</mml:mi><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>which implies <inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula>. Hence, if the sequential aggregate signature is valid, we have <inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec id="s4_2"><label>4.2</label><title>Security of the Proposed SAS</title>
<p>In this section, we prove the security of the proposed SAS in the random oracle model, we will prove the security of our scheme based on the assumption in lemma 3.</p>
<p>To make the proof easier, we firstly prove the following lemma.</p>
<p><bold>Lemma 4.</bold> <italic>There is a forger A</italic> <inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula><italic>-breaks the proposed SAS, if and only if there is an forger B</italic><inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mi>N</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula><italic>-breaks the proposed SAS with the target public key is the last key in the key sequence</italic>.</p>
<p><italic>Proof:</italic> The lemma can be immediately obtained by the observation that during the AggVerify phase of our scheme, supposing <inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:mi>&#x03C3;</mml:mi><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> on messages <inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> under public keys <inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, each sequential aggregate signature on <inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> under <inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> (<inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>i</mml:mi></mml:math></inline-formula>) can also be achieved.</p>
<p>Henceforward, we suppose that matrix-vector multiplication, exclusive or of vectors and the computation of <inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:mi>&#x03D5;</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> take unit time. The security of our scheme is obtained from the following theorem.</p>
<p><bold>Theorem 1.</bold> <italic>If there is a</italic> <inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> <italic>forger A to break the proposed SAS, then there exists an algorithm</italic> <inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> <italic>B to solve the Permuted Goppa Code Bounded Syndrome Decoding of Problem (PGBD) for</italic> <inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:math></inline-formula><italic>, with</italic>
<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2265;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true">/</mml:mo><mml:mrow><mml:mrow><mml:mpadded width="0"><mml:mphantom><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mphantom></mml:mpadded></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mi>&#x03B5;</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thinmathspace" /><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2264;</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>H</mml:mi></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:math></disp-formula>
<italic>where</italic> <inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x2308;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>log</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>!</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2309;</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p><italic>Proof:</italic> If <italic>A</italic> is <inline-formula id="ieqn-215"><mml:math id="mml-ieqn-215"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> forger to break the proposed SAS. From Lemma 4, we can assume, without loss of any generality, that the forgery aggregate signature generated by <italic>A</italic> has the target public key is the last key i.e., the <italic>N</italic>-th key in the public key sequence.</p>
<p>Below we will show that if there is an algorithm <italic>A</italic> is <inline-formula id="ieqn-216"><mml:math id="mml-ieqn-216"><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03C4;</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mi>N</mml:mi><mml:mo>,</mml:mo><mml:mi>&#x03B5;</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> forger to break the proposed SAS, we can construct an algorithm <italic>B</italic> which is <inline-formula id="ieqn-217"><mml:math id="mml-ieqn-217"><mml:mo stretchy="false">(</mml:mo><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>-solves PGBD for <inline-formula id="ieqn-218"><mml:math id="mml-ieqn-218"><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:math></inline-formula>, which contradicts the assumption in lemma 3. The algorithm <italic>B</italic> is constructed as follows:</p>
<p><italic>B</italic> is given a parity check matrix H of a random [<italic>n</italic>, <italic>k</italic>, <italic>d</italic>]-binary permuted Goppa code (<inline-formula id="ieqn-219"><mml:math id="mml-ieqn-219"><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>m</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>, <italic>k</italic>&#x003D;<italic>n-mt</italic>, <italic>d&#x2009;</italic>&#x003D;&#x2009;2<italic>t</italic>&#x002B;1), a challenge syndrome <inline-formula id="ieqn-220"><mml:math id="mml-ieqn-220"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <italic>B</italic>&#x2019;s goal is to find <inline-formula id="ieqn-221"><mml:math id="mml-ieqn-221"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> with <inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mn>2</mml:mn><mml:mi>t</mml:mi></mml:math></inline-formula> such that <inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>. <italic>B</italic> sends H as the target public key to <italic>A</italic>. <italic>B</italic> runs <italic>A</italic> and answers its oracle queries as follows.</p>
<p><italic>Hash queries:</italic> The random hash function <italic>h</italic> has two properties: i.e., the property that the outputs of <italic>h</italic> are random and the property that one output from <inline-formula id="ieqn-224"><mml:math id="mml-ieqn-224"><mml:mi>t</mml:mi><mml:mo>!</mml:mo></mml:math></inline-formula> outputs is decodable. <italic>B</italic> simulates the hash function as follows.</p>
<p><italic>B</italic> maintains a list of tuples <inline-formula id="ieqn-225"><mml:math id="mml-ieqn-225"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> as the hash queries&#x2019; list. We call this list the h-list. When <italic>A</italic> queries the hash oracle at point <inline-formula id="ieqn-226"><mml:math id="mml-ieqn-226"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> <italic>B</italic> responds as below:
<list list-type="order">
<list-item><p>If the query <inline-formula id="ieqn-227"><mml:math id="mml-ieqn-227"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> is already on the <italic>h</italic>-list, then <italic>B</italic> finds the entry <inline-formula id="ieqn-228"><mml:math id="mml-ieqn-228"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow></mml:mrow></mml:msubsup><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> and outputs <inline-formula id="ieqn-229"><mml:math id="mml-ieqn-229"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> as the answer to the query, i.e., <inline-formula id="ieqn-230"><mml:math id="mml-ieqn-230"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
<list-item><p>Otherwise set <inline-formula id="ieqn-231"><mml:math id="mml-ieqn-231"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-232"><mml:math id="mml-ieqn-232"><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>&#x2308;</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>log</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>t</mml:mi><mml:mo>!</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x2309;</mml:mo></mml:mrow></mml:math></inline-formula>, <italic>B</italic> runs the hashing algorithm on input <inline-formula id="ieqn-233"><mml:math id="mml-ieqn-233"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>i - 1</mml:mtext></mml:mrow></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>i - 1</mml:mtext></mml:mrow></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> to obtain the corresponding entry <inline-formula id="ieqn-234"><mml:math id="mml-ieqn-234"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>i - 1</mml:mtext></mml:mrow></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>i - 1</mml:mtext></mml:mrow></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">s</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">w</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> with <inline-formula id="ieqn-235"><mml:math id="mml-ieqn-235"><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> on the <italic>h</italic>-list. If <inline-formula id="ieqn-236"><mml:math id="mml-ieqn-236"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, <italic>B</italic> sets <inline-formula id="ieqn-237"><mml:math id="mml-ieqn-237"><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mrow></mml:math></inline-formula>. <italic>B</italic> must now choose elements along with <inline-formula id="ieqn-238"><mml:math id="mml-ieqn-238"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> in a new entry on the <italic>h</italic>-list. Firstly, <italic>B</italic> chooses a random vector <inline-formula id="ieqn-239"><mml:math id="mml-ieqn-239"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mi>n</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> with weight <inline-formula id="ieqn-240"><mml:math id="mml-ieqn-240"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mi>t</mml:mi></mml:math></inline-formula>, and <italic>B</italic> generates a random coin <inline-formula id="ieqn-241"><mml:math id="mml-ieqn-241"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula>, such that <inline-formula id="ieqn-242"><mml:math id="mml-ieqn-242"><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>t</mml:mi><mml:mo>!</mml:mo></mml:mrow></mml:mfrac></mml:math></inline-formula>. <italic>B</italic> chooses a random vector <inline-formula id="ieqn-243"><mml:math id="mml-ieqn-243"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:msup><mml:mo fence="false" stretchy="false">}</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p></list-item>
</list></p>
<p><italic>2.1</italic> <inline-formula id="ieqn-244"><mml:math id="mml-ieqn-244"><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>: <italic>B</italic> sets <inline-formula id="ieqn-245"><mml:math id="mml-ieqn-245"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-246"><mml:math id="mml-ieqn-246"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-247"><mml:math id="mml-ieqn-247"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula> (<inline-formula id="ieqn-248"><mml:math id="mml-ieqn-248"><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula> is a placeholder value.).</p>
<p><italic>2.2</italic> <inline-formula id="ieqn-249"><mml:math id="mml-ieqn-249"><mml:mrow><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>: If <inline-formula id="ieqn-250"><mml:math id="mml-ieqn-250"><mml:mi>i</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-251"><mml:math id="mml-ieqn-251"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, <italic>B</italic> sets <inline-formula id="ieqn-252"><mml:math id="mml-ieqn-252"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-253"><mml:math id="mml-ieqn-253"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-254"><mml:math id="mml-ieqn-254"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula>. If <inline-formula id="ieqn-255"><mml:math id="mml-ieqn-255"><mml:mi>i</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-256"><mml:math id="mml-ieqn-256"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <italic>B</italic> sets <inline-formula id="ieqn-257"><mml:math id="mml-ieqn-257"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn><mml:mi>T</mml:mi></mml:msubsup><mml:mo>&#x2295;</mml:mo><mml:mover><mml:mrow><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:math></inline-formula>, and sets <inline-formula id="ieqn-258"><mml:math id="mml-ieqn-258"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-259"><mml:math id="mml-ieqn-259"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula>. If <inline-formula id="ieqn-260"><mml:math id="mml-ieqn-260"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>, <italic>B</italic> generates another coin <inline-formula id="ieqn-261"><mml:math id="mml-ieqn-261"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2208;</mml:mo><mml:mo fence="false" stretchy="false">{</mml:mo><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn><mml:mo fence="false" stretchy="false">}</mml:mo></mml:math></inline-formula> such that <inline-formula id="ieqn-262"><mml:math id="mml-ieqn-262"><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mi>t</mml:mi><mml:mo>!</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac></mml:math></inline-formula>. If <inline-formula id="ieqn-263"><mml:math id="mml-ieqn-263"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-264"><mml:math id="mml-ieqn-264"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-265"><mml:math id="mml-ieqn-265"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula>, <italic>B</italic> sets <inline-formula id="ieqn-266"><mml:math id="mml-ieqn-266"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-267"><mml:math id="mml-ieqn-267"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula>. If <inline-formula id="ieqn-268"><mml:math id="mml-ieqn-268"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-269"><mml:math id="mml-ieqn-269"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-270"><mml:math id="mml-ieqn-270"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <italic>B</italic> sets <inline-formula id="ieqn-271"><mml:math id="mml-ieqn-271"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn><mml:mi>T</mml:mi></mml:msubsup><mml:mo>&#x2295;</mml:mo><mml:mover><mml:mrow><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-272"><mml:math id="mml-ieqn-272"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>. If <inline-formula id="ieqn-273"><mml:math id="mml-ieqn-273"><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-274"><mml:math id="mml-ieqn-274"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <italic>B</italic> sets <inline-formula id="ieqn-275"><mml:math id="mml-ieqn-275"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn><mml:mi>T</mml:mi></mml:msubsup><mml:mo>&#x2295;</mml:mo><mml:mover><mml:mrow><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover></mml:math></inline-formula>, <inline-formula id="ieqn-276"><mml:math id="mml-ieqn-276"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mn>0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-277"><mml:math id="mml-ieqn-277"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula>.
<list list-type="simple">
<list-item><p><bold>3.</bold> Finally, <italic>B</italic> adds <inline-formula id="ieqn-278"><mml:math id="mml-ieqn-278"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula> to the <italic>h</italic>-list, and responds to the query as <inline-formula id="ieqn-279"><mml:math id="mml-ieqn-279"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>.</p></list-item>
</list></p>
<p>In all cases, <italic>B</italic>&#x2019;s response, <inline-formula id="ieqn-280"><mml:math id="mml-ieqn-280"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, is indistinguishable from the random oracle.</p>
<p><italic>Aggregate signature queries: A</italic> supplies a sequential aggregate signature <inline-formula id="ieqn-281"><mml:math id="mml-ieqn-281"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> on messages <inline-formula id="ieqn-282"><mml:math id="mml-ieqn-282"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> under keys <inline-formula id="ieqn-283"><mml:math id="mml-ieqn-283"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>. <italic>A</italic> requests a sequential aggregate signature on message <inline-formula id="ieqn-284"><mml:math id="mml-ieqn-284"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> (<inline-formula id="ieqn-285"><mml:math id="mml-ieqn-285"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mi>m</mml:mi></mml:math></inline-formula>), under keys <inline-formula id="ieqn-286"><mml:math id="mml-ieqn-286"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> (<inline-formula id="ieqn-287"><mml:math id="mml-ieqn-287"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow></mml:math></inline-formula>). Firstly, <italic>B</italic> uses AggVerify to ensure that <inline-formula id="ieqn-288"><mml:math id="mml-ieqn-288"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is the correct sequential aggregate signature on <inline-formula id="ieqn-289"><mml:math id="mml-ieqn-289"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> under keys <inline-formula id="ieqn-290"><mml:math id="mml-ieqn-290"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>. If <inline-formula id="ieqn-291"><mml:math id="mml-ieqn-291"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> is incorrect, <italic>B</italic> responds with a placeholder value <inline-formula id="ieqn-292"><mml:math id="mml-ieqn-292"><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula>. Otherwise, <italic>B</italic> runs the hash algorithm on (<inline-formula id="ieqn-293"><mml:math id="mml-ieqn-293"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-294"><mml:math id="mml-ieqn-294"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>) to obtain <inline-formula id="ieqn-295"><mml:math id="mml-ieqn-295"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula>. If <inline-formula id="ieqn-296"><mml:math id="mml-ieqn-296"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <italic>B</italic> responds to the query with <inline-formula id="ieqn-297"><mml:math id="mml-ieqn-297"><mml:mi>&#x03C3;</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, we will show later that <inline-formula id="ieqn-298"><mml:math id="mml-ieqn-298"><mml:mi>&#x03C3;</mml:mi></mml:math></inline-formula> is the correct sequential aggregate signature on (<inline-formula id="ieqn-299"><mml:math id="mml-ieqn-299"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-300"><mml:math id="mml-ieqn-300"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>). Otherwise, <italic>B</italic> reports failure and terminates.</p>
<p><italic>B&#x2019;s output:</italic>At last, algorithm <italic>A</italic> halts and produces a correct forgery sequential aggregate signature <inline-formula id="ieqn-301"><mml:math id="mml-ieqn-301"><mml:mrow><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> on <inline-formula id="ieqn-302"><mml:math id="mml-ieqn-302"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, where <inline-formula id="ieqn-303"><mml:math id="mml-ieqn-303"><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow></mml:math></inline-formula>, and <inline-formula id="ieqn-304"><mml:math id="mml-ieqn-304"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is not queried to the aggregate signature queries. <italic>B</italic> now runs the hash algorithm on <inline-formula id="ieqn-305"><mml:math id="mml-ieqn-305"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, and obtains <inline-formula id="ieqn-306"><mml:math id="mml-ieqn-306"><mml:mo>&#x003C;</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula>. If <inline-formula id="ieqn-307"><mml:math id="mml-ieqn-307"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> and <inline-formula id="ieqn-308"><mml:math id="mml-ieqn-308"><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <italic>B</italic> then computes <inline-formula id="ieqn-309"><mml:math id="mml-ieqn-309"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> and outputs <inline-formula id="ieqn-310"><mml:math id="mml-ieqn-310"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, we will show later that <inline-formula id="ieqn-311"><mml:math id="mml-ieqn-311"><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> with <inline-formula id="ieqn-312"><mml:math id="mml-ieqn-312"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mn>2</mml:mn><mml:mi>t</mml:mi></mml:math></inline-formula>.</p>
<p>This completes the description of algorithm <italic>B</italic>.</p>
<p><bold>Claim 1.</bold> <italic>If A makes a valid sequential aggregate signature query on </italic>(<inline-formula id="ieqn-313"><mml:math id="mml-ieqn-313"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-314"><mml:math id="mml-ieqn-314"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>) <italic>with</italic> <inline-formula id="ieqn-315"><mml:math id="mml-ieqn-315"><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow></mml:math></inline-formula>, <italic>supplying a correct sequential aggregate signature</italic> <inline-formula id="ieqn-316"><mml:math id="mml-ieqn-316"><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> <italic>on messages</italic> <inline-formula id="ieqn-317"><mml:math id="mml-ieqn-317"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula> <italic>under keys</italic> <inline-formula id="ieqn-318"><mml:math id="mml-ieqn-318"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>, <italic>then either B reports failure and halts or B&#x2019;s output </italic><inline-formula id="ieqn-319"><mml:math id="mml-ieqn-319"><mml:mi>&#x03C3;</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula><italic> is the correct sequential aggregate signature on</italic> (<inline-formula id="ieqn-320"><mml:math id="mml-ieqn-320"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-321"><mml:math id="mml-ieqn-321"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>).</p>
<p><italic>Proof:</italic> Firstly, we introduce some notations. For each <italic>j</italic>, <inline-formula id="ieqn-322"><mml:math id="mml-ieqn-322"><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>, <italic>B</italic>&#x2019;s hash algorithm associates with input (<inline-formula id="ieqn-323"><mml:math id="mml-ieqn-323"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-324"><mml:math id="mml-ieqn-324"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>) a tuple <inline-formula id="ieqn-325"><mml:math id="mml-ieqn-325"><mml:mo>&#x003C;</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">w</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x003E;</mml:mo></mml:math></inline-formula>. If <italic>B</italic> does not abort, then <inline-formula id="ieqn-326"><mml:math id="mml-ieqn-326"><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-327"><mml:math id="mml-ieqn-327"><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo>&#x2217;</mml:mo></mml:math></inline-formula> for <inline-formula id="ieqn-328"><mml:math id="mml-ieqn-328"><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>N</mml:mi></mml:math></inline-formula>. It is reasonable to assume that (<inline-formula id="ieqn-329"><mml:math id="mml-ieqn-329"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-330"><mml:math id="mml-ieqn-330"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:msubsup><mml:mi></mml:mi><mml:mn>1</mml:mn><mml:mi>j</mml:mi></mml:msubsup></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>) is queried to the hash query before it is signed, for the hash function is random oracle. Hence, from the hash algorithm, we obtain that <inline-formula id="ieqn-331"><mml:math id="mml-ieqn-331"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-332"><mml:math id="mml-ieqn-332"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-333"><mml:math id="mml-ieqn-333"><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>j</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (<inline-formula id="ieqn-334"><mml:math id="mml-ieqn-334"><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>. Also from the hash algorithm, we know that
<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:mrow><mml:mrow><mml:msup><mml:mi mathvariant="bold">z</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mtext>N</mml:mtext></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mtext>N</mml:mtext></mml:mrow></mml:msubsup><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:math></disp-formula>
<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:mrow></mml:msubsup><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>
<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>j</mml:mtext></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:mrow></mml:msubsup><mml:mrow><mml:mo>,</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>2</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></disp-formula>
<disp-formula id="ueqn-1">
<mml:math id="mml-ueqn-1" display="block"><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mi>z</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mi>m</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mn mathvariant="bold">0</mml:mn></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>The last equation shows that <inline-formula id="ieqn-335"><mml:math id="mml-ieqn-335"><mml:mi>&#x03C3;</mml:mi><mml:mo stretchy="false">&#x2190;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is a valid sequential aggregate signature on (<inline-formula id="ieqn-336"><mml:math id="mml-ieqn-336"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula id="ieqn-337"><mml:math id="mml-ieqn-337"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>).</p>
<p><bold>Claim 2:</bold> <italic>If A outputs a valid nontrivial forgery sequential aggregate signature</italic> <inline-formula id="ieqn-338"><mml:math id="mml-ieqn-338"><mml:mrow><mml:msup><mml:mi>&#x03C3;</mml:mi><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> <italic>on </italic><inline-formula id="ieqn-339"><mml:math id="mml-ieqn-339"><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>,<italic> then B either reports failure and halts or outputs the correct solution</italic> <inline-formula id="ieqn-340"><mml:math id="mml-ieqn-340"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> <italic>such that</italic> <inline-formula id="ieqn-341"><mml:math id="mml-ieqn-341"><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> <italic>with </italic><inline-formula id="ieqn-342"><mml:math id="mml-ieqn-342"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mn>2</mml:mn><mml:mi>t</mml:mi></mml:math></inline-formula>.</p>
<p><italic>Proof:</italic> We use the same notations introduced in Claim 1. If <italic>B</italic> does not abortion, then <inline-formula id="ieqn-343"><mml:math id="mml-ieqn-343"><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-344"><mml:math id="mml-ieqn-344"><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula>. Hence, from the hash algorithm, we know that
<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mover><mml:mrow><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo accent="false">&#x00AF;</mml:mo></mml:mover><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>Thus,
<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mi>h</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">H</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">M</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow><mml:mi>N</mml:mi></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2295;</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mi>&#x03D5;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mi></mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>And hence, we can obtain that if we set <inline-formula id="ieqn-345"><mml:math id="mml-ieqn-345"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>&#x2295;</mml:mo><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>&#x2217;</mml:mo></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, then <inline-formula id="ieqn-346"><mml:math id="mml-ieqn-346"><mml:mrow><mml:mtext>H</mml:mtext></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">y</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> with <inline-formula id="ieqn-347"><mml:math id="mml-ieqn-347"><mml:mrow><mml:mtext>wt</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2264;</mml:mo><mml:mn>2</mml:mn><mml:mi>t</mml:mi></mml:math></inline-formula>.</p>
<p>It remains to show that the success probability <inline-formula id="ieqn-348"><mml:math id="mml-ieqn-348"><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> that <italic>B</italic> outputs <inline-formula id="ieqn-349"><mml:math id="mml-ieqn-349"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> is at least <inline-formula id="ieqn-350"><mml:math id="mml-ieqn-350"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true">/</mml:mo><mml:mrow><mml:mrow><mml:mpadded width="0"><mml:mphantom><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mphantom></mml:mpadded></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>. We define three events as below:</p>
<p><inline-formula id="ieqn-351"><mml:math id="mml-ieqn-351"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>: <italic>B</italic> does not abort during the <inline-formula id="ieqn-352"><mml:math id="mml-ieqn-352"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> aggregate signature queries phase.</p>
<p><inline-formula id="ieqn-353"><mml:math id="mml-ieqn-353"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>: <italic>A</italic> outputs a valid and nontrivial forgery sequential aggregate signature.</p>
<p><inline-formula id="ieqn-354"><mml:math id="mml-ieqn-354"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula>: <italic>B</italic> does not abort during the output phase.</p>
<p>Then <italic>B</italic> succeeds in giving the correct solution if all of the above events happen, i.e., <inline-formula id="ieqn-355"><mml:math id="mml-ieqn-355"><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2227;</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo>&#x2227;</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>&#x2227;</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo></mml:math></inline-formula>.</p>
<p>On the other hand, we have the following three claims.</p>
<p><bold>Claim 3.</bold> <inline-formula id="ieqn-356"><mml:math id="mml-ieqn-356"><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
<p><italic>Proof:</italic> If <italic>B</italic> does not abort during each aggregate signature query, then all <inline-formula id="ieqn-357"><mml:math id="mml-ieqn-357"><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, which implies the probability that <italic>B</italic> does not abort during each signature query is <inline-formula id="ieqn-358"><mml:math id="mml-ieqn-358"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>. Hence, the probability that <italic>B</italic> does not abort during the <inline-formula id="ieqn-359"><mml:math id="mml-ieqn-359"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> signature queries is <inline-formula id="ieqn-360"><mml:math id="mml-ieqn-360"><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
<p><bold>Claim 4.</bold> <inline-formula id="ieqn-361"><mml:math id="mml-ieqn-361"><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>&#x2265;</mml:mo><mml:mi>&#x03B5;</mml:mi></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<p>Proof: Trivially.</p>
<p><bold>Claim 5.</bold> <inline-formula id="ieqn-362"><mml:math id="mml-ieqn-362"><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>&#x2227;</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>N</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> .</p>
<p><italic>Proof:</italic> If <italic>B</italic> does not abort during the output phase, then all <inline-formula id="ieqn-363"><mml:math id="mml-ieqn-363"><mml:msubsup><mml:mi>c</mml:mi><mml:mn>1</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy="false">(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x2264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x2264;</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula>, <inline-formula id="ieqn-364"><mml:math id="mml-ieqn-364"><mml:msubsup><mml:mi>c</mml:mi><mml:mn>2</mml:mn><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> which implies the probability that <italic>B</italic> does not abort during the output phase is <inline-formula id="ieqn-365"><mml:math id="mml-ieqn-365"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow><mml:mo>.</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>N</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula> . Hence, <inline-formula id="ieqn-366"><mml:math id="mml-ieqn-366"><mml:mo movablelimits="true" form="prefix">Pr</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>3</mml:mn></mml:msub></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mrow><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow><mml:mo>&#x2227;</mml:mo><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow><mml:mo stretchy="false">]</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mfrac><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mi>N</mml:mi></mml:msup></mml:mrow></mml:math></inline-formula>.</p>
<p>Combine the results of the above claims, we obtain immediately that <inline-formula id="ieqn-367"><mml:math id="mml-ieqn-367"><mml:msup><mml:mi>&#x03B5;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x2265;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true">/</mml:mo><mml:mrow><mml:mrow><mml:mpadded width="0"><mml:mphantom><mml:mn>1</mml:mn><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mphantom></mml:mpadded></mml:mrow></mml:mrow><mml:mo fence="true" stretchy="true" symmetric="true"></mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mi>r</mml:mi></mml:msup></mml:mrow></mml:mrow></mml:mrow><mml:msup><mml:mo stretchy="false">)</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x2212;</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mi>&#x03B5;</mml:mi></mml:math></inline-formula>.</p>
<p>The running ting <inline-formula id="ieqn-368"><mml:math id="mml-ieqn-368"><mml:msup><mml:mi>&#x03C4;</mml:mi><mml:mrow><mml:mi mathvariant="normal">&#x2032;</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> of <italic>B</italic> equal to the running time <inline-formula id="ieqn-369"><mml:math id="mml-ieqn-369"><mml:mi>&#x03C4;</mml:mi></mml:math></inline-formula> plus the time of <italic>B</italic>&#x2019;s time to respond <italic>A</italic>&#x2019;s <inline-formula id="ieqn-370"><mml:math id="mml-ieqn-370"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>H</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> hash queries and <inline-formula id="ieqn-371"><mml:math id="mml-ieqn-371"><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> aggregate signature queries, each hash query involves at most <italic>N</italic> matrix-vector multiplication, at most <inline-formula id="ieqn-372"><mml:math id="mml-ieqn-372"><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> exclusive or of vectors and at most <italic>N</italic> computation of the function <inline-formula id="ieqn-373"><mml:math id="mml-ieqn-373"><mml:mi>&#x03D5;</mml:mi></mml:math></inline-formula>. Each aggregate signature query needs at most <italic>N</italic> hash queries, at most <italic>N</italic> computation of <inline-formula id="ieqn-374"><mml:math id="mml-ieqn-374"><mml:mi>&#x03D5;</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-375"><mml:math id="mml-ieqn-375"><mml:mrow><mml:msup><mml:mi>&#x03D5;</mml:mi><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, <italic>N</italic> exclusive or of vectors. At last, in order to give <inline-formula id="ieqn-376"><mml:math id="mml-ieqn-376"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula>, <italic>B</italic> needs one exclusive or of two vectors and <italic>N</italic> hash queries. Then, the total time of <italic>B</italic>&#x2019;s is at most
<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:mi>&#x03C4;</mml:mi><mml:mo>+</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>H</mml:mi></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mi>N</mml:mi><mml:mrow><mml:msub><mml:mi>q</mml:mi><mml:mi>S</mml:mi></mml:msub></mml:mrow><mml:mo>+</mml:mo><mml:mi>N</mml:mi><mml:mo stretchy="false">)</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mn>3</mml:mn><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mi>N</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:math></disp-formula></p>
</sec>
</sec>
<sec id="s5"><label>5</label><title>Efficiency Comparisons</title>
<p>We now compare the efficiency between our scheme and the original CFS scheme without aggregate in <italic>N</italic> users setting. To achieve security, for the CFS signature, [<xref ref-type="bibr" rid="ref-31">31</xref>] suggests the parameters: <inline-formula id="ieqn-377"><mml:math id="mml-ieqn-377"><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>22</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-378"><mml:math id="mml-ieqn-378"><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn>9</mml:mn></mml:math></inline-formula>, <inline-formula id="ieqn-379"><mml:math id="mml-ieqn-379"><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>, and for each signature <inline-formula id="ieqn-380"><mml:math id="mml-ieqn-380"><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, one needs about 182 and 19 bits to store <inline-formula id="ieqn-381"><mml:math id="mml-ieqn-381"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">z</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula id="ieqn-382"><mml:math id="mml-ieqn-382"><mml:mrow><mml:mrow><mml:mi mathvariant="bold">s</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> respectively. So in order to store <italic>N</italic> signatures, the total bits needed in the CFS scheme is (182&#x2009;&#x002B;&#x2009;19)<italic>N &#x003D;&#x2009;</italic>201&#x2005;<italic>N</italic>, while one needs only 182&#x2009;&#x002B;&#x2009;19&#x2005;<italic>N</italic> bits to store the signatures by using the sequential aggregate signatures we proposed. Hence, one can save about (1&#x2212;<inline-formula id="ieqn-383"><mml:math id="mml-ieqn-383"><mml:mfrac><mml:mrow><mml:mn>19</mml:mn></mml:mrow><mml:mrow><mml:mn>201</mml:mn></mml:mrow></mml:mfrac></mml:math></inline-formula>)<inline-formula id="ieqn-384"><mml:math id="mml-ieqn-384"><mml:mo>&#x2248;</mml:mo><mml:mn>90</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></inline-formula> storage when <italic>N</italic> is big. It is not difficult to see that the signature generation and verification are of the same time. We give the comparison in <xref ref-type="table" rid="table-2">Tab. 2</xref>.</p>
<table-wrap id="table-2"><label>Table 2</label><caption><title>Efficiency comparison <bold>(</bold><italic>m&#x2009;</italic>&#x003D;&#x2009;22, <italic>t&#x2009;</italic>&#x003D;&#x2009;9, <inline-formula id="ieqn-385"><mml:math id="mml-ieqn-385"><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:msup><mml:mn>2</mml:mn><mml:mrow><mml:mn>22</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula>)</title></caption>
<table frame="hsides">
<colgroup>
<col align="left"/>
<col align="left"/>
<col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left"/>
<th align="left">Signature numbers</th>
<th align="left">Signature length</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Plain CFS</td>
<td align="left"><italic>N</italic></td>
<td align="left">201&#x2005;<italic>N</italic></td>
</tr>
<tr>
<td align="left">Aggregate CFS</td>
<td align="left"><italic>N</italic></td>
<td align="left">182&#x2009;&#x002B;&#x2009;19&#x2005;<italic>N</italic></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s6"><label>6</label><title>Conclusions and Open Problems</title>
<p>In this paper, we propose the first code based sequential aggregate signature, and prove the security of the scheme in the random oracle model. We note that the length of the aggregate signature in our scheme is not constant. It is an open problem to construct code based sequential aggregate signatures with constant length. It is also an interesting problem to construct code based aggregate signatures using the Schnorr-Lyubashevsky Framework [<xref ref-type="bibr" rid="ref-18">18</xref>,<xref ref-type="bibr" rid="ref-20">20</xref>].</p>
</sec>
</body>
<back>
<fn-group>
<fn fn-type="other"><p><bold>Funding Statement:</bold> This work was supported in part by the National Natural Science Foundation of China under Grant 62072240, by the Natural Science Foundation of Jiangsu Province under Grant BK20210330 and by the National Key Research and Development Program of China under Grant 2020YFB1804604.</p></fn>
<fn fn-type="conflict"><p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p></fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Kent</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Lynn</surname></string-name> and <string-name><given-names>K.</given-names> <surname>Seo</surname></string-name></person-group>, &#x201C;<article-title>Secure border gateway protocol (secure-BGP)</article-title>,&#x201D; <source>IEEE J. Selected Areas in Comm</source>, vol. <volume>18</volume>, no. <issue>4</issue>, pp. <fpage>582</fpage>&#x2013;92, <year>2000</year>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>D.</given-names> <surname>Boneh</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Gentry</surname></string-name>, <string-name><given-names>B.</given-names> <surname>Lynn</surname></string-name> and <string-name><given-names>H.</given-names> <surname>Shacham</surname></string-name></person-group>, &#x201C;<article-title>Aggregate and verifiably encrypted signatures from bilinear maps</article-title>,&#x201D; in <conf-name>Advances in Cryptology, EUROCRYPT 2003. Proc.: Lecture Notes in Computer Science (LNCS 2656)</conf-name>, <conf-loc>Warsaw, Poland</conf-loc>, pp. <fpage>416</fpage>&#x2013;<lpage>432</lpage>, <year>2003</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Lysyanskaya</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Micali</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Reyzin</surname></string-name> and <string-name><given-names>H.</given-names> <surname>Shacham</surname></string-name></person-group>, &#x201C;<chapter-title>Sequential aggregate signatures from trapdoor permutations</chapter-title>,&#x201D; in <source>Advances in Cryptology, EUROCRYPT 2004. Proc.: Lecture Notes in Computer Science (LNCS 3027)</source>, <publisher-loc>Interlaken, Switzerland</publisher-loc>, pp. <fpage>74</fpage>&#x2013;<lpage>90</lpage>, <year>2004</year>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Boldyreva</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Gentry</surname></string-name>, <string-name><given-names>A.</given-names> <surname>O&#x2019;Neill</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Yum</surname></string-name></person-group>, &#x201C;<article-title>Ordered multisignatures and identity-based aggregate signatures with applications to secure routing</article-title>,&#x201D; in <conf-name>Proc. of the 14th ACM Conf. on Computer and Communications Security, CCS 2007</conf-name>, <conf-loc>Alexandria, Virginia, USA</conf-loc>, pp. <fpage>276</fpage>&#x2013;<lpage>285</lpage>, <year>2007</year>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>X.</given-names> <surname>Cheng</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Liu</surname></string-name> and <string-name><given-names>X.</given-names> <surname>Wang</surname></string-name></person-group>, &#x201C;<article-title>Identity-based aggregate and verifiably encrypted signatures from bilinear pairing</article-title>,&#x201D; in <conf-name>Int. Conf. on Computational Science and Its Applications, ICCSA 2005. Proc.: Lecture Notes in Computer Science (LNCS 3483)</conf-name>, <conf-loc>Singapore</conf-loc>, pp. <fpage>1046</fpage>&#x2013;<lpage>1054</lpage>, <year>2005</year>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>C.</given-names> <surname>Gentry</surname></string-name> and <string-name><given-names>Z.</given-names> <surname>Ramzan</surname></string-name></person-group>, &#x201C;<article-title>Identity-based aggregate signatures</article-title>,&#x201D; in <conf-name>Public Key Cryptography, PKC 2006. Proc.: Lecture Notes in Computer Science (LNCS 3958)</conf-name>, <conf-loc>New York City, NY, USA</conf-loc>, pp. <fpage>257</fpage>&#x2013;<lpage>273</lpage>, <year>2006</year>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Lu</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Ostrovsky</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Sahai</surname></string-name>, <string-name><given-names>H.</given-names> <surname>Shacham</surname></string-name> and <string-name><given-names>B.</given-names> <surname>Waters</surname></string-name></person-group>, &#x201C;<article-title>Sequential aggregate signatures and multisignatures without random oracles</article-title>,&#x201D; in <conf-name>Advances in Cryptology, EUROCRYPT 2006. Proc.: Lecture Notes in Computer Science (LNCS 4004)</conf-name>, <conf-loc>St. Petersburg, Russia</conf-loc>, pp. <fpage>465</fpage>&#x2013;<lpage>485</lpage>, <year>2006</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Xu</surname></string-name>, <string-name><given-names>Z.</given-names> <surname>Zhang</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Feng</surname></string-name></person-group>, &#x201C;<article-title>ID-Based aggregate signatures from bilinear pairings</article-title>,&#x201D; in <conf-name>Cryptology and Network Security, 4th Int. Conf., CANS 2005. Proc.: Lecture Notes in Computer Science (LNCS 3810)</conf-name>, <conf-loc>Xiamen, China</conf-loc>, pp. <fpage>110</fpage>&#x2013;<lpage>119</lpage>, <year>2005</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>P. W.</given-names> <surname>Shor</surname></string-name></person-group>, &#x201C;<article-title>Polynomial-tme algorithms for prime factorization and discrete logarithms on a quantum computer</article-title>,&#x201D; <source>SIAM J. Computing</source>, vol. <volume>26</volume>, pp. <fpage>1484</fpage>&#x2013;<lpage>1509</lpage>, <year>1997</year>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><collab>National Institute of Standards and Technology</collab></person-group>, &#x201C;<article-title>NIST post quantum standardization process</article-title>,&#x201D; <year>2017</year>. [Online]. Available: <uri xlink:href="https://csrc.nist. gov/Projects/Post-Quantum-Cryptography">https://csrc.nist. gov/Projects/Post-Quantum-Cryptography</uri>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R. J.</given-names> <surname>McEliece</surname></string-name></person-group>, &#x201C;<article-title>A Public-key cryptosystem based on algebraic coding theory</article-title>,&#x201D; <source>Jet propulsion Laboratory DSN Progress Report</source>, vol. <volume>42-44</volume>, pp. <fpage>114</fpage>&#x2013;<lpage>116</lpage>, <year>1978</year>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Niederreiter</surname></string-name></person-group>, &#x201C;<article-title>Knapsack-type crytosystems and algebraic coding theory</article-title>,&#x201D; <source>Prob. Contr. Inform. Theory</source>, vol. <volume>15</volume>, no. <issue>2</issue>, pp. <fpage>157</fpage>&#x2013;<lpage>166</lpage>, <year>1986</year>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>N.</given-names> <surname>Courtois</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Finiasz</surname></string-name> and <string-name><given-names>N.</given-names> <surname>Sendrier</surname></string-name></person-group>, &#x201C;<article-title>How to achieve a McEliece-based digital signature scheme</article-title>,&#x201D; in <conf-name>Advances in Cryptology, ASIACRYPT 2001. Proc.: Lecture Notes in Computer Science (LNCS 2248)</conf-name>, <conf-loc>Gold Coast, Australia</conf-loc><publisher-loc>,</publisher-loc> pp. <fpage>157</fpage>&#x2013;<lpage>174</lpage>, <year>2001</year>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Bellare</surname></string-name> and <string-name><given-names>P.</given-names> <surname>Rogaway</surname></string-name></person-group>, &#x201C;<article-title>Random oracles are practical: A paradigm for designing efficient protocols</article-title>,&#x201D; in <conf-name>Proc. of the 1st ACM Conf. on Computer and Communications Security, CCS 1993</conf-name>, <conf-loc>Fairfax, Virginia, USA</conf-loc>, pp. <fpage>62</fpage>&#x2013;<lpage>73</lpage>, <year>1993</year>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Dallot</surname></string-name></person-group>, &#x201C;<article-title>Towards a concrete security proof of courtois, finiasz and sendrier signature scheme</article-title>,&#x201D; in <conf-name>Research in Cryptology, Second Western European Workshop, WEWoRC 2007. Proc.: Lecture Notes in Computer Science (LNCS 4945)</conf-name>, <conf-loc>Bochum, Germany</conf-loc>, pp. <fpage>65</fpage>&#x2013;<lpage>77</lpage>, <year>2008</year>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Buchmann</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Coronado</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Doring</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Engelbert</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Ludwig</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Post-quantum signatures</article-title>,&#x201D; <year>2004</year>. [Online]. Available: <uri xlink:href="https://eprint.iacr.org/2004/297.pdf">https://eprint.iacr.org/2004/297.pdf</uri>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Cayrel</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Meziani</surname></string-name></person-group>, &#x201C;<article-title>Post-quantum cryptography: Code-based signatures</article-title>,&#x201D; in <conf-name>Advances in Computer Science and Information Technology, AST/UCMA/ISA/ACN 2010. Proc.: Lecture Notes in Computer Science (LNCS 6059)</conf-name>, <conf-loc>Miyazaki, Japan</conf-loc>, pp. <fpage>82</fpage>&#x2013;<lpage>89</lpage>, <year>2010</year>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Song</surname></string-name>, <string-name><given-names>X.</given-names> <surname>Huang</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Mu</surname></string-name>, <string-name><given-names>W.</given-names> <surname>Wu</surname></string-name> and <string-name><given-names>H.</given-names> <surname>Wang</surname></string-name></person-group>, &#x201C;<article-title>A Code-based signature scheme from the lyubashevsky framework</article-title>,&#x201D; <source>Theoretical Computer Science</source>, vol. <volume>835</volume>, pp. <fpage>15</fpage>&#x2013;<lpage>30</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>Z.</given-names> <surname>Li</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Xing</surname></string-name> and <string-name><given-names>S. L.</given-names> <surname>Yeo</surname></string-name></person-group>, &#x201C;<article-title>A new code based signature scheme without trapdoors</article-title>,&#x201D; <source>Cryptology ePrint Archive</source>, Report 2020/1250, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Baldi</surname></string-name>, <string-name><given-names>F.</given-names> <surname>Chiaraluce</surname></string-name> and <string-name><given-names>P.</given-names> <surname>Santini</surname></string-name></person-group>, &#x201C;<article-title>Code-based signatures without trapdoors through restricted vectors</article-title>,&#x201D; <source>Cryptology ePrint Archive</source>, Report 2021/294, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Baldi</surname></string-name>, <string-name><given-names>J. C.</given-names> <surname>Deneuville</surname></string-name>, <string-name><given-names>E.</given-names> <surname>Persichetti</surname></string-name> and <string-name><given-names>P.</given-names> <surname>Santini</surname></string-name></person-group>, &#x201C;<article-title>Cryptanalysis of a code-based signature scheme based on the schnorr-lyubashevsky framework</article-title>,&#x201D; <source>IEEE Communications Letters</source>, vol. <volume>25</volume>, no. <issue>9</issue>, pp. <fpage>2829</fpage>&#x2013;<lpage>2833</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Bansarkhani</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Buchmann</surname></string-name></person-group>, &#x201C;<article-title>Towards lattice based aggregate signatures</article-title>,&#x201D; in&#x201C; <conf-name>Progress in Cryptology, AFRICACRYPT 2014. Proc.: Lecture Notes in Computer Science (LNCS 8469)</conf-name>, <conf-loc>Marrakesh, Morocco</conf-loc>, pp. <fpage>336</fpage>&#x2013;<lpage>355</lpage>, <year>2014</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>Y.</given-names> <surname>Zhang</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Hu</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Jiang</surname></string-name></person-group>, &#x201C;<article-title>Lattice- based sequential aggregate signatures with lazy verification</article-title>,&#x201D; <source>the Journal of China Universities of Posts and Telecommunications</source>, vol. <volume>22</volume>, no. <issue>6</issue>, pp. <fpage>36</fpage>&#x2013;<lpage>44</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>G.</given-names> <surname>Xu</surname></string-name>, <string-name><given-names>Y.</given-names> <surname>Cao</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Xu</surname></string-name>, <string-name><given-names>K.</given-names> <surname>Xiao</surname></string-name>, <string-name><given-names>X.</given-names> <surname>Liu</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>A novel post-quantum blind signature for log system in blockchain</article-title>,&#x201D; <source>Computer Systems Science and Engineering</source>, vol. <volume>41</volume>, no. <issue>3</issue>, pp. <fpage>945</fpage>&#x2013;<lpage>958</lpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Alghafis</surname></string-name>, <string-name><given-names>H. M.</given-names> <surname>Waseem</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Khan</surname></string-name> and <string-name><given-names>S. S.</given-names> <surname>Jamal</surname></string-name></person-group>, &#x201C;<article-title>A hybrid cryptosystem for digital contents confidentiality based on rotation of quantum spin states</article-title>,&#x2019;&#x2019; <source>Physica A: Statistical Mechanics and its Applications</source>, vol. <volume>554(C)</volume>, pp. <fpage>123908</fpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H. M.</given-names> <surname>Waseem</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Alghafis</surname></string-name> and <string-name><given-names>M.</given-names> <surname>Khan</surname></string-name></person-group>, &#x201C;<article-title>An efficient public Key cryptosystem based on dihedral group and quantum spin states</article-title>,&#x201D; <source>IEEE Access</source>, vol. <volume>8</volume>, pp. <fpage>71821</fpage>&#x2013;<lpage>71832</lpage>, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>Alghafis</surname></string-name>, <string-name><given-names>H. M.</given-names> <surname>Waseem</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Khan</surname></string-name>, <string-name><given-names>S. S.</given-names> <surname>Jamal</surname></string-name>, <string-name><given-names>M.</given-names> <surname>Amin</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>A novel digital contents privacy scheme based on quantum harmonic oscillator and schrodinger paradox</article-title>,&#x201D; <source>Wireless Networks</source>, <year>2020</year>. <uri xlink:href="https://doi.org/10.1007/s11276-020-02363-7">https://doi.org/10.1007/s11276-020-02363-7</uri>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="thesis"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Finiasz</surname></string-name></person-group>, &#x201C;<article-title>Nouvelles constructions utilisant des codes correcteurs derreurs en cryptographie &#x2018;a clef publique</article-title>,&#x201D; <comment>Ph.D dissertation</comment>, <publisher-name>INRIA C Ecole Polytechnique</publisher-name>, <publisher-loc>France</publisher-loc>, <year>2004</year>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="web"><person-group person-group-type="author"><string-name><given-names>N.</given-names> <surname>Sendrier</surname></string-name></person-group>, &#x201C;<article-title>Code-based one way functions</article-title>,&#x201D; <year>2007</year>. [Online]. Available: <uri xlink:href="http://ecrypt-ss07.rhul.ac.uk/Slides/Thursday/sendrier-samos07.pdf">http://ecrypt-ss07.rhul.ac.uk/Slides/Thursday/sendrier-samos07.pdf</uri>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Overbeck</surname></string-name> and <string-name><given-names>N.</given-names> <surname>Sendrier</surname></string-name></person-group>, &#x201C;<chapter-title>Code based cryptography</chapter-title>,&#x201D; in <person-group person-group-type="author"><string-name><given-names>D. J.</given-names> <surname>Bernstein</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Buchmann</surname></string-name>, <string-name><given-names>E.</given-names> <surname>Dahmen</surname></string-name></person-group>, (Eds.), <conf-name>Post-Quantum Cryptography</conf-name>, <conf-loc>Berlin, Heidelberg, Germany</conf-loc>: <publisher-name>Springer</publisher-name>, pp. <fpage>95</fpage>&#x2013;<lpage>145</lpage>, <year>2009</year>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Finiasz</surname></string-name> and <string-name><given-names>N.</given-names> <surname>Sendrier</surname></string-name></person-group>, &#x201C;<article-title>Security bounds for the design of code-based cryptosystems</article-title>,&#x201D; in <conf-name>Advances in Cryptology, ASIACRYPT 2009. Proc.: Lecture Notes in Computer Science (LNCS 5912)</conf-name>, <conf-loc>Tokyo, Japan</conf-loc>, pp. <fpage>88</fpage>&#x2013;<lpage>105</lpage>, <year>2009</year>.</mixed-citation></ref>
</ref-list>
</back>
</article>