<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN" "JATS-journalpublishing1.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">INFORMATICA</journal-id>
<journal-title-group><journal-title>Informatica</journal-title></journal-title-group>
<issn pub-type="epub">1822-8844</issn><issn pub-type="ppub">0868-4952</issn><issn-l>0868-4952</issn-l>
<publisher>
<publisher-name>Vilnius University</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">INFO1221</article-id>
<article-id pub-id-type="doi">10.15388/Informatica.2019.208</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Security, Trustworthiness and Effectivity Analysis of an Offline E-Cash System with Observers</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Muleravicius</surname><given-names>Jonas</given-names></name><email xlink:href="jonas.muleravicius@ktu.edu">jonas.muleravicius@ktu.edu</email><xref ref-type="aff" rid="j_info1221_aff_001"/><bio>
<p><bold>J. Muleravicius</bold> is currently seeking a PhD degree at Kaunas University of Technology. His research interest is in cryptography focusing in development and analysis of e-cash systems. During the last 5 years he made contributions to 3 papers on this topic.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Timofejeva</surname><given-names>Inga</given-names></name><email xlink:href="inga.timofejeva@ktu.edu">inga.timofejeva@ktu.edu</email><xref ref-type="aff" rid="j_info1221_aff_001"/><bio>
<p><bold>I. Timofejeva</bold> is currently seeking a master degree at Kaunas University of Technology. One of her many scientific research interests is cryptography. Currently her interests are focused in the development and analysis e-cash systems. She contributed to 3 papers on this topic.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Mihalkovich</surname><given-names>Aleksejus</given-names></name><email xlink:href="aleksejus.michalkovic@ktu.lt">aleksejus.michalkovic@ktu.lt</email><xref ref-type="aff" rid="j_info1221_aff_001"/><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>A. Mihalkovich</bold> received PhD degree from Kaunas University of Technology, in 2015. Currently he is an assistant professor in Department of Applied Mathematics in Kaunas University of Technology. His main research interest is focused in cryptography and cryptanalysis. During the last 5 years he made contributions to 4 papers published in Thompson Reuters database journals.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Sakalauskas</surname><given-names>Eligijus</given-names></name><email xlink:href="eligijus.sakalauskas@ktu.lt">eligijus.sakalauskas@ktu.lt</email><xref ref-type="aff" rid="j_info1221_aff_001"/><bio>
<p><bold>E. Sakalauskas</bold> received PhD degree from Kaunas Polytechnical Institute, in 1983. Currently he is a professor in Department of Applied Mathematics in Kaunas University of Technology. In recent time his research interests are focused in cryptography. The main research results in this field were published in over 15 papers.</p></bio>
</contrib>
<aff id="j_info1221_aff_001">Department of Applied Mathematics, <institution>Kaunas University of Technology</institution>, Studentu Str. 50, LT-51368, Kaunas, <country>Lithuania</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2019</year></pub-date><volume>30</volume><issue>2</issue><fpage>327</fpage><lpage>348</lpage><history><date date-type="received"><month>11</month><year>2018</year></date><date date-type="accepted"><month>3</month><year>2019</year></date></history>
<permissions><copyright-statement>© 2019 Vilnius University</copyright-statement><copyright-year>2019</copyright-year>
<license license-type="open-access" xlink:href="http://creativecommons.org/licenses/by/4.0/">
<license-p>Open access article under the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">CC BY</ext-link> license.</license-p></license></permissions>
<abstract>
<p>In our previous paper we presented an offline e-cash system with observers. We have shown that the proposed system satisfies basic requirements for e-cash schemes. We also covered such security issues as chosen message attack resistance and forgery of protocols data. However, in that paper we focused more on the system itself, rather than its analysis.</p>
<p>Hence, here we present cryptanalysis of our system. We aim to prove that existential forgery of data is not possible due to complexity of the discrete logarithm problem. Furthermore, we perform the analysis of trustworthiness of the system using the so-called BAN logic. Also, we consider effectivity of the proposed e-cash system in observers with limited computational resources.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>e-cash</kwd>
<kwd>BAN logic</kwd>
<kwd>observers</kwd>
<kwd>computation time</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_info1221_s_001">
<label>1</label>
<title>Introduction</title>
<p>Since their discovery, e-cash systems have drawn attention of many scientific minds in cryptography. Developments in this branch of cryptography led to most famous cryptocurrency in the world – Bitcoin. Nowadays authors tend to propose transactions based on e-cash system, rather than focusing on check transactions. The following challenges for e-cash systems were pointed out by many authors (Pfitzmann and Köhntopp, <xref ref-type="bibr" rid="j_info1221_ref_021">2001</xref>; Rosenberg, <xref ref-type="bibr" rid="j_info1221_ref_024">2010</xref>; Eng and Okamoto, <xref ref-type="bibr" rid="j_info1221_ref_010">1994</xref>; Chaum <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1221_ref_005">1988</xref>; Chaum and Pedersen, <xref ref-type="bibr" rid="j_info1221_ref_006">1992</xref>; Kreft and Adi, <xref ref-type="bibr" rid="j_info1221_ref_018">2006</xref>; Muleravičius <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1221_ref_019">2016</xref>):</p>
<list>
<list-item id="j_info1221_li_001">
<label>1.</label>
<p>Security against money laundering;</p>
</list-item>
<list-item id="j_info1221_li_002">
<label>2.</label>
<p>Double spending prevention;</p>
</list-item>
<list-item id="j_info1221_li_003">
<label>3.</label>
<p>Loss of e-wallet;</p>
</list-item>
<list-item id="j_info1221_li_004">
<label>4.</label>
<p>Preservation of customers’ anonymity;</p>
</list-item>
<list-item id="j_info1221_li_005">
<label>5.</label>
<p>Minimization of online operations on a large database;</p>
</list-item>
<list-item id="j_info1221_li_006">
<label>6.</label>
<p>Security against e-coin forgery.</p>
</list-item>
</list>
<p>Since e-cash is now considered a digital analogue of regular money, any proposed system of this type should satisfy the following main properties:</p>
<list>
<list-item id="j_info1221_li_007">
<label>1.</label>
<p><bold>Anonymity:</bold> The customer using his e-cash to pay for a product must remain anonymous against the recipient of the money as well as the bank.</p>
</list-item>
<list-item id="j_info1221_li_008">
<label>2.</label>
<p><bold>Unreusability:</bold> E-cash cannot be copied or double spent. This implies that the e-wallet system has to minimize the risks for forgery and/or provide ways for the identification of a dishonest user.</p>
</list-item>
<list-item id="j_info1221_li_009">
<label>3.</label>
<p><bold>Unforgeability:</bold> Only authorized parties (i.e. the bank) can produce e-cash.</p>
</list-item>
<list-item id="j_info1221_li_010">
<label>4.</label>
<p><bold>Off-line Payment:</bold> The payment transaction must be performed offline, i.e. no communication with the bank should be necessary during the payment protocol.</p>
</list-item>
<list-item id="j_info1221_li_011">
<label>5.</label>
<p><bold>Transferability:</bold> Received e-cash can be applied for other payments among customers, regardless of whether transactions are online or offline.</p>
</list-item>
<list-item id="j_info1221_li_012">
<label>6.</label>
<p><bold>Divisibility:</bold> E-cash must be divisible, i.e. the customer should be able to divide it into smaller amounts.</p>
</list-item>
</list>
<p>One of the crucial drawbacks of an e-cash system is the rapid growth of the data throughout its transfers. The latter point plays a major role in the effectiveness of the e-cash system. However, for a long time it was ignored by many proposed systems. According to Chaum and Pedersen (<xref ref-type="bibr" rid="j_info1221_ref_006">1992</xref>), the amount of data transferred among users through any divisible, offline and anonymous e-cash system is growing in size due to the information needed to store in order to ensure double spending prevention, divisibility and other properties.</p>
<p>Nevertheless, some alternative e-cash systems were proposed that managed to avoid the growth of the e-cash data (D’Amiano and Di Crescenzo, <xref ref-type="bibr" rid="j_info1221_ref_008">1994</xref>; Okamoto, <xref ref-type="bibr" rid="j_info1221_ref_020">1995</xref>). However, as mentioned in Chan <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_004">1998</xref>), Tsiounis (<xref ref-type="bibr" rid="j_info1221_ref_027">1997</xref>), those e-schemes had other issues such as the limit of the total size of payments or lack of efficiency of e-cash protocols. In Fuchsbauer (<xref ref-type="bibr" rid="j_info1221_ref_012">2009</xref>) an attempt was made to construct a transferable e-cash scheme without the aforementioned data growth problem. However, it was later outlined in Waters (<xref ref-type="bibr" rid="j_info1221_ref_028">2005</xref>), Fuchsbauer (<xref ref-type="bibr" rid="j_info1221_ref_012">2009</xref>) that there was still a dramatic increase in the size of the public key.</p>
<p>A new direction in the development of offline e-cash systems without the data growth drawback was established when Brand first presented an e-wallet scheme using observers in Brands (<xref ref-type="bibr" rid="j_info1221_ref_002">1993</xref>). He proposed the idea of bank’s trustee for the purchaser (e.g. a chip implemented in a purchaser’s mobile device) which allows to perform payments without the online connection to the bank. However, the cryptographic security of Brand’s e-cash system was never proven and hence the system was never initiated.</p>
<p>Another problem that often takes place in divisible, anonymous, offline e-cash systems is the lack of proof of the security of a complex cryptographic system. According to Rosenberg (<xref ref-type="bibr" rid="j_info1221_ref_024">2010</xref>), the majority of divisible e-cash systems to this day “use proofs about double-discrete logarithms and require similar sequences of primes in their setup”. It was noted in Brands (<xref ref-type="bibr" rid="j_info1221_ref_002">1993</xref>) and Cramer and Shoup (<xref ref-type="bibr" rid="j_info1221_ref_007">2003</xref>), the decisional Diffie–Hellman (DDH) assumption is needed to prove the cryptographic security of a number of previously proposed protocols. This comes from the fact that the Diffie-Hellman key exchange (Diffie and Hellman, <xref ref-type="bibr" rid="j_info1221_ref_009">1976</xref>) cannot be proved secure in any reasonable and standard way just based on the computational Diffie–Hellman (CDH) assumption: the DDH assumption is required.</p>
<p>In Petersen and Poupard (<xref ref-type="bibr" rid="j_info1221_ref_022">1997</xref>) an efficient payment system with anonymity revocation and trusted third party (TTP) was presented. It was the first scheme that managed to achieve an offline prevention of all possible extortion attacks. Due to the system’s scalable security and efficiency, secure realizations for an internet payment scheme as well as a highly efficient payment scheme for electronic purse applications were developed on the basis of this scheme. The system also incorporated a possible way to revoke anonymity using the collaboration of a judge and the bank if a malicious purchaser was to be detected (Stadler <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1221_ref_025">1995</xref>). The judge could be implemented in a Purchaser’s smart device. However, it should be protected to ensure Purchaser’s anonymity.</p>
<p>This paper considers an offline, divisible, anonymous and transferable e-cash system with observers operating in the environment with TTP (the bank), which was previously presented in Sakalauskas <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_026">2018</xref>). Detailed description of our scheme is presented in Sections <xref rid="j_info1221_s_003">2.1</xref>–<xref rid="j_info1221_s_005">2.3</xref>. The analysed e-money system does not possess the data growth problem addressed above due to the utilization of observers. We also perform analysis of several attack scenarios, which include existential forgery of data by both parties (Purchaser and Vendor) of our system in Section <xref rid="j_info1221_s_006">3</xref>. In Section <xref rid="j_info1221_s_007">4</xref> we show that both parties can trust each other. This analysis relies on the so-called BAN logic presented in Burrows <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_003">1989</xref>) (hence it was named after the authors).</p>
</sec>
<sec id="j_info1221_s_002">
<label>2</label>
<title>Offline E-Cash System with Observers</title>
<p>In this section we present a novel e-cash system with observers based on Schnorr identification and modified ElGamal e-signature. These cryptographic primitives are often implemented due to their provable security. Our e-cash system satisfies such e-cash system properties as divisibility, anonymity, offline payment, transferability and double-spending prevention requirements. To provide offline payment property and bypass the growth of the transferred e-cash data the implemented cryptographic bank’s trustee Observer (i.e. cryptographic chip) is used.</p>
<p>Presented e-cash system is executed between the following parties: the Bank (<bold>B</bold>), the Purchaser (<bold>P</bold>), the Vendor (<bold>V</bold>) and their Observers (<inline-formula id="j_info1221_ineq_001"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_002"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{V}}}$]]></tex-math></alternatives></inline-formula> respectively). Our e-cash system operates using withdrawal, payment and deposit protocols described in detail in Sections <xref rid="j_info1221_s_003">2.1</xref>–<xref rid="j_info1221_s_005">2.3</xref>.</p>
<p>The general parameters and functions used in the proposed e-cash scheme are presented in Table <xref rid="j_info1221_tab_001">1</xref> below:</p>
<table-wrap id="j_info1221_tab_001">
<label>Table 1</label>
<caption>
<p>E-cash system notations.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Parameter/functions</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Description</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi></mml:math><tex-math><![CDATA[$q,p$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Large prime numbers, such that <inline-formula id="j_info1221_ineq_004"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$p=2q+1$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><italic>G</italic></td>
<td style="vertical-align: top; text-align: left">Generator of multiplicative group <inline-formula id="j_info1221_ineq_005"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbf{Z}_{p}^{\ast }}$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_006"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${h_{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Value of hash function</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_007"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">X</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{Sig}_{\mathit{ElG}}^{X}}(m)$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">ElGamal signature function, where <italic>m</italic> and <italic>X</italic> correspond to the message to be signed on and the ElGamal private key of the signer</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_008"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{Ver}_{\mathit{ElG}}^{A}}(s,m)$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">ElGamal signature verification function, where <inline-formula id="j_info1221_ineq_009"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[$m,s$]]></tex-math></alternatives></inline-formula> and <italic>X</italic> correspond to the message, signature on the message and the ElGamal public key of the signer</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><italic>i</italic></td>
<td style="vertical-align: top; text-align: left">Serial number of the transaction</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_010"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PrK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{PrK}_{P}}={x_{P}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_011"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PuK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathit{PuK}_{P}}=\{G,{A_{P}}={G^{{x_{P}}}}\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Purchaser’s temporary private and public keys <break/>It is important to note that in the proposed scheme, the purchaser generates random temporary private and public keys for each transaction, which ensures the anonymity property of the proposed e-cash scheme</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_012"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PrK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{PrK}_{O}}={x_{O}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_013"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PuK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathit{PuK}_{O}}=\{G,{A_{O}}={G^{{x_{O}}}}\}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Observer’s private and public keys</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_014"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{P}},{\mathit{Id}_{V}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Unique identification number of the Purchaser’s and Vendor’s Observer chips respectively</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_015"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Sum of money to be spent by the Purchaser</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_016"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\tilde{m}_{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Actual price of the products to be bought by the purchaser</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_017"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Time instance of the e-cash withdrawal</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_018"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}||{t_{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Concatenation of the sum and the time instance</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_019"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{w0}},{t_{p0}},{t_{d0}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Time instance of the last e-cash withdrawal (payment, deposit) protocol</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_020"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${m_{\max }^{P}},{m_{\max }^{V}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">The amount of money in the e-wallet of Purchaser and Vendor respectively</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1221_ineq_021"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\xi _{i}^{(1)}},{\xi _{i}^{(2)}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Random values of <inline-formula id="j_info1221_ineq_022"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="normal">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathrm{Z}_{q}^{\ast }}$]]></tex-math></alternatives></inline-formula> for Schnorr interactive identification protocol</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Our e-cash system consists of Withdrawal, Payment and Deposit protocols. These protocols are presented below and are executed in order of presentation.</p>
<sec id="j_info1221_s_003">
<label>2.1</label>
<title>Withdrawal Protocol</title>
<p>Assume that the Purchaser is interested in acquiring some goods from the Vendor. Let the total price of these goods be <inline-formula id="j_info1221_ineq_023"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula>, where <italic>i</italic> denotes the number of the transaction. He initializes the purchase deal by requesting Vendor’s identity indicator <inline-formula id="j_info1221_ineq_024"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{V}}$]]></tex-math></alternatives></inline-formula>, which is sent to him via secure channel. We consider it the zeroth step of our scheme.</p>
<p>Execution of our e-cash system starts by performing the following steps of the Withdrawal protocol: 
<list>
<list-item id="j_info1221_li_013">
<label>1.</label>
<p>The Purchaser sends a request to his Observer to provide him with the desired sum <inline-formula id="j_info1221_ineq_025"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula>. He generates his temporary keys <inline-formula id="j_info1221_ineq_026"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PrK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{PrK}_{P}}={x_{P}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_027"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PuK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathit{PuK}_{P}}=\{G,{A_{P}}={G^{{x_{P}}}}\}$]]></tex-math></alternatives></inline-formula> and sends his public key<inline-formula id="j_info1221_ineq_028"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{P}}$]]></tex-math></alternatives></inline-formula> to the observer together with the desired sum, the time of request <inline-formula id="j_info1221_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula> and Vendor’s identity indicator <inline-formula id="j_info1221_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{V}}$]]></tex-math></alternatives></inline-formula>. Hence, the Purchaser’s observer receives the following information:</p>
<p><graphic xlink:href="info1221_g001.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_014">
<label>2.</label>
<p>Observer <inline-formula id="j_info1221_ineq_031"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> checks if the Purchaser possesses the desired sum and verifies if the request takes place in the current time and if time instance <inline-formula id="j_info1221_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula> is greater than the time instance <inline-formula id="j_info1221_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{w0}}$]]></tex-math></alternatives></inline-formula> of a previous request: 
<disp-formula id="j_info1221_eq_001">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">Ver</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">Ver</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&lt;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathit{Ver}({t_{i}}>{t_{w0}}),\\ {} \displaystyle \mathit{Ver}\big({m_{i}}<{m_{\max }^{P}}\big).\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
The protocol is aborted if any failures occur at this step. Purchaser receives an error message indicating the problem.</p>
</list-item>
<list-item id="j_info1221_li_015">
<label>3.</label>
<p>Observer <inline-formula id="j_info1221_ineq_034"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> generates private data for the Purchaser – random values <inline-formula id="j_info1221_ineq_035"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\xi _{i}^{(1)}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_036"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\xi _{i}^{(2)}}$]]></tex-math></alternatives></inline-formula>, which he will later use for Shnorr identification during the Payment protocol: 
<disp-formula id="j_info1221_eq_002">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">Gen</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{Gen}\to {\xi _{i}^{(1)}},{\xi _{i}^{(2)}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_016">
<label>4.</label>
<p>Using the generator <italic>G</italic>, the Observer <inline-formula id="j_info1221_ineq_037"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> computes public data for the Purchaser, which Vendor will later use during the Payment protocol to identify him: 
<disp-formula id="j_info1221_eq_003">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w_{i}^{(1)}}={G^{{\xi _{i}^{(1)}}}},\hspace{2em}{w_{i}^{(2)}}={G^{{\xi _{i}^{(2)}}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_017">
<label>5.</label>
<p>Using pre-generated public data as well as data generated at previous steps of this protocol the Observer <inline-formula id="j_info1221_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> calculates the following public data for the Purchaser: 
<disp-formula id="j_info1221_eq_004">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {N_{i}^{(1)}}={m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}},\\ {} \displaystyle {N_{i}^{(2)}}={\mathit{Id}_{P}}\cdot {N_{i}^{(1)}},\\ {} \displaystyle {P_{i}^{(1)}}={A_{P}}{^{{N_{i}^{(1)}}}}\cdot {w_{i}^{(1)}},\\ {} \displaystyle {P_{i}^{(2)}}={A_{P}}{^{{N_{i}^{(2)}}}}\cdot {w_{i}^{(2)}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
During this step the Observer <inline-formula id="j_info1221_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> also generates the following El-Gamal signatures to prevent existential forgery of data: 
<disp-formula id="j_info1221_eq_005">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {S_{i}^{(1)}}={\mathit{Sig}_{\mathit{ElG}}^{{x_{O}}}}\big({P_{i}^{(1)}}\big),\\ {} \displaystyle {S_{i}^{(2)}}={\mathit{Sig}_{\mathit{ElG}}^{{x_{O}}}}\big({P_{i}^{(2)}}\big),\\ {} \displaystyle {S_{i}^{(3)}}={\mathit{Sig}_{\mathit{ElG}}^{{x_{O}}}}\big({A_{P}^{{N_{i}^{(1)}}}}\big),\\ {} \displaystyle {S_{i}^{(4)}}={\mathit{Sig}_{\mathit{ElG}}^{{x_{O}}}}\big({A_{P}^{{\mathit{Id}_{P}}}}\big).\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_018">
<label>6.</label>
<p>Observer <inline-formula id="j_info1221_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> renews a time instance of the last request: 
<disp-formula id="j_info1221_eq_006">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {t_{w0}}\gets {t_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_019">
<label>7.</label>
<p>Observer <inline-formula id="j_info1221_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> renews Purchaser’s e-wallet balance: 
<disp-formula id="j_info1221_eq_007">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">←</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {m_{\max }^{P}}\gets {m_{\max }^{P}}-{m_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_020">
<label>8.</label>
<p>Observer <inline-formula id="j_info1221_ineq_042"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> sends all generated data and signatures during this protocol to the Purchaser thus completing the request:</p>
<p><graphic xlink:href="info1221_g002.jpg"/></p>
</list-item>
</list> 
As a result of this protocol the Purchaser can now spend the desired sum as he wishes using the data and signatures, obtained from his Observer.</p>
</sec>
<sec id="j_info1221_s_004">
<label>2.2</label>
<title>Payment Protocol</title>
<p>After Withdrawal protocol has completed, the Purchaser initializes the Payment protocol. The steps of this protocol are as follows:</p>
<list>
<list-item id="j_info1221_li_021">
<label>1.</label>
<p>The Purchaser sends public data pre-generated by his Observer <inline-formula id="j_info1221_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula> to the Vendor together with the total price of the goods <inline-formula id="j_info1221_ineq_044"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> and the time instance <inline-formula id="j_info1221_ineq_045"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula> of the transaction:</p>
<p><graphic xlink:href="info1221_g003.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_022">
<label>2.</label>
<p>The Vendor verifies if the total price of the goods <inline-formula id="j_info1221_ineq_046"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> is correct and if the time instance <inline-formula id="j_info1221_ineq_047"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula> is greater than the time of the last purchase <inline-formula id="j_info1221_ineq_048"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{p0}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_info1221_eq_008">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">Ver</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">Ver</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathit{Ver}({t_{i}}>{t_{p0}}),\\ {} \displaystyle \mathit{Ver}(m={\tilde{m}_{i}}).\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
Note that the Vendor does not verify if the transaction takes place at the current time, since the Purchaser can initialize this protocol at any time after receiving data from his Observer. The protocol is aborted if any failures occur at this step. The Purchaser receives an error message indicating the problem.</p>
</list-item>
<list-item id="j_info1221_li_023">
<label>3.</label>
<p>The Vendor verifies signatures to ensure that the received data was not forged in any way: 
<disp-formula id="j_info1221_eq_009">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.2778em"/>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({A_{P}^{{\mathit{Id}_{P}}}},{S_{i}^{(4)}}\big),\\ {} \displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({A_{P}}{^{{m_{i}}||{t_{i}}||{\mathit{Id}_{V}}}},{S_{i}^{(3)}}\big),\\ {} \displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({A_{P}}{^{{m_{i}}||{t_{i}}||{\mathit{Id}_{V}}}}\cdot {w_{i}^{(1)}},{S_{i}^{(1)}}\big),\\ {} \displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({\big({A_{P}}{^{{\mathit{Id}_{P}}}}\big)^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\hspace{0.2778em}\cdot {w_{i}^{(2)}},{S_{i}^{(2)}}\big).\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
The protocol is aborted if any failures occur at this step, since the Vendor found forgery of the received data. The Purchaser receives an error message indicating the problem. The Purchaser can no longer use the data of this transaction to execute any new payments.</p>
</list-item>
<list-item id="j_info1221_li_024">
<label>4.</label>
<p>The Vendor generates a random challenge <inline-formula id="j_info1221_ineq_049"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${h_{i}}$]]></tex-math></alternatives></inline-formula> for the Purchaser to ensure that he is not dealing with an attacker: 
<disp-formula id="j_info1221_eq_010">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">Gen</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{Gen}\to {h_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_025">
<label>5.</label>
<p>The Vendor initializes Shnorr identification protocol by sending a random challenge <inline-formula id="j_info1221_ineq_050"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${h_{i}}$]]></tex-math></alternatives></inline-formula> to the Purchaser: 
<disp-formula id="j_info1221_eq_011">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi><mml:mover>
<mml:mrow>
<mml:mo stretchy="false">⟶</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mover>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}\stackrel{{h_{i}}}{\longrightarrow }\mathbf{P}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_026">
<label>6.</label>
<p>Using his private data <inline-formula id="j_info1221_ineq_051"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\xi _{i}^{(1)}},{\xi _{i}^{(2)}}$]]></tex-math></alternatives></inline-formula> pre-generated by the Observer <inline-formula id="j_info1221_ineq_052"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula>, the Purchaser calculates the response values <inline-formula id="j_info1221_ineq_053"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{i}^{(1)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_054"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula> in a following way: 
<disp-formula id="j_info1221_eq_012">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {r_{i}^{(1)}}={h_{i}}\cdot {x_{P}}\cdot {N_{i}^{(1)}}+{\xi _{i}^{(1)}},\\ {} \displaystyle {r_{i}^{(2)}}={h_{i}}\cdot {x_{P}}\cdot {N_{i}^{(2)}}+{\xi _{i}^{(2)}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
He forwards the response values <inline-formula id="j_info1221_ineq_055"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{i}^{(1)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_056"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula> to the Vendor:</p>
<p><graphic xlink:href="info1221_g004.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_027">
<label>7.</label>
<p>Using Purchaser’s public data <inline-formula id="j_info1221_ineq_057"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${w_{i}^{(1)}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_058"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${w_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula> the Vendor verifies the validity of the received response values in the following way: 
<disp-formula id="j_info1221_eq_013">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">Ver</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">Ver</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathit{Ver}\big({G^{{r_{i}^{(1)}}}}\cdot {\big({A_{P}}{^{{m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}}}}\big)^{-{h_{i}}}}={w_{i}^{(1)}}\big),\\ {} \displaystyle \mathit{Ver}\big({G^{{r_{i}^{(2)}}}}\cdot {\big({\big({A_{P}^{{\mathit{Id}_{P}}}}\big)^{{m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}}}}\big)^{-{h_{i}}}}={w_{i}^{(2)}}\big).\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
The protocol is aborted if any failures occur at this step. The Purchaser receives an error message indicating the identification problem. He may retry to initialize the Payment protocol if the Vendor allows this possibility. Otherwise the data of this transaction can no longer be used.</p>
<p>If no failures during these steps occurred, then the payment has been made. However, the Vendor now has to confirm that the payment took place.</p>
</list-item>
<list-item id="j_info1221_li_028">
<label>8.</label>
<p>The Vendor turns to his Observer for signature generation by sending the received payment sum <inline-formula id="j_info1221_ineq_059"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> and time instance <inline-formula id="j_info1221_ineq_060"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula>, i.e. he confirms that the Purchaser has paid the sum <inline-formula id="j_info1221_ineq_061"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> for the goods at the time <inline-formula id="j_info1221_ineq_062"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula>:</p>
<p><graphic xlink:href="info1221_g005.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_029">
<label>9.</label>
<p>The Vendor’s Observer confirms the validity of the received data by verifying the signature <inline-formula id="j_info1221_ineq_063"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${S_{i}^{(3)}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_info1221_eq_014">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({A_{P}^{{m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}}}},{S_{i}^{(3)}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
If this verification fails, then the Observer blocks the transaction for deposit, i.e. the Vendor is no longer able to deposit the sum <inline-formula id="j_info1221_ineq_064"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> to his e-wallet.</p>
</list-item>
<list-item id="j_info1221_li_030">
<label>10.</label>
<p>The Vendor’s Observer generates a signature <inline-formula id="j_info1221_ineq_065"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${S_{V}}={\mathit{Sig}_{\mathit{ElG}}^{{x_{O}}}}({\mathit{Id}_{V}^{{m_{i}}\| {t_{i}}}})$]]></tex-math></alternatives></inline-formula> and sends it to the Vendor:</p>
<p><graphic xlink:href="info1221_g006.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_031">
<label>11.</label>
<p>The Vendor sends the following data to the Purchaser for verification:</p>
<p><graphic xlink:href="info1221_g007.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_032">
<label>12.</label>
<p>The Purchaser performs the following actions to ensure that he is not dealing with a Malicious Vendor: 
<list>
<list-item id="j_info1221_li_033">
<label>•</label>
<p>Raises <inline-formula id="j_info1221_ineq_066"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathit{Id}_{V}^{{m_{i}}||{t_{i}}}}$]]></tex-math></alternatives></inline-formula> to power <inline-formula id="j_info1221_ineq_067"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${({m_{i}}||{t_{i}})^{-1}}$]]></tex-math></alternatives></inline-formula> and compares the result to <inline-formula id="j_info1221_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{V}}$]]></tex-math></alternatives></inline-formula>. Clearly, the results have to match.</p>
</list-item>
<list-item id="j_info1221_li_034">
<label>•</label>
<p>He verifies time instance and signature <inline-formula id="j_info1221_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{V}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_info1221_eq_015">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({\mathit{Id}_{V}^{{m_{i}}||{t_{i}}}},{S_{V}}\big).\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list> 
If verification is successful, then the deal is made and both parties receive messages of this result. Otherwise, the deal is off and the Purchaser may turn to the Bank in electronic or physical form to restore his wallet balance. Both parties receive error messages.</p>
</list-item>
<list-item id="j_info1221_li_035">
<label>13.</label>
<p>The Vendor <bold>V</bold> renews a time instance of the last purchase by the Purchaser <bold>P</bold>: 
<disp-formula id="j_info1221_eq_016">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {t_{p0}}\gets {t_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list>
<p>Upon successful completion of this protocol the Vendor has received the total price of the goods and can send them to the Purchaser in electronic or physical form. Otherwise, if any errors occurred, the culprit is reported to the Bank.</p>
</sec>
<sec id="j_info1221_s_005">
<label>2.3</label>
<title>Deposit Protocol</title>
<p>To complete the execution of our e-cash system, the Vendor has to deposit the received sum <inline-formula id="j_info1221_ineq_070"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula>. Hence he initializes the following protocol: 
<list>
<list-item id="j_info1221_li_036">
<label>1.</label>
<p>The Vendor sends the data of the latest transaction, i.e. the data he has received from the Purchaser <bold>P</bold> to his Observer <inline-formula id="j_info1221_ineq_071"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{V}}}$]]></tex-math></alternatives></inline-formula>:</p>
<p><graphic xlink:href="info1221_g008.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_037">
<label>2.</label>
<p>The Vendor’s Observer <inline-formula id="j_info1221_ineq_072"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{V}}}$]]></tex-math></alternatives></inline-formula> verifies the validity of the time instance <inline-formula id="j_info1221_ineq_073"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula>, i.e. if it is greater than the time of the last deposit <inline-formula id="j_info1221_ineq_074"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{d0}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_info1221_eq_017">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">Ver</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathit{Ver}({t_{i}}>{t_{d0}}).\]]]></tex-math></alternatives>
</disp-formula> 
Note that the Observer <inline-formula id="j_info1221_ineq_075"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{V}}}$]]></tex-math></alternatives></inline-formula> does not verify if the deposit takes place at the current time, since this protocol can be executed at any time. Failure at this step results in an error message indicating, that this deposition already took place sometime before. The Deposit protocol is aborted.</p>
</list-item>
<list-item id="j_info1221_li_038">
<label>3.</label>
<p>The Vendor’s Observer <inline-formula id="j_info1221_ineq_076"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{V}}}$]]></tex-math></alternatives></inline-formula> verifies the received signatures to ensure that no existential forgery took place: 
<disp-formula id="j_info1221_eq_018">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Ver</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.2778em"/>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({A_{P}^{{\mathit{Id}_{P}}}},{S_{i}^{(4)}}\big),\\ {} \displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({A_{P}}{^{{m_{i}}||{t_{i}}||{\mathit{Id}_{V}}}},{S_{i}^{(3)}}\big),\\ {} \displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({A_{P}}{^{{m_{i}}||{t_{i}}||{\mathit{Id}_{V}}}}\cdot {w_{i}^{(1)}},{S_{i}^{(1)}}\big),\\ {} \displaystyle {\mathit{Ver}_{\mathit{ElG}}^{{A_{O}}}}\big({\big({A_{P}}{^{{\mathit{Id}_{P}}}}\big)^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\hspace{0.2778em}\cdot {w_{i}^{(2)}},{S_{i}^{(2)}}\big).\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_039">
<label>4.</label>
<p>The Vendor’s Observer <inline-formula id="j_info1221_ineq_077"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{V}}}$]]></tex-math></alternatives></inline-formula> renews a time instance of the last deposit: 
<disp-formula id="j_info1221_eq_019">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">←</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {t_{d0}}\gets {t_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_040">
<label>5.</label>
<p>The Observer <inline-formula id="j_info1221_ineq_078"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{V}}}$]]></tex-math></alternatives></inline-formula> renews the Vendor’s wallet balance: 
<disp-formula id="j_info1221_eq_020">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">←</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">max</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {m_{\max }^{V}}\gets {m_{\max }^{V}}+{m_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list>
</p>
</sec>
</sec>
<sec id="j_info1221_s_006">
<label>3</label>
<title>Security Against Existential Forgery Analysis</title>
<p>In this section we consider security of our scheme against adaptive inside adversary, i.e. we assume that an attacker is a legitimate user (Purchaser or Vendor) of the proposed system and hence has his own mobile device with an Observer and pre-generated data as described above. We consider the following attack scenarios:</p>
<list>
<list-item id="j_info1221_li_041">
<label>1.</label>
<p>Attack of a Malicious Purchaser (<bold>MP</bold>):</p>
<list>
<list-item id="j_info1221_li_042">
<label>(a)</label>
<p>Double spending, i.e. using the same data to purchase goods more than once from the Vendor;</p>
</list-item>
<list-item id="j_info1221_li_043">
<label>(b)</label>
<p>Forgery of transaction data, i.e. faking payment sum, time instance and any data sent to the Vendor. There are two alternatives to this attack: spend less money than demanded by the Vendor (forging payment sum) or present a previous transaction as a new one (forging time instance), i.e. perform double spending by forgery.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1221_li_044">
<label>2.</label>
<p>Man in the Middle Attack (<bold>MitM</bold>):</p>
<list>
<list-item id="j_info1221_li_045">
<label>(a)</label>
<p>Purchaser impersonation by faking identity <inline-formula id="j_info1221_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{P}}$]]></tex-math></alternatives></inline-formula>, i.e. using the e-wallet of another legitimate Purchaser to acquire goods for yourself;</p>
</list-item>
<list-item id="j_info1221_li_046">
<label>(b)</label>
<p>Vendor impersonation by faking identity <inline-formula id="j_info1221_ineq_080"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{V}}$]]></tex-math></alternatives></inline-formula>, i.e. acquire and deposit money, meant for another legitimate Vendor.</p>
</list-item>
</list>
</list-item>
<list-item id="j_info1221_li_047">
<label>3.</label>
<p>Attack of a Malicious Vendor (<bold>MV</bold>):</p>
<list>
<list-item id="j_info1221_li_048">
<label>(a)</label>
<p>Double deposit, i.e. using the same data to increase the balance of Vendor’s e-wallet more than once;</p>
</list-item>
<list-item id="j_info1221_li_049">
<label>(b)</label>
<p>Deny of payment and refusing goods shipment, i.e. keep Purchaser’s money for yourself without delivering the goods;</p>
</list-item>
<list-item id="j_info1221_li_050">
<label>(c)</label>
<p>Forgery of transaction data, i.e. faking payment sum, time instance and any data received from an honest the Purchaser. There are two alternatives to this attack: deposit more money than received from the Purchaser (forging payment sum) or present a previous transaction as a new one (forging time instance), i.e. perform double deposit by forgery.</p>
</list-item>
</list>
</list-item>
</list>
<p>To start our analysis we first focus on the Attack of <bold>MP</bold> scenario, i.e. actions, which can be executed by a dishonest Purchaser to benefit from the deal with an honest Vendor.</p>
<p>The prevention of double spending is guaranteed by Shnorr identification, i.e. upon receiving the same transaction twice the Vendor can recover the Purchaser’s identity by calculating the following expression: 
<disp-formula id="j_info1221_eq_021">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>−</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \frac{{r_{i}^{(2)}}-{r^{\prime (2)}_{i}}}{{r_{i}^{(1)}}-{r^{\prime (1)}_{i}}}={\mathit{Id}_{P}},\]]]></tex-math></alternatives>
</disp-formula> 
where responses <inline-formula id="j_info1221_ineq_081"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{i}^{(1)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_082"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula> were received during the first sending whereas responses <inline-formula id="j_info1221_ineq_083"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r^{\prime (1)}_{i}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_084"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${r^{\prime (2)}_{i}}$]]></tex-math></alternatives></inline-formula> were received during the second sending of the same transaction. The validity of (<xref rid="j_info1221_eq_021">1</xref>) is proven in Sakalauskas <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_026">2018</xref>). Note that expression (<xref rid="j_info1221_eq_021">1</xref>) is calculated modulo <italic>q</italic>.</p>
<p>To consider forgery of the data by <bold>MP</bold> we recall the data sent during Payment protocol to the Vendor:</p><graphic xlink:href="info1221_g009.jpg"/>
<p>Since this data involves signatures, in order to fake his identity the Purchaser may try to forge signatures sent during this step. However, since he is not able to generate signatures by himself (only the Purchaser’s Observer can do this), forgery of any ElGamal signature requires him to deal with discrete logarithm problem (DLP) as stated in Theorem 20 of Pointcheval and Stern (<xref ref-type="bibr" rid="j_info1221_ref_023">2000</xref>) considering modified ElGamal signature scheme security against an adaptive adversary. Based on the result of Poicheval and Stern we claim the following:</p><statement id="j_info1221_stat_001"><label>Proposition 1.</label>
<p><italic>If Purchaser can forge any signature during Payment protocol, then he is able to recover Purchaser Observer’s private ElGamal key</italic> <inline-formula id="j_info1221_ineq_085"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{O}}$]]></tex-math></alternatives></inline-formula> <italic>in reasonable time.</italic></p></statement>
<p>Hence we focus on the data signed by these signatures, i.e. we assume that the adversary aims to alter this data to obtain a valid signature on a fake data.</p>
<p>Formally, the security of the Purchaser’s identity relies on the uniqueness of signature 
<disp-formula id="j_info1221_eq_022">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {S_{i}^{(4)}}={\mathit{Sig}_{\mathit{ElG}}^{{x_{O}}}}\big({A_{P}^{{\mathit{Id}_{P}}}}\big)\]]]></tex-math></alternatives>
</disp-formula> 
as stated in Pointcheval and Stern (<xref ref-type="bibr" rid="j_info1221_ref_023">2000</xref>). To prove this let us consider the data signed, i.e.
<disp-formula id="j_info1221_eq_023">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {A_{P}^{{\mathit{Id}_{P}}}}={\big({G^{{x_{P}}}}\big)^{{\mathit{Id}_{P}}}}={\big({G^{{\mathit{Id}_{P}}}}\big)^{{x_{P}}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Since <italic>G</italic> is a generator of the multiplicative group <inline-formula id="j_info1221_ineq_086"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${Z_{p}^{\ast }}$]]></tex-math></alternatives></inline-formula>, the value of <inline-formula id="j_info1221_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{P}}$]]></tex-math></alternatives></inline-formula> is unique and hence we assume that it is some other generator of the same group. In this case the private key <inline-formula id="j_info1221_ineq_088"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{P}}$]]></tex-math></alternatives></inline-formula> is relatively prime with group characteristic <italic>p</italic>. Due to <inline-formula id="j_info1221_ineq_089"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{P}}$]]></tex-math></alternatives></inline-formula> being a generator of the multiplicative group, the value of <inline-formula id="j_info1221_ineq_090"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${A_{P}^{{\mathit{Id}_{P}}}}$]]></tex-math></alternatives></inline-formula> is unique as well and hence if <inline-formula id="j_info1221_ineq_091"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${A_{P}^{{\mathit{Id}_{P}}}}={A_{P}^{{\mathit{Id}_{{P^{\prime }}}}}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1221_ineq_092"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula> is some forged identity, then <inline-formula id="j_info1221_ineq_093"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{P}}={\mathit{Id}_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula>. Furthermore, if <inline-formula id="j_info1221_ineq_094"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${A_{P}^{{\mathit{Id}_{P}}}}={A_{{P^{\prime }}}^{{\mathit{Id}_{{P^{\prime }}}}}}$]]></tex-math></alternatives></inline-formula>, then <inline-formula id="j_info1221_ineq_095"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{{P^{\prime }}}}\cdot {\mathit{Id}_{{P^{\prime }}}}={x_{P}}\cdot {\mathit{Id}_{P}}$]]></tex-math></alternatives></inline-formula>, where data with index <inline-formula id="j_info1221_ineq_096"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${P^{\prime }}$]]></tex-math></alternatives></inline-formula> is fake. However, for randomly chosen values <inline-formula id="j_info1221_ineq_097"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{P}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_098"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{P}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_099"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_100"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula>, the probability 
<disp-formula id="j_info1221_eq_024">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">Prob</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathrm{Prob}({x_{{P^{\prime }}}}\cdot {\mathit{Id}_{{P^{\prime }}}}={x_{P}}\cdot {\mathit{Id}_{P}})\]]]></tex-math></alternatives>
</disp-formula> 
is negligible if the value of characteristic <italic>p</italic> is large enough. Assume that the adversary is in possession of <inline-formula id="j_info1221_ineq_101"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${A_{P}^{{\mathit{Id}_{P}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_102"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula>. In order to switch <inline-formula id="j_info1221_ineq_103"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{P}}$]]></tex-math></alternatives></inline-formula> to a fake identity <inline-formula id="j_info1221_ineq_104"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula> the adversary has to solve the following problem: 
<disp-formula id="j_info1221_eq_025">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {A_{P}^{{\mathit{Id}_{P}}}}={\big({G^{{\mathit{Id}_{{P^{\prime }}}}}}\big)^{{x_{{P^{\prime }}}}}}\]]]></tex-math></alternatives>
</disp-formula> 
for some unknown value of <inline-formula id="j_info1221_ineq_105"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula>, which is a private key of the fake Purchaser’s <inline-formula id="j_info1221_ineq_106"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{P}^{\prime }}$]]></tex-math></alternatives></inline-formula> Observer. Hence we obtain the DLP as stated above.</p>
<p>The correctness of time instance <inline-formula id="j_info1221_ineq_107"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula>, payment sum <inline-formula id="j_info1221_ineq_108"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> and Vendor’s identity <inline-formula id="j_info1221_ineq_109"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{V}}$]]></tex-math></alternatives></inline-formula> follows from the structure of <inline-formula id="j_info1221_ineq_110"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${N_{i}^{(1)}}$]]></tex-math></alternatives></inline-formula> and signature 
<disp-formula id="j_info1221_eq_026">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Sig</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">ElG</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {S_{i}^{(3)}}={\mathit{Sig}_{\mathit{ElG}}^{{x_{O}}}}\big({A_{P}^{{N_{i}^{(1)}}}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
Analogously the DLP to be solved in case of successful forgery is as follows: 
<disp-formula id="j_info1221_eq_027">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {A_{P}^{{N_{i}^{(1)}}}}={\big({G^{{N^{\prime (1)}_{i}}}}\big)^{{x_{{P^{\prime }}}}}}\]]]></tex-math></alternatives>
</disp-formula> 
for some unknown value of <inline-formula id="j_info1221_ineq_111"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{{P^{\prime }}}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1221_ineq_112"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${N^{\prime (1)}_{i}}$]]></tex-math></alternatives></inline-formula> is some garbage data.</p>
<p>Hence, the Vendor will discover any altering of data on the Purchaser’s side by verifying signatures on step 3 of Payment protocol.</p>
<p>Valid signatures <inline-formula id="j_info1221_ineq_113"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${S_{i}^{(1)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_114"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${S_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula> ensure correct values of <inline-formula id="j_info1221_ineq_115"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${w_{i}^{(1)}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_116"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${w_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula>, which are required for successful Shnorr identification. This comes from the fact that the unaltered data <inline-formula id="j_info1221_ineq_117"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${A_{P}^{{N_{i}^{(1)}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_118"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${A_{P}^{{N_{i}^{(2)}}}}$]]></tex-math></alternatives></inline-formula> is invertible and hence <disp-formula-group id="j_info1221_dg_001">
<disp-formula id="j_info1221_eq_028">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w_{i}^{(1)}}={P_{i}^{(1)}}\cdot {\big({A_{P}^{{N_{i}^{(1)}}}}\big)^{-1}},\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1221_eq_029">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w_{i}^{(2)}}={P_{i}^{(2)}}\cdot {\big({A_{P}^{{N_{i}^{(2)}}}}\big)^{-1}}.\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p>
<p>Since identities (<xref rid="j_info1221_eq_028">4</xref>) and (<xref rid="j_info1221_eq_029">5</xref>) hold, Vendor will discover forgery of these values on step 8 of Payment protocol. We now claim the following:</p><statement id="j_info1221_stat_002"><label>Proposition 2.</label>
<p><italic>Purchaser cannot forge any data sent during Payment protocol.</italic></p></statement>
<p>Hence the following corollary is true:</p><statement id="j_info1221_stat_003"><label>Corollary 1.</label>
<p><italic>All unfair actions of <bold>MP</bold> adversary will be discovered by the Vendor.</italic></p></statement>
<p>We now consider the scenarios of <bold>MitM</bold> attacks. Let us assume that an inside adversary <bold>MP</bold> has intercepted the Payment protocol and has acquired the data sent by another legitimate Purchaser. His objective is to obtain the goods using the victim’s e-wallet. To achieve this goal, he has to forge victim’s personal data by replacing it with his own. However, in this case he has to deal with the following DLP: 
<disp-formula id="j_info1221_eq_030">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MP</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {A_{P}^{{m_{i}}||{t_{i}}}}={A_{\mathit{MP}}^{{\tilde{m}_{i}}||{\tilde{t}_{i}}}}\]]]></tex-math></alternatives>
</disp-formula> 
for some unknown variable <inline-formula id="j_info1221_ineq_119"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\tilde{m}_{i}}||{\tilde{t}_{i}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1221_ineq_120"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MP</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{\mathit{MP}}}$]]></tex-math></alternatives></inline-formula> is the attacker’s public key. Furthermore, since an attacker cannot affect any of the signatures acquired, due to Proposition <xref rid="j_info1221_stat_001">1</xref>, he has to forge the value of <inline-formula id="j_info1221_ineq_121"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${w_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula>. Hence, he has to solve the following equation: 
<disp-formula id="j_info1221_eq_031">
<label>(7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MP</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MP</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\big({A_{\mathit{MP}}^{{\mathit{Id}_{\mathit{MP}}}}}\big)^{{\tilde{m}_{i}}||{\tilde{t}_{i}}}}\cdot {\tilde{w}_{i}^{(2)}}={P_{i}^{(2)}}\]]]></tex-math></alternatives>
</disp-formula> 
for some unknown value of <inline-formula id="j_info1221_ineq_122"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\tilde{w}_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula>. This equation by itself does not pose any advantage for an attacker. However, to pass Schnorr identification phase an attacker lacks private values <inline-formula id="j_info1221_ineq_123"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\xi _{i}^{(1)}},{\tilde{\xi }_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula> and thus has to solve the following equations: <disp-formula-group id="j_info1221_dg_002">
<disp-formula id="j_info1221_eq_032">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w_{i}^{(1)}}={G^{{\xi _{i}^{(1)}}}},\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_info1221_eq_033">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\tilde{w}_{i}^{(2)}}={G^{{\tilde{\xi }_{i}^{(2)}}}}.\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> Based on these facts we claim, that:</p><statement id="j_info1221_stat_004"><label>Proposition 3.</label>
<p><italic>If <bold>MP</bold> can purchase goods using legitimate Purchaser’s e-wallet, then he is able to solve the DLPs</italic> (<xref rid="j_info1221_eq_030">6</xref>)<italic>,</italic> (<xref rid="j_info1221_eq_032">8</xref>) <italic>and</italic> (<xref rid="j_info1221_eq_033">9</xref>) <italic>in reasonable time.</italic></p></statement>
<p>Let us now assume that an inside adversary <bold>MV</bold> has intercepted the Payment protocol and has acquired the data sent by an honest Purchaser. His objective is to deposit money meant for another legitimate Vendor. To achieve this goal an adversary has to forge victim’s identity by switching it with his own. This is not possible, since the data sent to the Observer does not have this information. Furthermore, <bold>MV</bold>’s Observer can use only identity <inline-formula id="j_info1221_ineq_124"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MP</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{Id}_{\mathit{MP}}}$]]></tex-math></alternatives></inline-formula> and <bold>MV</bold> can in no way affect this. Hence the Observer discovers that the stolen transaction is not meant for <bold>MV</bold> on step 3 of the Deposit protocol by verifying signature <inline-formula id="j_info1221_ineq_125"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${S_{i}^{(3)}}$]]></tex-math></alternatives></inline-formula> and blocks the deposit.</p>
<p>Based on these results we claim that the following proposition holds:</p><statement id="j_info1221_stat_005"><label>Proposition 4.</label>
<p><italic>Our system is resistant against Purchaser impersonation and Vendor impersonation <bold>MitM</bold> attack scenarios.</italic></p></statement>
<p>To complete our analysis we consider Attack of <bold>MV</bold> scenario, i.e. actions, which can be executed by a dishonest Vendor to benefit from the deal with an honest Purchaser.</p>
<p>Double deposit is prevented by the fact that the Vendor is not able to forge time instance due to Proposition <xref rid="j_info1221_stat_002">2</xref> which is also valid for him. Hence, his Observer discovers this attempt at step 2 of the Deposit protocol.</p>
<p>Deny of payment is prevented by writing a check during steps 8–11 of the Payment protocol since during steps 9 and 10 the Observer verifies signature <inline-formula id="j_info1221_ineq_126"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${S_{i}^{(3)}}$]]></tex-math></alternatives></inline-formula> and hence confirms that the payment took place by generating a signature <inline-formula id="j_info1221_ineq_127"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${S_{V}}$]]></tex-math></alternatives></inline-formula>. Due to Proposition <xref rid="j_info1221_stat_001">1</xref>, which is also valid for the Vendor, honest Purchaser discovers a fake check <inline-formula id="j_info1221_ineq_128"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mathit{Id}_{V}^{{m_{i}}||{t_{i}}}},{S_{V}})$]]></tex-math></alternatives></inline-formula> at step 12 of the Payment protocol.</p>
<p>The main goal or manipulation of data received by the Vendor is increasing the e-wallet balance disproportionately by affecting the payment sum. These manipulations may also involve forging other parameters, such as <inline-formula id="j_info1221_ineq_129"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{P}}$]]></tex-math></alternatives></inline-formula>. Note, however, that the Vendor is incapable to affect any of the signatures received due to Proposition <xref rid="j_info1221_stat_001">1</xref>, which is also valid for him. Any attempts to forge the value <inline-formula id="j_info1221_ineq_130"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{P}}$]]></tex-math></alternatives></inline-formula> result in a solution of discrete logarithm problem since <inline-formula id="j_info1221_ineq_131"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${A_{P}}={G^{{x_{P}}}}$]]></tex-math></alternatives></inline-formula> and hence: 
<disp-formula id="j_info1221_eq_034">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {A_{P}}{^{{m_{i}}||{t_{i}}}}={G^{{x_{P}}\cdot {m_{i}}||{t_{i}}}}={\big({G^{{m_{i}}||{t_{i}}}}\big)^{{x_{P}}}}.\]]]></tex-math></alternatives>
</disp-formula> 
Due to the latter identity, forgery of the payment sum would imply the following equation: 
<disp-formula id="j_info1221_eq_035">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {A_{P}}{^{{m_{i}}||{t_{i}}}}={\big({G^{{\tilde{m}_{i}}||{\tilde{t}_{i}}}}\big)^{x}}\]]]></tex-math></alternatives>
</disp-formula> 
for some unknown <italic>x</italic>, where <inline-formula id="j_info1221_ineq_132"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\tilde{m}_{i}}$]]></tex-math></alternatives></inline-formula> is the forged payment sum and <inline-formula id="j_info1221_ineq_133"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">˜</mml:mo></mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\tilde{t}_{i}}$]]></tex-math></alternatives></inline-formula> is the forged time instance. Hence, we state that:</p><statement id="j_info1221_stat_006"><label>Proposition 5.</label>
<p><italic>If Vendor can manipulate the payment sum, then he is able to solve the discrete logarithm problem</italic> (<xref rid="j_info1221_eq_035">10</xref>) <italic>in reasonable time.</italic></p></statement><statement id="j_info1221_stat_007"><label>Remark 1.</label>
<p>The latter proposition is also valid for Purchaser.</p></statement>
<p>Due to validity of signatures received, the Vendor’s Observer discovers any forgery by the Vendor on step 3 of Deposit protocol.</p>
<p>Based on the presented results we state that:</p><statement id="j_info1221_stat_008"><label>Proposition 6.</label>
<p><italic>Any unfair actions of <bold>MV</bold> will be discovered.</italic></p></statement>
<p>Hence relying on Propositions <xref rid="j_info1221_stat_003">1</xref>, <xref rid="j_info1221_stat_005">4</xref> and <xref rid="j_info1221_stat_008">6</xref> we conclude that: <statement id="j_info1221_stat_009"><label>Proposition 7.</label>
<p><italic>Our e-money system is secure against active inside attacks.</italic></p></statement></p>
</sec>
<sec id="j_info1221_s_007">
<label>4</label>
<title>Trustworthiness Analysis</title>
<p>Trustworthiness of the proposed e-cash system is analysed using Burrows–Abadi–Needham (BAN) logic. BAN logic was first presented in Burrows <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_003">1989</xref>) and is a set of rules that can be used to define and analyse the trustworthiness of a cryptographic protocol. BAN logic seeks to determine whether the exchanged information between different parties is trustworthy from malicious insiders such as malicious bank, vendor, purchaser or others. BAN logic starts with a set of goals that are to be proven, and relies on the assumptions which should be made and used as a basis for the proof. The main BAN logic notations are presented below.</p>
<table-wrap id="j_info1221_tab_002">
<label>Table 2</label>
<caption>
<p>BAN logic notation.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Notation</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Description</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><italic>A</italic>|<inline-formula id="j_info1221_ineq_134"><alternatives><mml:math>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi></mml:math><tex-math><![CDATA[$\equiv X$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>A</italic> trusts <italic>X</italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><italic>A</italic> |<inline-formula id="j_info1221_ineq_135"><alternatives><mml:math>
<mml:mo stretchy="false">⇒</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi></mml:math><tex-math><![CDATA[$\Rightarrow X$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>A</italic> has jurisdiction over <italic>X</italic>, in other words <italic>A</italic> is the authority on <italic>X</italic> and is to be trusted on it;</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_136"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi><mml:mover>
<mml:mrow>
<mml:mo>↔</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:mover>
<mml:mi mathvariant="italic">V</mml:mi></mml:math><tex-math><![CDATA[$P\stackrel{k}{\leftrightarrow }V$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">Shared key <italic>k</italic> between <italic>P</italic> and <italic>V</italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_137"><alternatives><mml:math>
<mml:mi mathvariant="normal">#</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi></mml:math><tex-math><![CDATA[$\mathrm{\# }X$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>X</italic> is fresh</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_138"><alternatives><mml:math>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi>⊲</mml:mi>
<mml:mi mathvariant="italic">X</mml:mi></mml:math><tex-math><![CDATA[$A\lhd X$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>A</italic> sees <italic>X</italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><italic>A</italic>|<inline-formula id="j_info1221_ineq_139"><alternatives><mml:math>
<mml:mo stretchy="false">∼</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi></mml:math><tex-math><![CDATA[$\sim X$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>A</italic> said <italic>X</italic>(without implying that this utterance was recent or not)</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_140"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(X,Y)$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>X</italic> or <italic>Y</italic> is one part of <inline-formula id="j_info1221_ineq_141"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">Y</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(X,Y)$]]></tex-math></alternatives></inline-formula></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_142"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" stretchy="false">⟨</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo fence="true" stretchy="false">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\langle X\rangle _{k}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>X</italic> is combined with <italic>k</italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_143"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">X</mml:mi>
<mml:mo fence="true" stretchy="false">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\{X\}_{k}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left"><italic>X</italic> is encrypted with <italic>k</italic></td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_144"><alternatives><mml:math>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo stretchy="false">∋</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi></mml:math><tex-math><![CDATA[$A\ni M$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">A possesses M</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1221_ineq_145"><alternatives><mml:math><mml:mover>
<mml:mrow>
<mml:mo>→</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">K</mml:mi>
</mml:mrow>
</mml:mover>
<mml:mi mathvariant="italic">P</mml:mi></mml:math><tex-math><![CDATA[$\stackrel{K}{\to }P$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">P has a public key.</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Firstly, as mentioned above, the proposed scheme uses the following parameters:</p>
<p>Purchaser’s parameters: <inline-formula id="j_info1221_ineq_146"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PrK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{PrK}_{p}}={x_{P}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_147"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PuK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathit{PuK}_{p}}=\{G,{A_{P}}={G^{{x_{P}}}}\}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Purchaser Observer’s parameters: <inline-formula id="j_info1221_ineq_148"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PrK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{PrK}_{O}}={x_{O}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_info1221_ineq_149"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">PuK</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\mathit{PuK}_{O}}=\{G,{A_{O}}={G^{{x_{O}}}}\}$]]></tex-math></alternatives></inline-formula>.</p>
<p>We are going to keep original notation for parameters <inline-formula id="j_info1221_ineq_150"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo></mml:math><tex-math><![CDATA[${\xi _{i}^{(1)}},{\xi _{i}^{(2)}},{A_{P}^{{\mathit{Id}_{P}}}},{w_{i}^{(1)}},{w_{i}^{(2)}},$]]></tex-math></alternatives></inline-formula> <inline-formula id="j_info1221_ineq_151"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mspace width="0.2778em"/></mml:math><tex-math><![CDATA[${N_{i}^{(1)}},{N_{i}^{(2)}},{S_{i}^{(1)}},{S_{i}^{(2)}},{S_{i}^{(3)}},{S_{i}^{(4)}}\hspace{0.2778em}$]]></tex-math></alternatives></inline-formula> in order to provide clarity for further analysis.</p>
<p>In order to check the correctness and security of our payment protocol, we will set the following goals: 
<list>
<list-item id="j_info1221_li_051">
<label>G1:</label>
<p>The Vendor believes in the validity of the received payment: 
<disp-formula id="j_info1221_eq_036">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv {m_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_052">
<label>G2:</label>
<p>The Vendor trusts the Purchaser: 
<disp-formula id="j_info1221_eq_037">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv \mathbf{P}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_053">
<label>G3:</label>
<p>The Purchaser trusts the Vendor: 
<disp-formula id="j_info1221_eq_038">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P}|\equiv \mathbf{V}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list> 
We use the following assumptions as a base for proving the correctness of these goals: 
<list>
<list-item id="j_info1221_li_054">
<label>A1:</label>
<p>The Vendor trusts that public parameters of the Purchaser <inline-formula id="j_info1221_ineq_152"><alternatives><mml:math>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$G,{A_{P}},{A_{P}^{{\mathit{Id}_{P}}}}$]]></tex-math></alternatives></inline-formula> as well as the public key <inline-formula id="j_info1221_ineq_153"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{O}}$]]></tex-math></alternatives></inline-formula> of his Observer <inline-formula id="j_info1221_ineq_154"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${O_{P}}$]]></tex-math></alternatives></inline-formula> are not forged in any way: 
<disp-formula id="j_info1221_eq_039">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P},\mathbf{V}|\equiv G,{A_{P}},\hspace{0.2778em}{A_{P}^{{\mathit{Id}_{P}}}},{A_{O}}.\]]]></tex-math></alternatives>
</disp-formula> 
Note that this is a valid assumption, since the Purchaser generates temporary key during each transaction whereas his Observer’s data was pre-generated by the Bank.</p>
</list-item>
<list-item id="j_info1221_li_055">
<label>A2:</label>
<p>The Vendor trusts Observers as they represent the Bank: 
<disp-formula id="j_info1221_eq_040">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P},\mathbf{V}|\equiv {\mathbf{O}_{\mathbf{P}}},{\mathbf{O}_{\mathbf{V}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_056">
<label>A3:</label>
<p>The Vendor receives correct public information from the Purchaser:</p>
<p><graphic xlink:href="info1221_g010.jpg"/></p>
</list-item>
<list-item id="j_info1221_li_057">
<label>A4:</label>
<p>The Purchaser receives correct public information from his Observer:</p>
<p><graphic xlink:href="info1221_g011.jpg"/></p>
</list-item>
</list> 
E-cash withdrawal and payment protocols involve sending the following parameters: 
<list>
<list-item id="j_info1221_li_058">
<label>M1:</label>
<p>Data, generated by the Purchaser’s Observer, is sent to the Purchaser: 
<disp-formula id="j_info1221_eq_041">
<alternatives><mml:math display="block">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>:</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[{\mathbf{O}_{\mathbf{P}}}\to \mathbf{P}:\hspace{2.5pt}\substack{{\xi _{i}^{(1)}},{\xi _{i}^{(2)}},\hspace{0.2778em}{g^{{\xi _{i}^{(1)}}}},\hspace{0.2778em}{g^{{\xi _{i}^{(2)}}}},\\ {} \big({m_{i}}||{t_{i}}||{\mathit{Id}_{V}}\big),\hspace{0.2778em}\big({m_{i}}||{t_{i}}||{\mathit{Id}_{V}}\big)\cdot {g^{{\xi _{i}^{(1)}}}},\\ {} {\big\langle {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(1)}}}}\big\rangle _{{x_{O}}}},\\ {} {\big\langle {A_{P}^{{\mathit{Id}_{P}}}}\cdot {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(2)}}}}\big\rangle _{{x_{O}}}},\\ {} {\big\langle {a^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\big\rangle _{{x_{O}}}}.}\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_059">
<label>M2:</label>
<p>The Purchaser sends the transaction data to the Vendor: 
<disp-formula id="j_info1221_eq_042">
<alternatives><mml:math display="block">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>:</mml:mo>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow/>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow/>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" stretchy="false">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="0.2778em"/>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\mathbf{P}\to \mathbf{V}:\substack{\big({m_{i}^{}}||{t_{i}^{}}\big),{\langle {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(1)}}}}\rangle _{{x_{O}}}},\\ {} {\big\langle {A_{P}^{{\mathit{Id}_{P}}}}\cdot {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(2)}}}}\big\rangle _{{x_{O}}}},\\ {} {\big\langle {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\big\rangle _{{x_{O}}}},\hspace{0.2778em}{\big\langle {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})\hspace{0.2778em}}}\big\rangle _{{x_{O}}}}.}\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_060">
<label>M3:</label>
<p>The Vendor sends Shnorr identification challenge to the Purchaser: 
<disp-formula id="j_info1221_eq_043">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>:</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}\to \mathbf{P}:\hspace{0.2778em}{h_{i}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_061">
<label>M4:</label>
<p>The Purchaser sends response parameters to authenticate himself to the Vendor: 
<disp-formula id="j_info1221_eq_044">
<alternatives><mml:math display="block">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>:</mml:mo>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\mathbf{P}\to \mathbf{V}:\substack{{h_{i}}\cdot {x_{P}}\cdot ({m_{i}}||{t_{i}}||{\mathit{Id}_{V}}){\xi _{i}^{(1)}},\\ {} {h_{i}}\cdot {x_{P}}\cdot {\mathit{Id}_{p}}\cdot ({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})+{\xi _{i}^{(2)}}.}\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_info1221_li_062">
<label>M5:</label>
<p>The Vendor sends response parameters to authenticate himself to the Purchaser: 
<disp-formula id="j_info1221_eq_045">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">{</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}\to \mathbf{P}:{\mathit{Id}_{V}},{\big\{{\mathit{Id}_{V}^{{m_{i}}||{t_{i}}}}\big\}_{{A_{O}}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list> 
It follows from M2 that the Vendor receives the following data from the Purchaser: 
<disp-formula id="j_info1221_eq_046">
<alternatives><mml:math display="block">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">→</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo>:</mml:mo>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\mathbf{P}\to \mathbf{V}:\substack{({m_{i}}||{t_{i}}),{\big\langle {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(1)}}}}\big\rangle _{{A_{O}}}},\\ {} {\big\langle {A_{P}^{{\mathit{Id}_{P}}}}\cdot {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(2)}}}}\big\rangle _{{x_{O}}}},\hspace{0.2778em}{\big\langle {a^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\big\rangle _{{A_{O}}}}.}\]]]></tex-math></alternatives>
</disp-formula> 
The application of message seeing rule results in the fact that the Vendor sees the data, received from the Purchaser: 
<disp-formula id="j_info1221_eq_047">
<alternatives><mml:math display="block">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mi>⊲</mml:mi>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="center">
<mml:mtr>
<mml:mtd class="array">
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\mathbf{V}\lhd \substack{({m_{i}}||{t_{i}}),{\big\langle {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\big\rangle _{{A_{O}}}},{\big\langle {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(1)}}}}\big\rangle _{{A_{O}}}},\\ {} {\big\langle {A_{P}^{{\mathit{Id}_{P}}}}\cdot {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(2)}}}}\big\rangle _{{A_{O}}}}.}\]]]></tex-math></alternatives>
</disp-formula> 
The application of message meaning and belief rules and the use of Purchaser Observer‘s public key results in the fact that the Vendor believes in the validity of data, generated by the Purchaser’s Observer: 
<disp-formula id="j_info1221_eq_048">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv {\mathbf{O}_{\mathbf{P}}}|\sim \big({A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}},{A_{P}}{^{({m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(1)}}}},{A_{P}^{{\mathit{Id}_{P}}}}\cdot {A_{P}}{^{({m_{i}}||{t_{i}}||{\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(2)}}}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
It follows from the belief rule that: 
<disp-formula id="j_info1221_eq_049">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv {\mathbf{O}_{\mathbf{P}}}|\sim {A_{P}}{^{({m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}})}}.\]]]></tex-math></alternatives>
</disp-formula> 
Since <inline-formula id="j_info1221_ineq_155"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${A_{P}}$]]></tex-math></alternatives></inline-formula> is a public key, the Vendor believes in the fact, that the received transaction is meant for him and that the sum <inline-formula id="j_info1221_ineq_156"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> and the time instance <inline-formula id="j_info1221_ineq_157"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula> are approved by the Bank: 
<disp-formula id="j_info1221_eq_050">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv {\mathbf{O}_{\mathbf{P}}}|\sim {m_{i}}||{t_{i}}.\]]]></tex-math></alternatives>
</disp-formula> 
Subsequently the Vendor believes in the validity of these parameters: 
<disp-formula id="j_info1221_eq_051">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathbf{V}|\equiv {\mathbf{O}_{\mathbf{P}}}|\equiv {m_{i}}||{t_{i}},\\ {} \displaystyle \mathbf{V}|\equiv {\mathbf{O}_{\mathbf{P}}}|\equiv {m_{i}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
The application of nonce-verification rule, jurisdiction and control, and the assumption that the Observer is trusted by all parties’ results in the proof of the goal G1: 
<disp-formula id="j_info1221_eq_052">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv {m_{i}}.\]]]></tex-math></alternatives>
</disp-formula> 
Now we consider the second goal. The Vendor sees the following information received from the Purchaser: 
<disp-formula id="j_info1221_eq_053">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mi>⊲</mml:mi>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mspace width="0.2778em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟨</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">⟩</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mspace width="0.2778em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}\lhd \big[{\big\langle {h^{\prime }_{i}};\big({m^{\prime }_{i}}||{t^{\prime }_{i}}||{\mathit{Id}_{V}}\big)\big\rangle _{{A_{P}},\hspace{0.2778em}\hspace{0.2778em}{\xi _{i}^{(1)}}}},\hspace{0.2778em}{\big\langle {h^{\prime }_{i}},\hspace{0.2778em}{\mathit{Id}^{\prime }_{p}},\hspace{0.2778em}\big({m^{\prime }_{i}}||{t^{\prime }_{i}}||{\mathit{Id}_{V}}\big)\big\rangle _{{A_{P}},\hspace{0.2778em}\hspace{0.2778em}{\xi _{i}^{(2)}}}}\big].\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>By applying the message meaning rule and assumption A3 we obtain: 
<disp-formula id="j_info1221_eq_054">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv \mathbf{P}|\sim \big[\big({m^{\prime }_{i}}||{t^{\prime }_{i}}\big),{A_{P}}{^{({m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(1)}}}},\hspace{0.2778em}{A_{P}^{{\mathit{Id}_{P}}}}\cdot {A_{P}}{^{({m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}})}}\cdot {g^{{\xi _{i}^{(2)}}}},\hspace{0.2778em}{A_{P}}{^{({m_{i}}\| {t_{i}}\| {\mathit{Id}_{V}})}}\big],\]]]></tex-math></alternatives>
</disp-formula> 
i.e. the Vendor believes that it was the Purchaser, who sent him the specified data. Moreover, it follows from assumption A3 and concatenation rules that, due to correct values of total price <inline-formula id="j_info1221_ineq_158"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> and the time instance <inline-formula id="j_info1221_ineq_159"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula>, it is the Purchaser, who is interested in acquiring the goods: 
<disp-formula id="j_info1221_eq_055">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathbf{V}|\equiv \mathbf{P}|\sim \big[({m_{i}}||{t_{i}}),\hspace{0.2778em}{A_{P}}{^{({m_{i}}||{t_{i}})}}\cdot {g^{{\xi _{i}^{(1)}}}},\hspace{0.2778em}{A_{P}^{{\mathit{Id}_{P}}}}\cdot {A_{P}}{^{({m_{i}}||{t_{i}})}}\cdot {g^{{\xi _{i}^{(2)}}}},\hspace{0.2778em}{A_{P}}{^{({m_{i}}||{t_{i}})}}\big],\\ {} \displaystyle \mathbf{V}|\equiv \mathbf{P}|\sim ({m_{i}}||{t_{i}}).\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>We now apply the nonce-verification rule: 
<disp-formula id="j_info1221_eq_056">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">⇒</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">⇒</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathbf{V}|\equiv \mathbf{P}|\Rightarrow {m_{i}}||{t_{i}},\\ {} \displaystyle \mathbf{V}|\equiv {\mathbf{O}_{\mathbf{P}}}\Rightarrow {\mathit{Id}_{p}},\end{array}\]]]></tex-math></alternatives>
</disp-formula> 
and hence the Vendor trusts that the Purchaser obtained the desired sum <inline-formula id="j_info1221_ineq_160"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> from the Bank at the time <inline-formula id="j_info1221_ineq_161"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula>, i.e. the Purchaser has jurisdiction to spend this sum of money. Furthermore, the Vendor also believes that the Bank has the jurisdiction over the Purchaser via his representative (Observer <inline-formula id="j_info1221_ineq_162"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">P</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{O}_{\mathbf{P}}}$]]></tex-math></alternatives></inline-formula>). Furthermore, the Vendor believes that the Purchaser knows his identity: 
<disp-formula id="j_info1221_eq_057">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi>⊲</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv \mathbf{P}\lhd {\mathit{Id}_{p}}.\]]]></tex-math></alternatives>
</disp-formula> 
Finally, using jurisdiction, control and referencing to the rules above, the Vendor trusts the Purchaser’s identity: 
<disp-formula id="j_info1221_eq_058">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}|\equiv {\mathit{Id}_{p}}.\]]]></tex-math></alternatives>
</disp-formula> 
The second goal <inline-formula id="j_info1221_ineq_163"><alternatives><mml:math>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{V}|\equiv \mathbf{P}$]]></tex-math></alternatives></inline-formula> now follows from the proven results <inline-formula id="j_info1221_ineq_164"><alternatives><mml:math>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{V}|\equiv {\mathit{Id}_{p}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_info1221_ineq_165"><alternatives><mml:math>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{V}|\equiv {m_{i}}$]]></tex-math></alternatives></inline-formula>, since Vendor trusts the Purchaser‘s identity and fairness (the sum <inline-formula id="j_info1221_ineq_166"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> is not forged).</p>
<p>Now we consider the third goal. Due to M5, the Purchaser sees the following information received from the Vendor: 
<disp-formula id="j_info1221_eq_059">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mi>⊲</mml:mi>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">{</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P}\lhd \big[{\mathit{Id}_{V}},{\big\{{\mathit{Id}_{V}^{{m_{i}}||{t_{i}}}}\big\}_{{A_{O}}}}\big].\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Note that the Vendor received this data from his Observer, implying that: 
<disp-formula id="j_info1221_eq_060">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mi>⊲</mml:mi>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">{</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">}</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{V}\lhd \big[{\mathit{Id}_{V}},{\big\{{\mathit{Id}_{V}^{{m_{i}}||{t_{i}}}}\big\}_{{A_{O}}}}\big].\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>By applying the message meaning rule, concatenation rule, and assumption A4 we obtain: 
<disp-formula id="j_info1221_eq_061">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">{</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P}|\equiv {\mathbf{O}_{\mathbf{V}}}|\sim \big[{\mathit{Id}_{V}},\big\{{\mathit{Id}_{V}^{{m_{i}}||{t_{i}}}}\big\},{A_{O}}\big],\]]]></tex-math></alternatives>
</disp-formula> 
i.e. the Purchaser believes that it was the Vendor’s Observer, who generated the signature. Moreover, it follows from assumptions A4 and concatenation rules that, due to correct values of total price <inline-formula id="j_info1221_ineq_167"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}$]]></tex-math></alternatives></inline-formula> and the time instance <inline-formula id="j_info1221_ineq_168"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{i}}$]]></tex-math></alternatives></inline-formula>, the Purchaser is dealing with an honest Vendor: 
<disp-formula id="j_info1221_eq_062">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">∼</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P}|\equiv {\mathbf{O}_{\mathbf{V}}}|\sim {\mathit{Id}_{V}}.\]]]></tex-math></alternatives>
</disp-formula> 
We now apply the nonce-verification rule: 
<disp-formula id="j_info1221_eq_063">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">⇒</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P}|\equiv {\mathbf{O}_{\mathbf{V}}}|\Rightarrow {\mathit{Id}_{V}}.\]]]></tex-math></alternatives>
</disp-formula> 
Hence, the Purchaser believes that the Vendor’s Observer has jurisdiction over the Vendor. Furthermore, due to this fact, the Purchaser trusts that the Vendor knows his identity since his Observer possesses this information: 
<disp-formula id="j_info1221_eq_064">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:mi>⊲</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">O</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>⊲</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle \mathbf{P}|\equiv \mathbf{V}\lhd {\mathit{Id}_{V}},\\ {} \displaystyle \mathbf{P}|\equiv {\mathbf{O}_{\mathbf{V}}}\lhd {\mathit{Id}_{V}}.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Finally, using jurisdiction, control and referencing to the rules above, the Purchaser trusts the Vendor’s identity: 
<disp-formula id="j_info1221_eq_065">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">V</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{P}|\equiv {\mathit{Id}_{V}}.\]]]></tex-math></alternatives>
</disp-formula> 
Hence, the validity of the third goal <inline-formula id="j_info1221_ineq_169"><alternatives><mml:math>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">≡</mml:mo>
<mml:mi mathvariant="bold">V</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{P}|\equiv \mathbf{V}$]]></tex-math></alternatives></inline-formula> now follows from the proven results.</p>
</sec>
<sec id="j_info1221_s_008">
<label>5</label>
<title>Investigation of Execution Time</title>
<p>Since the considerable amount of payment operations is performed in Observer having restricted computation resources, the effectivity of proposed e-wallet system depends on the estimation of the operation time.</p>
<p>The computation time is directly related with the processor’s clock frequency. If processor is running at 1 GHz clock frequency, then its clock cycle takes <inline-formula id="j_info1221_ineq_170"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>9</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mtext>s</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[${10^{-9}}\hspace{2.5pt}\text{s}=1ns$]]></tex-math></alternatives></inline-formula> time.</p>
<p>The arithmetic operations required to perform a payment protocol is multiplication and addition together with shifting operation all performed in the registers of Observer. We name those operations as elementary operations.</p>
<p>We assume that 32 bits’ microprocessor is used in Observer. It is far less than the bit length of variables used in payment protocol represented by 2048 bit integers. Without the loss of generality, we assume that all elementary operations take one clock cycle.</p>
<p>The most time consuming operation is the exponentiation modulo <italic>p</italic> of length in 2048 bits. For the assessment of computation time, firstly, we must estimate the number of elementary operations required for the calculation of the modular exponent function <inline-formula id="j_info1221_ineq_171"><alternatives><mml:math>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.2778em"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="0.2778em"/>
<mml:mi mathvariant="italic">p</mml:mi></mml:math><tex-math><![CDATA[$r={g^{k}}\hspace{0.2778em}\text{mod}\hspace{0.2778em}p$]]></tex-math></alternatives></inline-formula>.</p>
<p>According to Knuth (<xref ref-type="bibr" rid="j_info1221_ref_017">1981</xref>), Hwang <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_015">2005</xref>), the modular exponent function is computed using <italic>addition chain method</italic> (Knuth, <xref ref-type="bibr" rid="j_info1221_ref_017">1981</xref>). The formulas to find the number of those operations are the following: 
<disp-formula id="j_info1221_eq_066">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">MOD</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>5</mml:mn>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">Mod</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{MOD}_{E}}(k,p)=1,5\cdot l(k)\big[M\big(l(p)\big)+2\mathit{Mod}\big(l(p)\big)+1\big],\]]]></tex-math></alternatives>
</disp-formula> 
where: 
<disp-formula id="j_info1221_eq_067">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="left">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>3</mml:mn>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>5</mml:mn>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>32</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">Mod</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">Mod</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>5</mml:mn>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{array}{l}\displaystyle M(w)=3M(w/2)+5A(w)+2S,\\ {} \displaystyle A(w)=w/32,\\ {} \displaystyle \mathit{Mod}(w)=\mathit{Mod}(w/2)+4M(w/2)+1,5A(w)+3S.\end{array}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<list>
<list-item id="j_info1221_li_063">
<label>1.</label>
<p><inline-formula id="j_info1221_ineq_172"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">MOD</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{MOD}_{E}}(k,p)$]]></tex-math></alternatives></inline-formula> – denotes an operation of modular exponentiation <inline-formula id="j_info1221_ineq_173"><alternatives><mml:math>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="0.2778em"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="0.2778em"/>
<mml:mi mathvariant="italic">p</mml:mi></mml:math><tex-math><![CDATA[$r={g^{k}}\hspace{0.2778em}\text{mod}\hspace{0.2778em}p$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_info1221_li_064">
<label>2.</label>
<p><inline-formula id="j_info1221_ineq_174"><alternatives><mml:math>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mi mathvariant="italic">Mod</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$M(w),\hspace{0.2778em}A(w),\hspace{0.2778em}\mathit{Mod}(w)$]]></tex-math></alternatives></inline-formula> – denote operations of multiplication, addition and modulus with the bit length of operand is <italic>w</italic>;</p>
</list-item>
<list-item id="j_info1221_li_065">
<label>3.</label>
<p><inline-formula id="j_info1221_ineq_175"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$l(w)$]]></tex-math></alternatives></inline-formula> – denotes the bit length of <italic>w</italic>;</p>
</list-item>
<list-item id="j_info1221_li_066">
<label>4.</label>
<p><italic>S</italic> denotes the shift operator.</p>
</list-item>
</list>
<p>The bit lengths of the variables in our scheme are presented in Table <xref rid="j_info1221_tab_003">3</xref>.</p>
<table-wrap id="j_info1221_tab_003">
<label>Table 3</label>
<caption>
<p>Bit length of variables.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Variable</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Bit length</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_176"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">O</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mi mathvariant="italic">G</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Id</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">P</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="0.2778em"/>
<mml:mi mathvariant="italic">R</mml:mi></mml:math><tex-math><![CDATA[$p,q,{x_{P}},{x_{O}}\hspace{0.2778em}{A_{P}},{A_{O}},\hspace{0.2778em}G,\hspace{0.2778em}{\mathit{Id}_{P}},{h_{i}},\hspace{0.2778em}R$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">2048 bits</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_177"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">ξ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\xi _{i}^{(1)}},{\xi _{i}^{(2)}},{w_{i}^{(1)}},{w_{i}^{(2)}},{N_{i}^{(1)}},{N_{i}^{(2)}},{S_{i}^{(1)}},{S_{i}^{(2)}},{S_{i}^{(3)}},{r_{i}^{(1)}},{r_{i}^{(2)}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">2048 bits</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_178"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[$m,t$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">∼18 bits</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left"><inline-formula id="j_info1221_ineq_179"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{i}}||{t_{i}}$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left">∼ 36 bits</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin"><inline-formula id="j_info1221_ineq_180"><alternatives><mml:math>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$H(m)$]]></tex-math></alternatives></inline-formula></td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">∼256 bits</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>By default, we take 82 clock cycles for SHA-2 computation (Guilford <italic>et al.</italic>, <xref ref-type="bibr" rid="j_info1221_ref_011">2012</xref>).</p>
<p>After the number <italic>N</italic> of clock cycles is found, the operation time can be estimated in the following way: <inline-formula id="j_info1221_ineq_181"><alternatives><mml:math>
<mml:mi mathvariant="italic">Time</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">T</mml:mi></mml:math><tex-math><![CDATA[$\mathit{Time}=N\cdot T$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_info1221_ineq_182"><alternatives><mml:math>
<mml:mi mathvariant="italic">T</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:mi mathvariant="italic">F</mml:mi></mml:math><tex-math><![CDATA[$T=1/F$]]></tex-math></alternatives></inline-formula> and <italic>F</italic> is a clock frequency. We assume <inline-formula id="j_info1221_ineq_183"><alternatives><mml:math>
<mml:mi mathvariant="italic">F</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1.6</mml:mn></mml:math><tex-math><![CDATA[$F=1.6$]]></tex-math></alternatives></inline-formula> GHz in further steps for the demonstration of calculations results.</p>
<p>By Hinterwälder <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_013">2013</xref>, <xref ref-type="bibr" rid="j_info1221_ref_014">2015</xref>) all Brands e-cash protocols take about 2966 ms in all protocols generated in cards. By Au <italic>et al.</italic> (<xref ref-type="bibr" rid="j_info1221_ref_001">2007</xref>) the computational time of CHL e-cash protocol in single payment is 30 modular exponentiations and takes about 2111 ms by Juang (<xref ref-type="bibr" rid="j_info1221_ref_016">2010</xref>) approximations, but it’s cost of each operation is somehow hard to compute because it depends of how many transactions have been made before and how many coins will be used. The comparison of our system with Brands and CHL systems is presented in Table <xref rid="j_info1221_tab_004">4</xref>.</p>
<table-wrap id="j_info1221_tab_004">
<label>Table 4</label>
<caption>
<p>Computation time comparisons in ms.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Protocol</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Our system</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Brands</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">CHL</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">Withdrawal</td>
<td style="vertical-align: top; text-align: left">665</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Payment</td>
<td style="vertical-align: top; text-align: left">1241</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Deposit</td>
<td style="vertical-align: top; text-align: left">629</td>
<td style="vertical-align: top; text-align: left">–</td>
<td style="vertical-align: top; text-align: left">–</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Total</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2535</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2996</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2111</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Hence, our system requires approximately the same computation time, while its functionality has a significant advantage with respect to others.</p>
<p>In Table <xref rid="j_info1221_tab_005">5</xref> we present a comparison of some offline payment e-cash systems and explore such properties as: transferability, traceability, data growth and anonymity (against Vendor and Bank). However, each of these systems possesses the flaw of money growth in size when transferred. Furthermore, any previously presented e-cash system, which eliminates this flaw, also loses anonymity against Vendor or other offline payment properties.</p>
<table-wrap id="j_info1221_tab_005">
<label>Table 5</label>
<caption>
<p>Comparison of e-money schemes.</p>
</caption>
<table>
<thead>
<tr>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">E-money systems</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Year</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Transf.</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Trace.</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Data grows</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Anon. against V.</td>
<td style="vertical-align: top; text-align: left; border-top: solid thin; border-bottom: solid thin">Anon. against B.</td>
</tr>
</thead>
<tbody>
<tr>
<td style="vertical-align: top; text-align: left">CHL</td>
<td style="vertical-align: top; text-align: left">2005</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">No</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">fairCASH</td>
<td style="vertical-align: top; text-align: left">2006</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">No</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Endorsed</td>
<td style="vertical-align: top; text-align: left">2007</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Secret splitting</td>
<td style="vertical-align: top; text-align: left">2009</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">GS proof e-cash</td>
<td style="vertical-align: top; text-align: left">2011</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Baldimtsi</td>
<td style="vertical-align: top; text-align: left">2015</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Canard e-cash</td>
<td style="vertical-align: top; text-align: left">2015</td>
<td style="vertical-align: top; text-align: left">No</td>
<td style="vertical-align: top; text-align: left">No</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">No</td>
<td style="vertical-align: top; text-align: left">No</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Märtens</td>
<td style="vertical-align: top; text-align: left">2015</td>
<td style="vertical-align: top; text-align: left">No</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left">Scalable e-cash</td>
<td style="vertical-align: top; text-align: left">2015</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">No</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
<td style="vertical-align: top; text-align: left">Yes</td>
</tr>
<tr>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Dissertation</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">2018</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Yes</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">No</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">No</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">Yes</td>
<td style="vertical-align: top; text-align: left; border-bottom: solid thin">No</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>As it can be seen, our e-cash system has the following functional advantages: anonymity against Vendor, offline payment, divisibility, transferability and double-spending prevention requirements, and most important one – data does not grow in size when transferred.</p>
<p>Based on the presented comparison we conclude that our system stands out from the other systems since it possesses similar characteristics as those schemes while also avoiding a drawback of growing in size. Furthermore, it has better or approximate computation time if compared to other schemes presented in Table <xref rid="j_info1221_tab_005">5</xref>.</p>
</sec>
<sec id="j_info1221_s_009">
<label>6</label>
<title>Conclusions and Discussion</title>
<p>Proposed offline, divisible, anonymous and transferable e-cash system with observers is analysed in few ways: an existential forgery, trustworthiness analysis using BAN logic, and computation time comparison using addition chain method is provided.</p>
<p>Our transferable e-cash system does not possess the data growth in size problem due to the usage of observers.</p>
<p>The estimated execution time of all three protocols is 2535 ms, independently of how many e-cash has been spent.</p>
<p>All these characteristics allows us to claim that proposed e-cash system is adequate to medium payment usage.</p>
</sec>
</body>
<back>
<ref-list id="j_info1221_reflist_001">
<title>References</title>
<ref id="j_info1221_ref_001">
<mixed-citation publication-type="chapter"><string-name><surname>Au</surname>, <given-names>M.H.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Mu</surname>, <given-names>Y.</given-names></string-name> (<year>2007</year>). <chapter-title>Practical compact e-cash</chapter-title>. In: <source>Australasian Conference on Information Security and Privacy</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>431</fpage>–<lpage>445</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_002">
<mixed-citation publication-type="other"><string-name><surname>Brands</surname>, <given-names>S.A.</given-names></string-name> (1993). An efficient off-line electronic cash system based on the representation problem. <italic>Centrum voor Wiskunde en Informatica</italic>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_003">
<mixed-citation publication-type="journal"><string-name><surname>Burrows</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Abadi</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Needham</surname>, <given-names>R.M.</given-names></string-name> (<year>1989</year>). <article-title>A logic of authentication</article-title>. <source>Proceedings of the Royal Society of London A: Mathematical, Physical and Engineering Sciences</source>, <volume>426</volume>, <fpage>233</fpage>–<lpage>271</lpage>. <comment>1871</comment>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_004">
<mixed-citation publication-type="chapter"><string-name><surname>Chan</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Frankel</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Tsiounis</surname>, <given-names>Y.</given-names></string-name> (<year>1998</year>). <chapter-title>Easy come-easy go divisible cash</chapter-title>. In: <source>International Conference on the Theory and Applications of Cryptographic Techniques</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>561</fpage>–<lpage>575</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_005">
<mixed-citation publication-type="chapter"><string-name><surname>Chaum</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Fiat</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Naor</surname>, <given-names>M.</given-names></string-name> (<year>1988</year>). <chapter-title>Untraceable electronic cash</chapter-title>. In: <source>Conference on the Theory and Application of Cryptography</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>New York, NY</publisher-loc>, pp. <fpage>319</fpage>–<lpage>327</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_006">
<mixed-citation publication-type="chapter"><string-name><surname>Chaum</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Pedersen</surname>, <given-names>T.P.</given-names></string-name> (<year>1992</year>). <chapter-title>Transferred cash grows in size</chapter-title>. In: <source>Workshop on the Theory and Application of Cryptographic Techniques</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>390</fpage>–<lpage>407</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Cramer</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Shoup</surname>, <given-names>V.</given-names></string-name> (<year>2003</year>). <article-title>Design and analysis of practical public-key encryption schemes secure against adaptive chosen ciphertext attack</article-title>. <source>SIAM Journal on Computing</source>, <volume>33</volume>(<issue>1</issue>), <fpage>167</fpage>–<lpage>226</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_008">
<mixed-citation publication-type="chapter"><string-name><surname>D’Amiano</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Di Crescenzo</surname>, <given-names>G.</given-names></string-name> (<year>1994</year>). <chapter-title>Methodology for digital money based on general cryptographic tools</chapter-title>. In: <source>Workshop on the Theory and Application of of Cryptographic Techniques</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>156</fpage>–<lpage>170</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_009">
<mixed-citation publication-type="journal"><string-name><surname>Diffie</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Hellman</surname>, <given-names>M.</given-names></string-name> (<year>1976</year>). <article-title>New directions in cryptography</article-title>. <source>IEEE Transactions on Information Theory</source>, <volume>22</volume>(<issue>6</issue>), <fpage>644</fpage>–<lpage>654</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_010">
<mixed-citation publication-type="chapter"><string-name><surname>Eng</surname>, <given-names>T.</given-names></string-name>, <string-name><surname>Okamoto</surname>, <given-names>T.</given-names></string-name> (<year>1994</year>). <chapter-title>Single-term divisible electronic coins</chapter-title>. In: <source>Workshop on the Theory and Application of of Cryptographic Techniques</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>306</fpage>–<lpage>319</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_011">
<mixed-citation publication-type="other"><string-name><surname>Guilford</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Yap</surname>, <given-names>K.</given-names></string-name>, <string-name><surname>Gopal</surname>, <given-names>V.</given-names></string-name> (2012). Fast SHA-256 implementations on Intel architecture processors. <italic>IA Architects</italic>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Fuchsbauer</surname>, <given-names>G.</given-names></string-name> (<year>2009</year>). <article-title>Automorphic signatures in bilinear groups and an application to round-optimal blind signatures</article-title>. <source>IACR Cryptology ePrint Archive</source>, <volume>2009</volume>, <fpage>320</fpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_013">
<mixed-citation publication-type="chapter"><string-name><surname>Hinterwälder</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Zenger</surname>, <given-names>C.T.</given-names></string-name>, <string-name><surname>Baldimtsi</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Lysyanskaya</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Paar</surname>, <given-names>C.</given-names></string-name>, <string-name><surname>Burleson</surname>, <given-names>W.P.</given-names></string-name> (<year>2013</year>). <chapter-title>Efficient e-cash in practice: NFC-based payments for public transportation systems</chapter-title>. In: <source>International Symposium on Privacy Enhancing Technologies Symposium</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>40</fpage>–<lpage>59</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_014">
<mixed-citation publication-type="chapter"><string-name><surname>Hinterwälder</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Riek</surname>, <given-names>F.</given-names></string-name>, <string-name><surname>Paar</surname>, <given-names>C.</given-names></string-name> (<year>2015</year>). <chapter-title>Efficient E-cash with attributes on MULTOS smartcards</chapter-title>. In: <source>International Workshop on Radio Frequency Identification: Security and Privacy Issues</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Cham</publisher-loc>, pp. <fpage>141</fpage>–<lpage>155</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_015">
<mixed-citation publication-type="chapter"><string-name><surname>Hwang</surname>, <given-names>R.J.</given-names></string-name>, <string-name><surname>Su</surname>, <given-names>F.F.</given-names></string-name>, <string-name><surname>Yeh</surname>, <given-names>Y.S.</given-names></string-name>, <string-name><surname>Chen</surname>, <given-names>C.Y.</given-names></string-name> (<year>2005</year>). <chapter-title>An efficient decryption method for RSA cryptosystem</chapter-title>. In: <source>Proceedings of the 19th International Conference on Advanced Information Networking and Applications (AINA’05)</source>. <publisher-name>IEEE</publisher-name>, pp. <fpage>585</fpage>–<lpage>590</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Juang</surname>, <given-names>W.S.</given-names></string-name> (<year>2010</year>). <article-title>RO-cash: an efficient and practical recoverable pre-paid offline e-cash scheme using bilinear pairings</article-title>. <source>Journal of Systems and Software</source>, <volume>83</volume>(<issue>4</issue>), <fpage>638</fpage>–<lpage>645</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_017">
<mixed-citation publication-type="book"><string-name><surname>Knuth</surname>, <given-names>D.E.</given-names></string-name> (<year>1981</year>). <source>The Art of Programming, Vol. 2, Semi-Numerical Algorithms</source>. <publisher-name>Addison Wesley</publisher-name>, <publisher-loc>Reading, MA</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_018">
<mixed-citation publication-type="chapter"><string-name><surname>Kreft</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Adi</surname>, <given-names>W.</given-names></string-name> (<year>2006</year>). <chapter-title>fairCASH-A digital cash candidate for the proposed GCC gulf dinar</chapter-title>. In: <source>Innovations in Information Technology</source>. <publisher-name>IEEE</publisher-name>, pp. <fpage>1</fpage>–<lpage>5</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_019">
<mixed-citation publication-type="chapter"><string-name><surname>Muleravičius</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Timofejeva</surname>, <given-names>I.</given-names></string-name> (<year>2016</year>). <chapter-title>On methodology of E-wallet construction for partially ff-line payment system</chapter-title>. In: <source>International Conference on Information and Software Technologies</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Cham</publisher-loc>, pp. <fpage>753</fpage>–<lpage>765</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_020">
<mixed-citation publication-type="chapter"><string-name><surname>Okamoto</surname>, <given-names>T.</given-names></string-name> (<year>1995</year>). <chapter-title>An efficient divisible electronic cash scheme</chapter-title>. In: <source>Annual International Cryptology Conference</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>438</fpage>–<lpage>451</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_021">
<mixed-citation publication-type="chapter"><string-name><surname>Pfitzmann</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Köhntopp</surname>, <given-names>M.</given-names></string-name> (<year>2001</year>). <chapter-title>Anonymity, unobservability, and pseudonymity – a proposal for terminology</chapter-title>. In: <source>Designing Privacy Enhancing Technologies</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>1</fpage>–<lpage>9</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_022">
<mixed-citation publication-type="chapter"><string-name><surname>Petersen</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Poupard</surname>, <given-names>G.</given-names></string-name> (<year>1997</year>). <chapter-title>Efficient scalable fair cash with off-line extortion prevention</chapter-title>. In: <source>International Conference on Information and Communications Security</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>463</fpage>–<lpage>477</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_023">
<mixed-citation publication-type="journal"><string-name><surname>Pointcheval</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Stern</surname>, <given-names>J.</given-names></string-name> (<year>2000</year>). <article-title>Security arguments for digital signatures and blind signatures</article-title>. <source>Journal of Cryptology</source>, <volume>13</volume>(<issue>3</issue>), <fpage>361</fpage>–<lpage>396</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_024">
<mixed-citation publication-type="book"><string-name><surname>Rosenberg</surname>, <given-names>B.</given-names></string-name> (<year>2010</year>). <source>Handbook of Financial Cryptography and Security</source>. <publisher-name>CRC Press</publisher-name>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_025">
<mixed-citation publication-type="chapter"><string-name><surname>Stadler</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Piveteau</surname>, <given-names>J.M.</given-names></string-name>, <string-name><surname>Camenisch</surname>, <given-names>J.</given-names></string-name> (<year>1995</year>). <chapter-title>Fair blind signatures</chapter-title>. In: <source>International Conference on the Theory and Applications of Cryptographic Techniques</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>209</fpage>–<lpage>219</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_026">
<mixed-citation publication-type="journal"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Timofejeva</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Michalkovič</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Muleravičius</surname>, <given-names>J.</given-names></string-name> (<year>2018</year>). <article-title>A simple off-line E-cash system with observers</article-title>. <source>Information Technology and Control</source>, <volume>47</volume>(<issue>1</issue>), <fpage>107</fpage>–<lpage>117</lpage>.</mixed-citation>
</ref>
<ref id="j_info1221_ref_027">
<mixed-citation publication-type="other"><string-name><surname>Tsiounis</surname>, <given-names>Y.</given-names></string-name> (1997). <italic>Efficient Electronic Cash: New Notions and Techniques</italic>. PhD thesis, College of Computer Science.</mixed-citation>
</ref>
<ref id="j_info1221_ref_028">
<mixed-citation publication-type="chapter"><string-name><surname>Waters</surname>, <given-names>B.</given-names></string-name> (<year>2005</year>). <chapter-title>Efficient identity-based encryption without random oracles</chapter-title>. In: <source>Annual International Conference on the Theory and Applications of Cryptographic Techniques</source>. <publisher-name>Springer</publisher-name>, <publisher-loc>Berlin, Heidelberg</publisher-loc>, pp. <fpage>114</fpage>–<lpage>127</lpage>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>