<?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">INFOR564</article-id>
<article-id pub-id-type="doi">10.15388/24-INFOR564</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>Confidential Transaction Balance Verification by the Net Using Non-Interactive Zero-Knowledge Proofs</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Kilčiauskas</surname><given-names>Aušrys</given-names></name><email xlink:href="ausrys.kilciauskas@ktu.lt">ausrys.kilciauskas@ktu.lt</email><xref ref-type="aff" rid="j_infor564_aff_001">1</xref><bio>
<p><bold>A. Kilčiauskas</bold> is a PhD student of natural sciences’ informatics at the Department of Applied Mathematics. His research area is anonymity, confidentiality, and verifiability functionalities implementation in private blockchain transactions.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Bendoraitis</surname><given-names>Antanas</given-names></name><email xlink:href="antanas.bendoraitis@ktu.edu">antanas.bendoraitis@ktu.edu</email><xref ref-type="aff" rid="j_infor564_aff_002">2</xref><bio>
<p><bold>A. Bendoraitis</bold> is a PhD student at the Faculty of Informatics. He has finished a three-semester competence course in cryptography and blockchain systems at the Department of Applied Mathematics.</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_infor564_aff_001">1</xref><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>E. Sakalauskas</bold> is a professor at the Department of Applied Mathematics, Kaunas University of Technology. He is the head of the Cryptography and Blockchain Systems research group. The scope of his scientific interests is the creation of new cryptographic methods including post-quantum methods and their security analysis. Other area of activity is cryptographic method application to private blockchain technologies, additional functionality and trustworthiness.</p></bio>
</contrib>
<aff id="j_infor564_aff_001"><label>1</label>Department of Applied Mathematics, <institution>Kaunas University of Technology</institution>, Studentu 50-324A, Kaunas LT51368, <country>Lithuania</country></aff>
<aff id="j_infor564_aff_002"><label>2</label>Faculty of Informatics, <institution>Kaunas University of Technology</institution>, <country>Lithuania</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2024</year></pub-date><pub-date pub-type="epub"><day>19</day><month>8</month><year>2024</year></pub-date><volume>35</volume><issue>3</issue><fpage>601</fpage><lpage>616</lpage><history><date date-type="received"><month>3</month><year>2024</year></date><date date-type="accepted"><month>6</month><year>2024</year></date></history>
<permissions><copyright-statement>© 2024 Vilnius University</copyright-statement><copyright-year>2024</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>One of the main trends for the monitoring and control of business processes is to implement these processes via private blockchain systems. These systems must ensure data privacy and verifiability for the entire network here denoted by ‘Net’. In addition, every business activity should be declared to a trusted third party (TTP), such as an Audit Authority (AA), for tax declaration and collection purposes.</p>
<p>We present a solution for a confidential and verifiable realization of transactions based on the Unspent Transaction Output (UTxO) paradigm. This means that the total sum of transaction inputs (incomes) <inline-formula id="j_infor564_ineq_001"><alternatives><mml:math>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi></mml:math><tex-math><![CDATA[$In$]]></tex-math></alternatives></inline-formula> must be equal to the total sum of transaction outputs (expenses) <inline-formula id="j_infor564_ineq_002"><alternatives><mml:math>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[$Ex$]]></tex-math></alternatives></inline-formula>, satisfying the balance equation <inline-formula id="j_infor564_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[$In=Ex$]]></tex-math></alternatives></inline-formula>. Privacy in a private blockchain must be achieved through the encryption of actual transaction values. However, it is crucial that all participants in the network be able to verify the validity of the transaction balance equation. This poses a challenge with probabilistically encrypted data. Moreover, the inputs and outputs are encrypted with different public keys. With the introduction of the AA, the number of different public keys for encryption can be reduced to two. Incomes are encrypted with the Receiver’s public key and expenses with the AA’s public key.</p>
<p>The novelty of our realization lies in taking additively-multiplicative, homomorphic ElGamal encryption and integrating it with a proposed paradigm of modified Schnorr identification providing a non-interactive zero-knowledge proof (NIZKP) using a cryptographically secure h-function. Introducing the AA as a structural element in a blockchain system based on the UTxO enables effective verification of encrypted transaction data for the Net. This is possible because the proposed NIZKP is able to prove the equivalency of two ciphertexts encrypted with two different public keys and different actors.</p>
<p>This integration allows all users on the Net to check the UTxO-based transaction balance equation on encrypted data. The security considerations of the proposed solution are presented.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>blockchain</kwd>
<kwd>transactions</kwd>
<kwd>unspent transaction output</kwd>
<kwd>confidentiality</kwd>
<kwd>verifiability</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_infor564_s_001">
<label>1</label>
<title>Introduction</title>
<p>The global trends, current tendencies, and frontiers of blockchain technology have been reported in Boakye <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_001">2022</xref>) where it is noted that blockchain technology research in finance has become dominated by studies on crowdfunding, entrepreneurial finance, bitcoin, entrepreneurship, fintech, and venture capital. Their overview covers 157 articles. However, the interaction between financial activity and the tax collection system is not sufficiently outlined in this and other studies.</p>
<p>This paper is a continuation of our previous research based on a tax declaration scheme using blockchain confidential transactions (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor564_ref_015">2023</xref>), based on the Unspent Transaction Output (UTxO) paradigm. This scheme includes the main blockchain actors: Senders, the Receiver, the Audit Authority (AA), and the Net, and provides confidentiality of transactions while at the same time ensuring their verifiability for the Net. Any sum Received by the Receiver is denoted by income <italic>i</italic>, and any sum spent by the Receiver is denoted by expense <italic>e</italic>. The honesty of a transaction is based on the balance between the total sums of income and expense, which we denote by <inline-formula id="j_infor564_ineq_004"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_005"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{Ex}$]]></tex-math></alternatives></inline-formula>. This means that, to ensure the honesty of transaction, the balance equation <inline-formula id="j_infor564_ineq_006"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}=\textit{Ex}$]]></tex-math></alternatives></inline-formula> must hold. Privacy in a private blockchain must be achieved through the encryption of actual transaction values. But at the same time, all the Net must be able to verify the validity of the transaction balance equation, which is impossible for probabilistically encrypted data.</p>
<p>So far, ciphertext equivalency proofs have been broadly used in cloud computing.</p>
<p>Guomin <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_009">2010</xref>) present a probabilistic public key encryption scheme based on a bilinear group where anyone can verify whether two ciphertexts are encryptions of the same message. The applications of this include searchable encryption and the partitioning of encrypted data. In their scheme, verifying the equivalency of ciphertexts requires bilinear map operations. Such operations require more computational power than exponential operations in ElGamal encryption. Their presented solution does not support encryptor authorization, which is an important part of our application.</p>
<p>The issue of searching among encrypted data is discussed in Canard <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_005">2012</xref>) with an approach based on the ElGamal system, using bilinear maps. This approach extends public-key encryption by having the following functionality: given a plaintext, a ciphertext, and a public key, it is universally possible to check whether the ciphertext encrypts the plaintext under the key. This approach, like the previous one, lacks authorization. This capacity could be valuable when storing encrypted transaction balances, and utilizing the technique outlined in our paper, in the cloud.</p>
<p>In Hongbo <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_010">2019</xref>), the problem of protecting data privacy using cloud storage is considered. The most effective solution is to encrypt data before uploading it to the cloud. The authors introduced a new notion of identity-based encryption with an equivalency test which supported flexible authorization using bilinear pairings. The experimental results presented by the authors show that their scheme is efficient and can satisfy various types of searches of encrypted data.</p>
<p>The problem of plaintext equality, which consists in determining whether ciphertexts hold the same value, is considered in Blazy <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_004">2021</xref>). Their approach generates two ciphertexts using a probabilistic public-key encryption scheme by the same prover. For a proof of plaintext equality, the authors proposed sigma protocols that led to non-interactive zero-knowledge proofs.</p>
<p>In Zhao <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_016">2022</xref>), a public key encryption scheme is proposed which supports authorized equality tests on ciphertexts in the dual server model. In this scheme, the primary server and secondary server must get authorization from users before performing a sequential equality test on ciphertexts. This scheme provides security against keyword guessing attacks and is a further improvement on the schemes proposed before.</p>
<p>In Dong <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_006">2023</xref>), it is pointed out that existing encryption schemes can potentially suffer from information leakage when dealing with multiple ciphertexts due to the need for pairwise equality tests. In this paper, encryption is supported by a multi-ciphertext equality test with proxy-assisted authorization. The proposed scheme incorporates the functionality of the multi-ciphertext equality test into the encryption schemes outlined above. It allows a single equality test to be performed on multiple ciphertexts to determine whether the underlying plaintexts are equal.</p>
<p>In the reviewed papers, different techniques are considered, but the proposed solutions do not cover the problem we are examining in this paper. Ensuring privacy in the realization of transactions requires that the inputs and outputs of such transactions are encrypted with different public keys, and that these encryptions are performed by different actors. All Senders encrypt their transactions with the Receiver’s public key, and the Receiver declares her expenses to the AA by encrypting them with the AA’s public key. To validate the balance, additively-multiplicative homomorphic encryption must be integrated into the system. We are using the well-known probabilistic ElGamal encryption paradigm, transformed to become additively-homomorphic, using also an established technique. This issue has not been considered in our reviewed literature.</p>
<p>As outlined in the literature, the problem of deciding whether several ciphertexts are computed from the same plaintext is called the ciphertext equivalency problem. Thus, the integrity of the transaction can be verified by providing a ciphertext equivalency proof for the total <inline-formula id="j_infor564_ineq_007"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_008"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{Ex}$]]></tex-math></alternatives></inline-formula> values, which are encrypted. In the case of an honest transaction, <inline-formula id="j_infor564_ineq_009"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}=\textit{Ex}$]]></tex-math></alternatives></inline-formula>, and the Receiver must prove that multiple ciphertexts of the (encrypted) total <inline-formula id="j_infor564_ineq_010"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_011"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{Ex}$]]></tex-math></alternatives></inline-formula> values are the same. This eventuality is also not considered in the outlined literature, since it arises when encrypted <inline-formula id="j_infor564_ineq_012"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_013"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{Ex}$]]></tex-math></alternatives></inline-formula> values are made by different actors and with different public keys.</p>
<p>In the reviewed techniques, no homomorphic property is required for balance verification, is realized. Such techniques can be used in a further step to store confidential data in the cloud. It is also known that encryption based on the bilinear pairing approach requires more computation power than the ElGamal encryption-based approach. Given the large number of transactions in the blockchain, optimizing the effectiveness of the ciphertext equivalency proof on the user side is desirable.</p>
<p>In this paper, we propose a more efficient method for the verification of balances by the Net in confidential transactions, compared to our previous publication (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor564_ref_015">2023</xref>). The background of our approach is the application of modified, probabilistic, additively-multiplicative homomorphic ElGamal encryption together with a modified Schnorr identification method (Freeman, <xref ref-type="bibr" rid="j_infor564_ref_008">2011</xref>; Boneh and Shoup, <xref ref-type="bibr" rid="j_infor564_ref_002">2023</xref>). The benefit of this approach is that the public parameters for both cryptographic methods are the same. The modification of ElGamal encryption involves transforming it into an additively-multiplicative homomorphic encryption, as proposed by Bunz <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_003">2018</xref>).</p>
<p>The innovation in our realization is based on the integration of modified, probabilistic and additively-multiplicative homomorphic ElGamal encryption with our proposed construction of a modified Schnorr identification. This construction is extended to a non-interactive zero-knowledge proof (NIZKP) using a cryptographically secure h-function (Boneh and Shoup, <xref ref-type="bibr" rid="j_infor564_ref_002">2023</xref>). By introducing an AA as a structural element in blockchain system based on UTxO, the verification of encrypted transaction data for the Net can be dealt with effectively.</p>
<p>This is achieved when the proposed NIZKP construction proves the equivalency of two ciphertexts encrypted with two different public keys. This equivalency shows that two ciphertexts correspond to encryption of the same plaintext, either <inline-formula id="j_infor564_ineq_014"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_infor564_ineq_015"><alternatives><mml:math>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{Ex}$]]></tex-math></alternatives></inline-formula> when <inline-formula id="j_infor564_ineq_016"><alternatives><mml:math>
<mml:mtext mathvariant="italic">In</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Ex</mml:mtext></mml:math><tex-math><![CDATA[$\textit{In}=\textit{Ex}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Efficiency is assured by using NIZKP, thereby reducing twofold the number of encryptions required for Senders and the number of decryptions realized by the Receiver, compared with our previous publication (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor564_ref_015">2023</xref>). This is achieved by omitting the encryption of random parameters sent by Senders to the Receiver and, hence, avoiding the decryption of these parameters for the Receiver. For example, if a transaction has <italic>M</italic> inputs, then the validity verification requires M encryptions and M decryptions, respectively. All encryption and decryption methods require at least two modular exponentiations. In this paper, we are using NIZKP which requires only four modular exponentiations instead of <inline-formula id="j_infor564_ineq_017"><alternatives><mml:math>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">M</mml:mi></mml:math><tex-math><![CDATA[$2M$]]></tex-math></alternatives></inline-formula> encryptions/decryptions of random parameters.</p>
<p>The approach presented here is compatible with mobile e-wallets, and has the capacity to realize transactions offline. The realization of e-wallet transactions in the presence of observers is treated in Sakalauskas <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_013">2017</xref>, <xref ref-type="bibr" rid="j_infor564_ref_014">2018</xref>), and Muleravičius <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_011">2019</xref>). In this case, a digital currency for money transfers can be installed in the customer’s e-wallet.</p>
<p>The main contributions of this paper are:</p>
<list>
<list-item id="j_infor564_li_001">
<label>•</label>
<p>A scheme for verifying the balance of confidential transactions for the Net is presented based on the UTxO paradigm.</p>
</list-item>
<list-item id="j_infor564_li_002">
<label>•</label>
<p>The additively-multiplicative probabilistic ElGamal encryption scheme is integrated with our proposed modification of a Non-Interactive Zero Knowledge Proof (NIZKP).</p>
</list-item>
<list-item id="j_infor564_li_003">
<label>•</label>
<p>NIZKP integration allows for a reduction in the number of encryption and decryption operations versus the previous scheme proposed by the authors.</p>
</list-item>
<list-item id="j_infor564_li_004">
<label>•</label>
<p>The security considerations are presented.</p>
</list-item>
</list>
<p>The innovation of our realization is based on the integration of probabilistic, additively-multiplicative homomorphic ElGamal encryption with our proposed modification of a Non-Interactive Zero-Knowledge Proof (NIZKP) based on Schnorr identification, and on the introduction of an AA as a structural element in a UTxO-based blockchain, thus facilitating a more effective verification of encrypted transaction data by the Net. This integration allows all users on the Net to check the balance equation for UTxO-based transactions from encrypted data.</p>
<p>In Section <xref rid="j_infor564_s_002">2</xref>, an overall description of the proposed scheme is presented. In Section <xref rid="j_infor564_s_003">3</xref>, an introduction to ElGamal encryption is given, and the construction of additively-multiplicative homomorphic encryption is presented. The construction of a confidential transaction is presented in Sections <xref rid="j_infor564_s_004">4</xref> and <xref rid="j_infor564_s_005">5</xref> using our proposed modification of Schnorr identification. In Section <xref rid="j_infor564_s_006">6</xref>, security and efficiency analyses are provided. Section <xref rid="j_infor564_s_007">7</xref> gives conclusions, and at the end, a list of references is presented.</p>
</sec>
<sec id="j_infor564_s_002">
<label>2</label>
<title>Overall Description of the Transaction Scheme</title>
<p>To be self-contained, we present here some material from Sakalauskas <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_015">2023</xref>). We consider multiple-input and multiple-output blockchain transactions based on the UTxO paradigm, which is the fundamental building block of cryptocurrency transactions in blockchain systems. Transactions based on a UTxO have certain inputs and outputs (Pinna <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor564_ref_012">2018</xref>).</p>
<p>Our scheme defines the following actors: the transaction creator, Alice; the Audit Authority (AA); and the network of users, denoted as the Net. The Net is divided into three parts: the Bobs, B<sub>1</sub>, B<sub>2</sub>, <inline-formula id="j_infor564_ineq_018"><alternatives><mml:math>
<mml:mo>…</mml:mo>
<mml:mspace width="0.1667em"/></mml:math><tex-math><![CDATA[$\dots \hspace{0.1667em}$]]></tex-math></alternatives></inline-formula>, B<sub>M</sub> transferring money to Alice and providing her with income; the Larries L<sub>1</sub>, L<sub>2</sub>, <inline-formula id="j_infor564_ineq_019"><alternatives><mml:math>
<mml:mo>…</mml:mo>
<mml:mspace width="0.1667em"/></mml:math><tex-math><![CDATA[$\dots \hspace{0.1667em}$]]></tex-math></alternatives></inline-formula>, L<sub>N</sub> receiving money from Alice and thus representing Alice’s expenses; and other Net nodes verifying the transaction’s validity, composing and validating blocks, etc.</p>
<p>The present solution is an integration of several approaches. It is known that the trustworthiness of transactions relies on the balance between income (inputs) and expenses (outputs). Bunz <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_003">2018</xref>) present a method to assure the Net of the confidentiality and verifiability of transactions using a modification of ElGamal encryption (ElGamal, <xref ref-type="bibr" rid="j_infor564_ref_007">1985</xref>). This technique transforms multiplicatively homomorphic ElGamal encryption into additively homomorphic encryption. We will use this technique to create confidential and verifiable transactions for the Net. According to the UTxO paradigm, a valid transaction requires that the sum of all inputs be equal to the sum of all outputs. Change leftover after expenses is sent to the transaction creator as one of the outputs.</p>
<p>For business processes, it is important to ensure the confidentiality of transaction amounts. Confidentiality means that transaction data must be encrypted using a secure probabilistic encryption method. The challenge here lies in ensuring the honesty of transactions with encrypted incomes and expenses. Even when these values are equal, their ciphertexts may differ due to probabilistic encryption. As a result, detecting balance violations becomes problematic. Let us consider a transaction, created by Alice, consisting of income and expenses. Let us assume that Alice received incomes <inline-formula id="j_infor564_ineq_020"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_021"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{2}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_022"><alternatives><mml:math>
<mml:mo>…</mml:mo>
<mml:mspace width="0.1667em"/></mml:math><tex-math><![CDATA[$\dots \hspace{0.1667em}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_023"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{M}}$]]></tex-math></alternatives></inline-formula> from several Bobs B<sub>1</sub>, B<sub>2</sub>, <inline-formula id="j_infor564_ineq_024"><alternatives><mml:math>
<mml:mo>…</mml:mo>
<mml:mspace width="0.1667em"/></mml:math><tex-math><![CDATA[$\dots \hspace{0.1667em}$]]></tex-math></alternatives></inline-formula>, and B<sub>M</sub>, respectively. Then the total income is <inline-formula id="j_infor564_ineq_025"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$i={i_{1}}+{i_{2}}+\cdots +{i_{M}}$]]></tex-math></alternatives></inline-formula>. Alice transfers part of her total income <italic>i</italic> to several Larries L<sub>1</sub>, L<sub>2</sub>, <inline-formula id="j_infor564_ineq_026"><alternatives><mml:math>
<mml:mo>…</mml:mo>
<mml:mspace width="0.1667em"/></mml:math><tex-math><![CDATA[$\dots \hspace{0.1667em}$]]></tex-math></alternatives></inline-formula>, L<sub>N</sub> by disbursing expenses <inline-formula id="j_infor564_ineq_027"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{1}},{e_{2}},\dots ,{e_{N}}$]]></tex-math></alternatives></inline-formula>, respectively. If the sum of expenses <inline-formula id="j_infor564_ineq_028"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e^{\prime }}={e_{1}}+{e_{2}}+\cdots +{e_{N}}$]]></tex-math></alternatives></inline-formula> is less than the total income, then she transfers the change value, which we denote by <inline-formula id="j_infor564_ineq_029"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{N+1}}$]]></tex-math></alternatives></inline-formula>, to herself. If the transaction is honest, then the following balance equation must hold 
<disp-formula id="j_infor564_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ i={i_{1}}+{i_{2}}+\cdots +{i_{M}}={e_{1}}+{e_{2}}+\cdots +{e_{N}}+{e_{N+1}}={e^{\prime }}+{e_{N+1}}=e.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>In an open blockchain, i.e. in an open distributed ledger, all nodes in the Net can verify the balance of the transaction. If this balance holds good, the transaction is assumed valid. However, in private blockchain transactions, data should be confidential. In these cases, the Net cannot directly verify the validity of a transaction.</p>
<p>In this study, we will use the following notation for the private key PrK and public key PuK of two actors. For Alice: <inline-formula id="j_infor564_ineq_030"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_031"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{\mathrm{A}}}=a$]]></tex-math></alternatives></inline-formula> and for the AA: <inline-formula id="j_infor564_ineq_032"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\text{AA}}}=z$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_033"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>Puk</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[${\text{Puk}_{\text{AA}}}=\beta $]]></tex-math></alternatives></inline-formula>.</p>
<p>We assume that the AA is a Trusted Third Party (TTP) for all the Net providing tax accountancy services. All actors must declare to the AA all actual transaction data by encrypting it with the AA’s <inline-formula id="j_infor564_ineq_034"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>Puk</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[${\text{Puk}_{AA}}=\beta $]]></tex-math></alternatives></inline-formula> to ensure the confidentiality of their business activity. In addition, in our example, it means that all Bobs must encrypt their expenses by Alice’s <inline-formula id="j_infor564_ineq_035"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{\mathrm{A}}}=a$]]></tex-math></alternatives></inline-formula>. Then only Alice can decrypt her received income and verify their correctness. When Alice is transferring her expenses to her Larries, and the leftover change to herself, she encrypts them with corresponding Larries’ public keys. We do not consider this stage in this paper.</p>
<p>We will deal with Alice’s encrypted income values <inline-formula id="j_infor564_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{m}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_037"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi></mml:math><tex-math><![CDATA[$m=1,2,\dots ,M$]]></tex-math></alternatives></inline-formula>, encrypted by her <inline-formula id="j_infor564_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{\mathrm{A}}}=a$]]></tex-math></alternatives></inline-formula> and ciphertexts <inline-formula id="j_infor564_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{a,im}}$]]></tex-math></alternatives></inline-formula>, respectively. All Alice’s expenses <inline-formula id="j_infor564_ineq_040"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{n}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_041"><alternatives><mml:math>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi></mml:math><tex-math><![CDATA[$n=1,2,\dots ,N$]]></tex-math></alternatives></inline-formula> are declared to the AA by encrypting them with <inline-formula id="j_infor564_ineq_042"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>Puk</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[${\text{Puk}_{\text{AA}}}=\beta $]]></tex-math></alternatives></inline-formula> represented by ciphertexts <inline-formula id="j_infor564_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{\beta ,en}}$]]></tex-math></alternatives></inline-formula>, respectively.</p>
</sec>
<sec id="j_infor564_s_003">
<label>3</label>
<title>Additively-Multiplicative Homomorphic ElGamal Encryption</title>
<p>Our solution relies on probabilistic asymmetric ElGamal encryption by transforming it into additively-multiplicative homomorphic encryption (Bunz <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor564_ref_003">2018</xref>). To realize ElGamal encryption/decryption, public parameters must be shared on the Net. Probabilistic encryption is performed by the Sender using the Receiver’s public key and a randomly generated number, thus providing different ciphertexts even for the encryption of the same plaintext. The ciphertext is sent to the Receiver who can decrypt it using the same shared public parameters and his/her private key to obtain the corresponding plaintext. ElGamal encryption has so-called multiplicatively homomorphic properties: the encrypted product of plaintexts is equal to the product of corresponding ciphertexts.</p>
<p>Let <inline-formula id="j_infor564_ineq_044"><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:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${Z_{p}^{\ast }}=\{1,2,3,\dots ,p-1\}$]]></tex-math></alternatives></inline-formula> be a multiplicative cyclic group of order <inline-formula id="j_infor564_ineq_045"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$p-1$]]></tex-math></alternatives></inline-formula>, where <italic>p</italic> is prime, and multiplication is performed mod <italic>p</italic>. Then let there be a cyclic subgroup <inline-formula id="j_infor564_ineq_046"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{q}}$]]></tex-math></alternatives></inline-formula> of order <italic>q</italic> where <italic>q</italic> is prime and any generator of this group we denote by <italic>g</italic>. Let <italic>Mes</italic> be a message to be encrypted and <italic>m</italic> – the image of a reversible 1-to-1 function, transforming <italic>Mes</italic> to <italic>m</italic> in <inline-formula id="j_infor564_ineq_047"><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>. We denote public parameters in ElGamal encryption by 
<disp-formula id="j_infor564_eq_002">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ PP=(p,g).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The ElGamal encryption system uses the discrete exponential function (DEF) defined by the generator <italic>g</italic> in <inline-formula id="j_infor564_ineq_048"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{q}}$]]></tex-math></alternatives></inline-formula> and provides the following isomorphic mapping <inline-formula id="j_infor564_ineq_049"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">DEF</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathit{DEF}_{g}}$]]></tex-math></alternatives></inline-formula>: <inline-formula id="j_infor564_ineq_050"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">→</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Z_{q}}\to {G_{q}}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor564_ineq_051"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${Z_{q}}=\{0,1,2,\dots ,q-1\}$]]></tex-math></alternatives></inline-formula> is a ring with addition, subtraction, and multiplication operations mod <italic>q</italic>. For any integer <inline-formula id="j_infor564_ineq_052"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo stretchy="false">∈</mml:mo></mml:math><tex-math><![CDATA[$i\in $]]></tex-math></alternatives></inline-formula> <italic>Zq</italic>: 
<disp-formula id="j_infor564_eq_003">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">DEF</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="normal">mod</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathit{DEF}_{g}}(i)={g^{i}}\hspace{2.5pt}\mathrm{mod}\hspace{2.5pt}p.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Further, we omit the notation mod <italic>p</italic>, except in some special cases. A private-public key pair (PrK, PuK) is computed using public parameters PP in (<xref rid="j_infor564_eq_002">2</xref>) and <italic>DEF</italic>. Encryption is performed using the Receiver’s PuK, and decryption, correspondingly, with the Receiver’s PrK. Let Alice’s private-public key pair be (<inline-formula id="j_infor564_ineq_053"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_054"><alternatives><mml:math>
<mml:mtext>PuK</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[$\text{PuK}=a$]]></tex-math></alternatives></inline-formula>) and the AA’s private-public key pair be (<inline-formula id="j_infor564_ineq_055"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\text{AA}}}=z$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_056"><alternatives><mml:math>
<mml:mtext>PuK</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[$\text{PuK}=\beta $]]></tex-math></alternatives></inline-formula>). Key generation for both actors, Alice and the AA, is performed in the following way:</p>
<list>
<list-item id="j_infor564_li_005">
<label>1.</label>
<p><inline-formula id="j_infor564_ineq_057"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_058"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\text{AA}}}=z$]]></tex-math></alternatives></inline-formula> are randomly generated integers in the set <inline-formula id="j_infor564_ineq_059"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Z_{q}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor564_eq_004">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mtext mathvariant="italic">randi</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mtext mathvariant="italic">randi</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ x\gets \textit{randi}({Z_{q}});\hspace{2em}z\gets \textit{randi}({Z_{q}}).\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_infor564_li_006">
<label>2.</label>
<p><inline-formula id="j_infor564_ineq_060"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{\mathrm{A}}}=a$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_061"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{\text{AA}}}=\beta $]]></tex-math></alternatives></inline-formula> are computed using <inline-formula id="j_infor564_ineq_062"><alternatives><mml:math>
<mml:mtext mathvariant="italic">DEF</mml:mtext></mml:math><tex-math><![CDATA[$\textit{DEF}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor564_eq_005">
<label>(5)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">a</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">x</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">β</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">z</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ a={g^{x}}\hspace{2.5pt}\text{mod}\hspace{2.5pt}p;\hspace{2em}\beta ={g^{z}}\hspace{2.5pt}\text{mod}\hspace{2.5pt}p.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list>
<p>Let Alice be a Sender and encrypt transaction data <italic>d</italic> corresponding to a single income or expense with the AA’s <inline-formula id="j_infor564_ineq_063"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{\text{AA}}}=\beta $]]></tex-math></alternatives></inline-formula>. Then ciphertext <inline-formula id="j_infor564_ineq_064"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</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">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${c_{\beta }}=({\varepsilon _{\beta }},{\delta _{\beta }})$]]></tex-math></alternatives></inline-formula> is obtained by the following two steps:</p>
<list>
<list-item id="j_infor564_li_007">
<label>1.</label>
<p>Generate a random integer <inline-formula id="j_infor564_ineq_065"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$l\in {Z_{q}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor564_li_008">
<label>2.</label>
<p>Compute two components <inline-formula id="j_infor564_ineq_066"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\varepsilon _{\beta }}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_067"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{\beta }}$]]></tex-math></alternatives></inline-formula> of the ciphertext <inline-formula id="j_infor564_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{\beta }}$]]></tex-math></alternatives></inline-formula> 
<disp-formula id="j_infor564_eq_006">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</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">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</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[\[ {c_{\beta }}=({\varepsilon _{\beta }},{\delta _{\beta }})=\big(d{\beta ^{l}},{g^{l}}\big).\]]]></tex-math></alternatives>
</disp-formula> 
Decryption is performed using the Receiver’s <inline-formula id="j_infor564_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mtext>AA</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\text{AA}}}=z$]]></tex-math></alternatives></inline-formula> 
<disp-formula id="j_infor564_eq_007">
<label>(7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</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:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ d={\varepsilon _{\beta }}\cdot {({\delta _{\beta }})^{-z}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list>
<p>We denote encryption and decryption functions by <italic>Enc</italic>( ) and <italic>Dec</italic>( ), respectively. Then, formally, encryption and decryption operations are expressed in the following way: 
<disp-formula id="j_infor564_eq_008">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mspace width="2em"/>
<mml:mtext mathvariant="italic">Dec</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">z</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{Enc}(\beta ,l,d)={c_{\beta }};\hspace{2em}\textit{Dec}(z,{c_{\beta }})=d.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>ElGamal encryption has the following multiplicative isomorphic property. Let <inline-formula id="j_infor564_ineq_070"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${d_{1}},{d_{2}}\in \hspace{2.5pt}{Z_{q}}$]]></tex-math></alternatives></inline-formula>. Then, for the encryption of two plaintexts <inline-formula id="j_infor564_ineq_071"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${d_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_072"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${d_{2}}$]]></tex-math></alternatives></inline-formula>, two random numbers <italic>k</italic>, <italic>l</italic> are generated, yielding two ciphertexts <inline-formula id="j_infor564_ineq_073"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{\beta ,1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_074"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{\beta ,2}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor564_eq_009">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>;</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</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[\[ {c_{\beta ,1}}=\textit{Enc}(\beta ,k,{d_{1}})=({\varepsilon _{\beta ,1}},{\delta _{\beta ,1}});\hspace{2em}{c_{\beta ,2}}=\textit{Enc}(\beta ,l,{d_{2}})=({\varepsilon _{\beta ,2}},{\delta _{\beta ,2}}).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The encryption of a product <inline-formula id="j_infor564_ineq_075"><alternatives><mml:math>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$d={d_{1}}\cdot {d_{2}}$]]></tex-math></alternatives></inline-formula> with the random parameter <inline-formula id="j_infor564_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi></mml:math><tex-math><![CDATA[$j=k+l$]]></tex-math></alternatives></inline-formula> mod <italic>q</italic> yields a ciphertext <inline-formula id="j_infor564_ineq_077"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{\beta ,12}}$]]></tex-math></alternatives></inline-formula> , equal to the product of two ciphertexts <inline-formula id="j_infor564_ineq_078"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{\beta ,1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{\beta ,2}}$]]></tex-math></alternatives></inline-formula> in <inline-formula id="j_infor564_ineq_080"><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>, i.e. 
<disp-formula id="j_infor564_eq_010">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{Enc}(\beta ,j,{d_{1}}\cdot {d_{2}})={c_{\beta ,12}}=\textit{Enc}(\beta ,k,{d_{1}})\cdot \textit{Enc}(\beta ,l,{d_{2}})={c_{\beta ,1}}\cdot {c_{\beta ,2}}.\]]]></tex-math></alternatives>
</disp-formula> 
Then 
<disp-formula id="j_infor564_eq_011">
<label>(11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {c_{\beta ,12}}={c_{\beta ,1}}\cdot {c_{\beta ,2}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>According to (<xref rid="j_infor564_eq_010">10</xref>) and (<xref rid="j_infor564_eq_011">11</xref>), this encryption is a multiplicative homomorphism of plaintexts. The value of the multiplied ciphertexts is equal to multiplied value of the underlying transactions.</p>
<p>To verify the validity of the transaction based on balance equation (<xref rid="j_infor564_eq_001">1</xref>), we need to obtain the additively-multiplicative homomorphic encryption by transforming transaction data in the following way: 
<disp-formula id="j_infor564_eq_012">
<label>(12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</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">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</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">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {D_{1}}={g^{{d_{1}}}};\hspace{2em}{D_{2}}={g^{{d_{2}}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor564_ineq_081"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${d_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_082"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${d_{2}}$]]></tex-math></alternatives></inline-formula> are limited by the upper bound to <inline-formula id="j_infor564_ineq_083"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{32}}-1$]]></tex-math></alternatives></inline-formula> as noted in Sakalauskas <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor564_ref_015">2023</xref>).</p>
<p>Then (<xref rid="j_infor564_eq_010">10</xref>) can be rewritten in a form denoting the ciphertexts of encrypted transformed data in capital letters <italic>C</italic> 
<disp-formula id="j_infor564_eq_013">
<label>(13)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{Enc}(\beta ,j,{D_{1}}\cdot {D_{2}})={C_{\beta ,12}}=\textit{Enc}(\beta ,k,{D_{1}})\cdot \textit{Enc}(\beta ,l,{D_{2}})={C_{\beta ,1}}\cdot {C_{\beta ,2}},\]]]></tex-math></alternatives>
</disp-formula> 
where 
<disp-formula id="j_infor564_eq_014">
<label>(14)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<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:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">q</mml:mi>
</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[\[\begin{aligned}{}{C_{\beta ,12}}& =({\varepsilon _{\beta ,1}},{\delta _{\beta ,1}})\cdot ({\varepsilon _{\beta ,2}},{\delta _{\beta ,2}})=({\varepsilon _{\beta ,1}}\cdot {\varepsilon _{\beta ,2}},{\delta _{\beta ,1}}\cdot {\delta _{\beta ,2}})\\ {} & =\big({g^{({d_{1}}+{d_{2}})\hspace{2.5pt}\text{mod}\hspace{2.5pt}q}}\cdot {\beta ^{(k+l)\hspace{2.5pt}\text{mod}\hspace{2.5pt}q}},{g^{(k+l)\hspace{2.5pt}\text{mod}\hspace{2.5pt}q}}\big).\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The last step allows us to verify transaction balance in (<xref rid="j_infor564_eq_001">1</xref>) by verifying the multiplied encrypted income and expenses with different public keys and proving that these ciphertexts are equivalent using NIZKP.</p>
<p>To create Alice’s confidential and verifiable transaction, all her actual incomes <inline-formula id="j_infor564_ineq_084"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{1}},{i_{2}},\dots ,{i_{M}}$]]></tex-math></alternatives></inline-formula> must be transformed to the numbers <inline-formula id="j_infor564_ineq_085"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${I_{1}},{I_{2}},\dots ,{I_{M}}$]]></tex-math></alternatives></inline-formula> using (<xref rid="j_infor564_eq_012">12</xref>) and expenses <inline-formula id="j_infor564_ineq_086"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{1}},{e_{2}},\dots ,{e_{N+1}}$]]></tex-math></alternatives></inline-formula>, to the numbers <inline-formula id="j_infor564_ineq_087"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${E_{1}},{E_{2}},\dots ,{E_{N+1}}$]]></tex-math></alternatives></inline-formula>, respectively. 
<disp-formula id="j_infor564_eq_015">
<label>(15)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</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">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="2em"/>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<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">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {I_{m}}={g^{{i_{m}}}},\hspace{1em}m=1,2,\dots ,M,\hspace{2em}En={g^{{e_{n}}}},\hspace{1em}n=1,2,\dots ,N+1.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The total transformed income is denoted by <italic>I</italic>, and the total transformed expenses, by <italic>E</italic>. Then, referencing homomorphic equation (<xref rid="j_infor564_eq_014">14</xref>), we obtain 
<disp-formula id="j_infor564_eq_016">
<label>(16)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mo>;</mml:mo>
<mml:mspace width="2em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {I_{1}}\cdot {I_{2}}\cdot \cdots \cdot {I_{M}}=I;\hspace{2em}{E_{1}}\cdot {E_{2}}\cdot \cdots \cdot {E_{N+1}}=E.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The balance equation (<xref rid="j_infor564_eq_001">1</xref>) can then be rewritten as 
<disp-formula id="j_infor564_eq_017">
<label>(17)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ I=E.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</sec>
<sec id="j_infor564_s_004">
<label>4</label>
<title>Creation of Confidential and Auditable Transactions</title>
<p>In the proposed solution, all the information about actual transaction data is available to Alice as a transaction creator and to the AA.</p>
<p>The Bobs in the transaction transfer their expenses as Alice’s income <inline-formula id="j_infor564_ineq_088"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{1}},{i_{2}},\dots ,{i_{M}}$]]></tex-math></alternatives></inline-formula>, and using (<xref rid="j_infor564_eq_015">15</xref>) computed values <inline-formula id="j_infor564_ineq_089"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${I_{1}},{I_{2}},\dots ,{I_{M}}$]]></tex-math></alternatives></inline-formula>. Then the Bobs encrypt them using Alice <inline-formula id="j_infor564_ineq_090"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{A}}=a$]]></tex-math></alternatives></inline-formula> with the randomly generated numbers <inline-formula id="j_infor564_ineq_091"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${k_{1}},{k_{2}},\dots ,{k_{M}}$]]></tex-math></alternatives></inline-formula>, thus obtaining ciphertexts <inline-formula id="j_infor564_ineq_092"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{a,I1}},{C_{a,I2}},\dots ,{C_{a,IM}}$]]></tex-math></alternatives></inline-formula>, respectively. All Bobs send <inline-formula id="j_infor564_ineq_093"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({C_{a,I1}},{C_{a,I2}},\dots ,{C_{a,IM}})$]]></tex-math></alternatives></inline-formula> to Alice.</p>
<p>Alice, after receiving ciphertexts <inline-formula id="j_infor564_ineq_094"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{a,I1}},{C_{a,I2}},\dots ,{C_{a,IM}}$]]></tex-math></alternatives></inline-formula> from the Bobs, decrypts them using her <inline-formula id="j_infor564_ineq_095"><alternatives><mml:math>
<mml:mtext>PrK</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[$\text{PrK}=x$]]></tex-math></alternatives></inline-formula> and obtains numbers <inline-formula id="j_infor564_ineq_096"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${I_{1}},{I_{2}},\dots ,{I_{M}}$]]></tex-math></alternatives></inline-formula> corresponding to the actual income values <inline-formula id="j_infor564_ineq_097"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{1}},{i_{2}},\dots ,{i_{M}}$]]></tex-math></alternatives></inline-formula> transformed according to (<xref rid="j_infor564_eq_015">15</xref>).</p>
<p>Let us consider that according to the agreement between parties, values <inline-formula id="j_infor564_ineq_098"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{1}},{i_{2}},\dots ,{i_{M}}$]]></tex-math></alternatives></inline-formula> are bounded to <inline-formula id="j_infor564_ineq_099"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{32}}-1$]]></tex-math></alternatives></inline-formula>. The computation of <inline-formula id="j_infor564_ineq_100"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${i_{1}},{i_{2}},\dots ,{i_{M}}$]]></tex-math></alternatives></inline-formula> does not, therefore, require us to solve a general discrete logarithm problem in <inline-formula id="j_infor564_ineq_101"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${Z_{q}}$]]></tex-math></alternatives></inline-formula>, which is assumed unfeasible given security requirements. It is enough to perform a search in the set with <inline-formula id="j_infor564_ineq_102"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{32}}-1$]]></tex-math></alternatives></inline-formula> values. Moreover, Alice can reduce the search area with preliminary knowledge about the expected sums to be received. For example, let Alice know that the sums received from her Bobs do not exceed 10.000. Then the search area can be bound by <inline-formula id="j_infor564_ineq_103"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{16}}$]]></tex-math></alternatives></inline-formula> instead of <inline-formula id="j_infor564_ineq_104"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${2^{32}}-1$]]></tex-math></alternatives></inline-formula>.</p>
<p>According to (<xref rid="j_infor564_eq_010">10</xref>), Alice multiplies all ciphertexts <inline-formula id="j_infor564_ineq_105"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({C_{a,I1}},{C_{a,I2}},\dots ,{C_{a,IM}})$]]></tex-math></alternatives></inline-formula>, thus obtaining the ciphertext 
<disp-formula id="j_infor564_eq_018">
<label>(18)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {C_{a,I}}={C_{a,I1}}\cdot {C_{a,I2}}\cdot \cdots \cdot {C_{a,IM}}.\]]]></tex-math></alternatives>
</disp-formula> 
Referring to the multiplicative homomorphic property (<xref rid="j_infor564_eq_010">10</xref>), the ciphertext <inline-formula id="j_infor564_ineq_106"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{a,I}}$]]></tex-math></alternatives></inline-formula> corresponds to the encrypted value <italic>I</italic>, equal to the multiplication of transformed incomes (<xref rid="j_infor564_eq_015">15</xref>). 
<disp-formula id="j_infor564_eq_019">
<label>(19)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</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:mo mathvariant="normal" 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[\[ {C_{a,I}}=\textit{Enc}(a,k,I)=({\varepsilon _{a,I}},{\delta _{a,I}})=\big(I{a^{k}},{g^{k}}\big),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor564_ineq_107"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$k={k_{1}}+{k_{2}}+\cdots +{k_{M}}$]]></tex-math></alternatives></inline-formula> mod <italic>q</italic>. Notice that in our construction it is not necessary to have any knowledge about <italic>k</italic> and its additive components. This was necessary for the method proposed in our previous publication (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor564_ref_015">2023</xref>), where <inline-formula id="j_infor564_ineq_108"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">M</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${k_{1}},{k_{2}},\dots ,{k_{M}}$]]></tex-math></alternatives></inline-formula> were additionally encrypted by the Bobs with Alice’s <inline-formula id="j_infor564_ineq_109"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{\mathrm{A}}}=a$]]></tex-math></alternatives></inline-formula>. Then Alice decrypted them using her <inline-formula id="j_infor564_ineq_110"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula>. Therefore, actors made <italic>M</italic> additional encryptions and <italic>M</italic> additional decryptions. As we said above, it is not here necessary to perform these steps since we have proposed using NIZKP instead.</p>
<p>After this step, Alice defines expenses <inline-formula id="j_infor564_ineq_111"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${e_{1}},{e_{2}},\dots ,{e_{N+1}}$]]></tex-math></alternatives></inline-formula> and transforms them to <inline-formula id="j_infor564_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${E_{1}},{E_{2}},\dots ,{E_{N+1}}$]]></tex-math></alternatives></inline-formula> by applying (<xref rid="j_infor564_eq_015">15</xref>).</p>
<p>We do not consider Alice’s tax declaration to the AA and her encrypted transfer of expenses to her Larries, since these were presented in the previous paper (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor564_ref_015">2023</xref>).</p>
<p>Alice multiplies all expenses <inline-formula id="j_infor564_ineq_113"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({E_{1}},{E_{2}},\dots ,{E_{N+1}})$]]></tex-math></alternatives></inline-formula> mod <italic>p</italic>, computing the value 
<disp-formula id="j_infor564_eq_020">
<label>(20)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>·</mml:mo>
<mml:mo stretchy="false">⋯</mml:mo>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">N</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ E={E_{1}}\cdot {E_{2}}\cdot \cdots \cdot {E_{N+1}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Then the secret random integer <inline-formula id="j_infor564_ineq_114"><alternatives><mml:math>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mtext mathvariant="italic">randi</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$l\gets \textit{randi}({Z_{q}})$]]></tex-math></alternatives></inline-formula> is generated by Alice and used for <italic>E</italic> value encryption using the AA’s <inline-formula id="j_infor564_ineq_115"><alternatives><mml:math>
<mml:mtext>PuK</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[$\text{PuK}=\beta $]]></tex-math></alternatives></inline-formula>. Thus, the following ciphertext is obtained: 
<disp-formula id="j_infor564_eq_021">
<label>(21)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Enc</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</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[\[ {C_{\beta ,E}}=\textit{Enc}(\beta ,l,E)=({\varepsilon _{\beta ,E}},{\delta _{\beta ,E}})=\big(E{\beta ^{l}},{g^{l}}\big).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Alice must prove to the Net that ciphertexts <inline-formula id="j_infor564_ineq_116"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{a,I}}$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_infor564_ineq_117"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula> encrypt the same value <inline-formula id="j_infor564_ineq_118"><alternatives><mml:math>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi></mml:math><tex-math><![CDATA[$I=E$]]></tex-math></alternatives></inline-formula> using NIZKP, thus proving that the transaction is valid and honest.</p>
</sec>
<sec id="j_infor564_s_005">
<label>5</label>
<title>A Zero-Knowledge Proof – ZKP</title>
<p>A ZKP is based on our proposed modifications of the classical Schnorr identification protocol realized in the form of NIZKP (Boneh and Shoup, <xref ref-type="bibr" rid="j_infor564_ref_002">2023</xref>).</p>
<p>To be self-contained we present the classical ZKP. Recall that the public parameter is a pair, <inline-formula id="j_infor564_ineq_119"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">g</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$PP=(p,g)$]]></tex-math></alternatives></inline-formula>. Let Alice be a Prover intending to prove to any Verifier (say, the Net) that she knows her private key <inline-formula id="j_infor564_ineq_120"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula> by declaring her public key <inline-formula id="j_infor564_ineq_121"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{A}}=a$]]></tex-math></alternatives></inline-formula>. Then <inline-formula id="j_infor564_ineq_122"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{A}}=a$]]></tex-math></alternatives></inline-formula> is called a statement <inline-formula id="j_infor564_ineq_123"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(St)$]]></tex-math></alternatives></inline-formula>, and <inline-formula id="j_infor564_ineq_124"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula> is a witness for <italic>a</italic>. An interactive ZKP consists of three steps:</p>
<list>
<list-item id="j_infor564_li_009">
<label>1.</label>
<p>Alice generates <inline-formula id="j_infor564_ineq_125"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mtext mathvariant="italic">randi</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$u\gets \textit{randi}({Z_{q}})$]]></tex-math></alternatives></inline-formula>, computes the commitment 
<disp-formula id="j_infor564_eq_022">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">t</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">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ t={g^{u}},\]]]></tex-math></alternatives>
</disp-formula> 
and sends <italic>t</italic> to the Verifier;</p>
</list-item>
<list-item id="j_infor564_li_010">
<label>2.</label>
<p>The Verifier generates <inline-formula id="j_infor564_ineq_126"><alternatives><mml:math>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mtext mathvariant="italic">randi</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$h\gets \textit{randi}({Z_{q}})$]]></tex-math></alternatives></inline-formula> and sends it to Alice;</p>
</list-item>
<list-item id="j_infor564_li_011">
<label>3.</label>
<p>Alice computes a response 
<disp-formula id="j_infor564_eq_023">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ r=xh+u\hspace{2.5pt}\text{mod}\hspace{2.5pt}q,\]]]></tex-math></alternatives>
</disp-formula> 
and sends <italic>r</italic> to the Verifier.</p>
</list-item>
</list>
<p>The Verifier verifies the following identity of terms to be convinced that Alice knows her <inline-formula id="j_infor564_ineq_127"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula>. 
<disp-formula id="j_infor564_eq_024">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {g^{r}}={a^{h}}\cdot t.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This technique is generalized to allow NIZKP to convince the Net that two different ciphertexts <inline-formula id="j_infor564_ineq_128"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{a,I}}$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_infor564_eq_018">18</xref>) and <inline-formula id="j_infor564_ineq_129"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_infor564_eq_021">21</xref>) are obtained by encryption of the same plaintext with different public keys, namely <inline-formula id="j_infor564_ineq_130"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{A}}=a$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_131"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PuK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[${\text{PuK}_{AA}}=\beta $]]></tex-math></alternatives></inline-formula>. We assume that the verifier Net is a so-called honest verifier, and the proof represents the so-called Honest Verifier ZKP.</p>
<p>Referring to Boneh and Shoup (<xref ref-type="bibr" rid="j_infor564_ref_002">2023</xref>), interactive ZKP can be transformed to non-interactive by replacing the random value <italic>h</italic> generated by the Verifier with the <italic>h</italic>-value computed by the Prover using a cryptographically secure <italic>h</italic>-function. This is the basis of the NIZKP scheme.</p>
<p>However, the scheme presented above is insufficient to realize a proof of ciphertext equivalency. We propose the modification of the existing NIZKP to realize two ciphertext equivalency proofs, namely <inline-formula id="j_infor564_ineq_132"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{a,I}}$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_infor564_eq_018">18</xref>), (<xref rid="j_infor564_eq_019">19</xref>), and <inline-formula id="j_infor564_ineq_133"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_infor564_eq_020">20</xref>), (<xref rid="j_infor564_eq_021">21</xref>). Recall that <inline-formula id="j_infor564_ineq_134"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{a,I}}$]]></tex-math></alternatives></inline-formula> is a ciphertext of plaintext <italic>I</italic> encryption with Alice’s <inline-formula id="j_infor564_ineq_135"><alternatives><mml:math>
<mml:mtext>PuK</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[$\text{PuK}=a$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_136"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula> is a ciphertext of plaintext <italic>E</italic> encryption with the AA’s <inline-formula id="j_infor564_ineq_137"><alternatives><mml:math>
<mml:mtext>PuK</mml:mtext>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[$\text{PuK}=\beta $]]></tex-math></alternatives></inline-formula>. The statement <inline-formula id="j_infor564_ineq_138"><alternatives><mml:math>
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi></mml:math><tex-math><![CDATA[$St$]]></tex-math></alternatives></inline-formula> of our proposed NIZKP consists of the following: 
<disp-formula id="j_infor564_eq_025">
<label>(22)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">S</mml:mi>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</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">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<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[\[ St=\big\{({\varepsilon _{a,I}},{\delta _{a,I}}),({\varepsilon _{\beta ,E}},{\delta _{\beta ,E}}),a,\beta \big\}.\]]]></tex-math></alternatives>
</disp-formula> 
The random integers <inline-formula id="j_infor564_ineq_139"><alternatives><mml:math>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mtext mathvariant="italic">randi</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$u\gets \textit{randi}({Z_{q}})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_140"><alternatives><mml:math>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo stretchy="false">←</mml:mo>
<mml:mtext mathvariant="italic">randi</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$v\gets \textit{randi}({Z_{q}})$]]></tex-math></alternatives></inline-formula> are generated by Alice, and the value <inline-formula id="j_infor564_ineq_141"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi></mml:math><tex-math><![CDATA[$(-v$]]></tex-math></alternatives></inline-formula>) mod <italic>q</italic> is computed. The proof of ciphertext equivalence is computed using three computation steps:</p>
<list>
<list-item id="j_infor564_li_012">
<label>1.</label>
<p>The following commitments are computed: <disp-formula-group id="j_infor564_dg_001">
<disp-formula id="j_infor564_eq_026">
<label>(23)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {t_{1}}={g^{u}}\hspace{2.5pt}\text{mod}\hspace{2.5pt}p;\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_027">
<label>(24)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {t_{2}}={g^{v}}\hspace{2.5pt}\text{mod}\hspace{2.5pt}p;\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_028">
<label>(25)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {t_{3}}={({\delta _{a,I}})^{u}}\cdot {\beta ^{-v}}\hspace{2.5pt}\text{mod}\hspace{2.5pt}p.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p>
</list-item>
<list-item id="j_infor564_li_013">
<label>2.</label>
<p>The following h-value is computed using the cryptographically secure <italic>h</italic>-function <italic>H</italic>: 
<disp-formula id="j_infor564_eq_029">
<label>(26)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">H</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo stretchy="false">‖</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">‖</mml:mo>
<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[\[ h=H\big(a\| \beta \| {t_{1}}\| {t_{2}}\| {t_{3}}\| \big).\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_infor564_li_014">
<label>3.</label>
<p>Alice, having her <inline-formula id="j_infor564_ineq_142"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula>, randomly generates the secret number <italic>l</italic> for <italic>E</italic> encryption and computes the following two values: <disp-formula-group id="j_infor564_dg_002">
<disp-formula id="j_infor564_eq_030">
<label>(27)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& r=x\cdot h+u\hspace{2.5pt}\text{mod}\hspace{2.5pt}q;\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_031">
<label>(28)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>mod</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& s=l\cdot h+v\hspace{2.5pt}\text{mod}\hspace{2.5pt}q.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> Then Alice declares the following set of data to the Net: 
<disp-formula id="j_infor564_eq_032">
<label>(29)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo stretchy="false">→</mml:mo>
<mml:mtext>Net</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \{a,\beta ,{t_{1}},{t_{2}},{t_{3}},r,s\}\to \text{Net}.\]]]></tex-math></alternatives>
</disp-formula> 
To verify the transaction’s validity, the Net computes the <italic>h</italic>-value according to (<xref rid="j_infor564_eq_029">26</xref>) and then verifies three identities: <disp-formula-group id="j_infor564_dg_003">
<disp-formula id="j_infor564_eq_033">
<label>(30)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {g^{r}}={a^{h}}\cdot {t_{1}};\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_034">
<label>(31)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {g^{s}}={({\delta _{\beta ,E}})^{h}}\cdot {t_{2}};\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_035">
<label>(32)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {({\varepsilon _{\beta ,E}})^{h}}\cdot {({\varepsilon _{a,I}})^{-h}}\cdot {({\delta _{a,I}})^{r}}\cdot {\beta ^{-s}}={t_{3}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> The correctness of (<xref rid="j_infor564_eq_033">30</xref>), (<xref rid="j_infor564_eq_034">31</xref>) is proved by the following identities: <disp-formula-group id="j_infor564_dg_004">
<disp-formula id="j_infor564_eq_036">
<label>(33)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</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:mi mathvariant="italic">x</mml:mi>
</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">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {g^{r}}={g^{xh+u}}={g^{xh}}\cdot {g^{u}}={\big({g^{x}}\big)^{h}}\cdot {g^{u}}={a^{h}}\cdot {t_{1}};\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_037">
<label>(34)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mtext>+ v</mml:mtext>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</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:mi mathvariant="italic">l</mml:mi>
</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">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {g^{s}}={g^{lh}}{^{\text{+ v}}}={g^{lh}}\cdot {g^{v}}={\big({g^{l}}\big)^{h}}\cdot {g^{v}}={({\delta _{\beta ,E}})^{h}}\cdot {t_{2}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group> The correctness of (<xref rid="j_infor564_eq_035">32</xref>) is proved by considering every multiplier separately: <disp-formula-group id="j_infor564_dg_005">
<disp-formula id="j_infor564_eq_038">
<label>(35)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</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:mi mathvariant="italic">E</mml:mi>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</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">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {({\varepsilon _{\beta ,E}})^{h}}={\big(E\cdot {\beta ^{l}}\big)^{h}}={E^{h}}\cdot {\beta ^{lh}};\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_039">
<label>(36)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">h</mml:mi>
</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:mi mathvariant="italic">I</mml:mi>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</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:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {({\varepsilon _{a,I}})^{-h}}={\big(I\cdot {a^{k}}\big)^{-h}}={I^{-h}}\cdot {a^{-kh}};\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_040">
<label>(37)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">r</mml:mi>
</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:mi mathvariant="italic">k</mml:mi>
</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">r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<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:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">x</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<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:mi mathvariant="italic">x</mml:mi>
</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">h</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</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:mi mathvariant="italic">k</mml:mi>
</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">u</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mphantom>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">r</mml:mi>
</mml:mrow>
</mml:msup></mml:mphantom>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</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:mi mathvariant="italic">k</mml:mi>
</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">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {({\delta _{a,I}})^{r}}={\big({g^{k}}\big)^{r}}=\big({g^{kxh+ku}}\big)={\big({g^{x}}\big)^{hk}}\cdot {\big({g^{k}}\big)^{u}}\\ {} & \phantom{{({\delta _{a,I}})^{r}}}={a^{hk}}\cdot {\big({g^{k}}\big)^{u}}={a^{hk}}\cdot {({\delta _{a,I}})^{u}};\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor564_eq_041">
<label>(38)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {\beta ^{-s}}={\beta ^{-lh-v}}={\beta ^{-lh}}\cdot {\beta ^{-v}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p>
</list-item>
</list>
<p>Notice that <italic>k</italic> is not known to Alice and is included in <inline-formula id="j_infor564_ineq_143"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\delta _{a,I}})$]]></tex-math></alternatives></inline-formula>. If the transaction is honest, then the transaction balance (<xref rid="j_infor564_eq_001">1</xref>) is satisfied and <inline-formula id="j_infor564_ineq_144"><alternatives><mml:math>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi></mml:math><tex-math><![CDATA[$I=E$]]></tex-math></alternatives></inline-formula> since. Then <inline-formula id="j_infor564_ineq_145"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[${E^{h}}\cdot {I^{-h}}=1$]]></tex-math></alternatives></inline-formula> mod <italic>p</italic>, and putting it all together, we obtain: 
<disp-formula id="j_infor564_eq_042">
<label>(39)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<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:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {E^{h}}\cdot {\beta ^{lh}}\cdot {I^{-h}}\cdot {a^{-kh}}\cdot {a^{hk}}\cdot {({\delta _{a,I}})^{u}}\cdot {\beta ^{-lh}}\cdot {\beta ^{-v}}={({\delta _{a,I}})^{u}}\cdot {\beta ^{-v}}={t_{3}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This is the proof to the Net that the balance equation (<xref rid="j_infor564_eq_001">1</xref>) is valid.</p>
</sec>
<sec id="j_infor564_s_006">
<label>6</label>
<title>Security Considerations</title>
<p>It is known that ElGamal encryption possesses semantic security and is secure against eavesdropping attacks. The modification of classical ElGamal encryption for the additively-multiplicative homomorphic encryption does not add or subtract security. It is furthermore proven that the classical Schnorr identification protocol is secure against eavesdropping attacks (Boneh and Shoup, <xref ref-type="bibr" rid="j_infor564_ref_002">2023</xref>).</p>
<p>The present modification of the classical Schnorr identification scheme is based on two parallel proofs of knowledge, i.e. of <inline-formula id="j_infor564_ineq_146"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_infor564_eq_004">4</xref>) and of a secret random parameter <italic>l</italic> in (<xref rid="j_infor564_eq_021">21</xref>) used for probabilistic encryption. Therefore, these parallel proofs are also secure against eavesdropping attacks. The third proof is the combination of the two previous proofs proving the equivalency of two ciphertexts meaning that total transformed income <italic>I</italic> in (<xref rid="j_infor564_eq_016">16</xref>) is encrypted by Alice’s public key <italic>a</italic> and the total transformed expense <italic>E</italic> in (<xref rid="j_infor564_eq_016">16</xref>) is encrypted with the AA’s public key <italic>β</italic>, when, according to (<xref rid="j_infor564_eq_017">17</xref>), <inline-formula id="j_infor564_ineq_147"><alternatives><mml:math>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi></mml:math><tex-math><![CDATA[$I=E$]]></tex-math></alternatives></inline-formula>. This proof neither adds nor subtracts security. Therefore, the proposed scheme is also secure against eavesdropping attacks.</p>
<p>We refer to the following facts and the proof of statements presented below, as detailed in numerous publications (e.g. Boneh and Shoup, <xref ref-type="bibr" rid="j_infor564_ref_002">2023</xref>), providing our security considerations.</p><statement id="j_infor564_stat_001"><label>Fact 1.</label>
<p><italic>Since the group</italic> <inline-formula id="j_infor564_ineq_148"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{q}}$]]></tex-math></alternatives></inline-formula> <italic>is of prime order, then all elements, except</italic> 1<italic>, are the generators and the order q of</italic> <inline-formula id="j_infor564_ineq_149"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{q}}$]]></tex-math></alternatives></inline-formula> <italic>is super-polynomial.</italic></p></statement><statement id="j_infor564_stat_002"><label>Fact 2.</label>
<p><italic>The DEF in</italic> (<xref rid="j_infor564_eq_003">3</xref>) <italic>is a</italic> 1<italic>-to-</italic>1 <italic>function.</italic></p></statement><statement id="j_infor564_stat_003"><label>Fact 3.</label>
<p><italic>The decisional Diffie–Hellman assumption</italic> (<italic>DDH</italic>) <italic>holds in the subgroup</italic> <inline-formula id="j_infor564_ineq_150"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{q}}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_infor564_stat_004"><label>Fact 4.</label>
<p><italic>Since DDH holds, then the discrete logarithm assumption</italic> (<italic>DDA</italic>) <italic>holds in</italic> <inline-formula id="j_infor564_ineq_151"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{q}}$]]></tex-math></alternatives></inline-formula> <italic>as well. This means that for every probabilistic polynomial time algorithm, the probability to find i in</italic> (<xref rid="j_infor564_eq_003">3</xref>) <italic>is negligible.</italic></p></statement>
<p>The following known statements hold.</p><statement id="j_infor564_stat_005"><label>Statement 1.</label>
<p>ElGamal additively-homomorphic encryption achieves semantic security.</p></statement><statement id="j_infor564_stat_006"><label>Statement 2.</label>
<p>Schnorr’s identification protocol is secure against eavesdropping attacks.</p></statement><statement id="j_infor564_stat_007"><label>Statement 3.</label>
<p>Schnorr’s non-interactive identification protocol is secure against eavesdropping attacks if the challenge component in Schnorr’s identification protocol is replaced by h-value computation using H-function modelled as a random oracle.</p></statement>
<p>Now we can turn to the proof of security for a non-interactive zero-knowledge proof of ciphertext equivalency starting from the following clear lemma.</p><statement id="j_infor564_stat_008"><label>Lemma 1.</label>
<p><italic>Let expenses E be encrypted using the AA’s public key β with a secret random parameter l. The obtained ciphertext</italic> <inline-formula id="j_infor564_ineq_152"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula> <italic>in</italic> (<xref rid="j_infor564_eq_021">21</xref>) <italic>can then be decrypted using the parameter l without knowledge of the AA’s private key z.</italic></p></statement><statement id="j_infor564_stat_009"><label>Proof.</label>
<p>For decryption, it is necessary to compute the value <inline-formula id="j_infor564_ineq_153"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\beta ^{-l}}$]]></tex-math></alternatives></inline-formula> mod <italic>p</italic>, where <inline-formula id="j_infor564_ineq_154"><alternatives><mml:math>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi></mml:math><tex-math><![CDATA[$-l$]]></tex-math></alternatives></inline-formula> is computed mod <italic>q</italic>. Then 
<disp-formula id="j_infor564_eq_043">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mi mathvariant="italic">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
<mml:mspace width="2em"/>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ E=({\varepsilon _{\beta ,E}})\cdot {\beta ^{-l}}=E{\beta ^{l}}\cdot {\beta ^{-l}}.\hspace{2em}\]]]></tex-math></alternatives>
</disp-formula> 
 □</p></statement><statement id="j_infor564_stat_010"><label>Corollaries.</label>
<p><italic/> 
<list>
<list-item id="j_infor564_li_015">
<label>1.</label>
<p><italic>The AA’s private key z and random secret number l are independent secrets representing the plaintext E and the ciphertext</italic> <inline-formula id="j_infor564_ineq_155"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p>
</list-item>
<list-item id="j_infor564_li_016">
<label>2.</label>
<p><italic>Since the discrete exponential function is</italic> 1<italic>-to-</italic>1<italic>, then for fixed z, the parameter l uniquely represents the plaintext E and the ciphertext</italic> <inline-formula id="j_infor564_ineq_156"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula><italic>, and vice versa</italic>: <italic>for fixed l, the private key z uniquely represents the plaintext E and the ciphertext</italic> <inline-formula id="j_infor564_ineq_157"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${C_{\beta ,E}}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p>
</list-item>
</list>
</p></statement>
<p>According to Lemma <xref rid="j_infor564_stat_008">1</xref> and the Corollaries, the first two steps of the presented modification of NIZKP are based on two independent and parallel proofs of knowledge: one for <inline-formula id="j_infor564_ineq_158"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext>PrK</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">A</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">x</mml:mi></mml:math><tex-math><![CDATA[${\text{PrK}_{\mathrm{A}}}=x$]]></tex-math></alternatives></inline-formula> in (<xref rid="j_infor564_eq_004">4</xref>) and another for the secret random parameter <italic>l</italic> in (<xref rid="j_infor564_eq_021">21</xref>) used for probabilistic encryption. These proofs use the classical Schnorr identification scheme. Therefore, these two parallel proofs are also secure against eavesdropping attacks.</p>
<p>The third proof is the combination of the two previous proofs, demonstrating the equivalence of two ciphertexts. Specifically, this means that the total transformed income <italic>I</italic> in (<xref rid="j_infor564_eq_016">16</xref>) is encrypted with Alice’s public key <italic>a</italic>, and the total transformed expense <italic>E</italic> in (<xref rid="j_infor564_eq_016">16</xref>) is encrypted with the AA’s public key <italic>β</italic>. According to (<xref rid="j_infor564_eq_017">17</xref>), it means that <inline-formula id="j_infor564_ineq_159"><alternatives><mml:math>
<mml:mi mathvariant="italic">I</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">E</mml:mi></mml:math><tex-math><![CDATA[$I=E$]]></tex-math></alternatives></inline-formula>.</p>
<p>Let us consider the commitment <inline-formula id="j_infor564_ineq_160"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula> consisting of the two secret parameters <italic>u</italic> and <italic>v</italic>. According to Fact <xref rid="j_infor564_stat_001">1</xref>, all the elements of <inline-formula id="j_infor564_ineq_161"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${G_{q}}$]]></tex-math></alternatives></inline-formula>, except 1, are generators. We can interpret the value <inline-formula id="j_infor564_ineq_162"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">δ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">I</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\delta _{a,I}}$]]></tex-math></alternatives></inline-formula> as a the generator <inline-formula id="j_infor564_ineq_163"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${g_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_164"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\beta ^{-1}}$]]></tex-math></alternatives></inline-formula> as the generator <inline-formula id="j_infor564_ineq_165"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${g_{2}}$]]></tex-math></alternatives></inline-formula>. Then (<xref rid="j_infor564_eq_028">25</xref>) we can rewrite it in the following way: 
<disp-formula id="j_infor564_eq_044">
<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:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {t_{3}}={({g_{1}})^{u}}\cdot {({g_{2}})^{v}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The last equation indicates that <inline-formula id="j_infor564_ineq_166"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula> can be represented by generators <inline-formula id="j_infor564_ineq_167"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${g_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_168"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${g_{2}}$]]></tex-math></alternatives></inline-formula> with two indices <italic>u</italic> and <italic>v</italic>, respectively. In other words, <inline-formula id="j_infor564_ineq_169"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula> has representation of generator-tuple of length 2, (2-tuples).</p><statement id="j_infor564_stat_011"><label>Lemma 2.</label>
<p><italic>For all representations of</italic> <inline-formula id="j_infor564_ineq_170"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula> <italic>there are exactly q representations of</italic> 2<italic>-tuples.</italic></p></statement><statement id="j_infor564_stat_012"><label>Proof.</label>
<p>Referencing Fact <xref rid="j_infor564_stat_001">1</xref>, we can find <italic>v</italic> as a discrete logarithmic function Dlog in the following way: 
<disp-formula id="j_infor564_eq_045">
<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:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Dlog</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" stretchy="false">/</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">g</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">u</mml:mi>
</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[\[ {t_{3}}=\mathrm{Dlog}\big({t_{3}}/{({g_{1}})^{-u}}\big).\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>So, there are exactly <italic>q</italic> possible values of <italic>u</italic> to make <inline-formula id="j_infor564_ineq_171"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula> representations. The lemma is proved.  □</p></statement>
<p>The security proof is based on the fact that the Honest Prover will always convince the Honest Verifier about the ciphertexts’ equivalency. It is called a completeness proof. <statement id="j_infor564_stat_013"><label>Theorem 1.</label>
<p><italic>The presented modified NIZKP protocol is secure against an eavesdropping attack.</italic></p></statement><statement id="j_infor564_stat_014"><label>Proof.</label>
<p>By inspecting <italic>h</italic>-value expression in (<xref rid="j_infor564_eq_029">26</xref>), we see that it depends on the values <italic>a</italic>, <italic>β</italic>, <inline-formula id="j_infor564_ineq_172"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_173"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_174"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula>. The values <italic>a</italic> and <italic>β</italic> are predetermined and cannot be modified. According to Fact <xref rid="j_infor564_stat_001">1</xref>, the commitments <inline-formula id="j_infor564_ineq_175"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_176"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{2}}$]]></tex-math></alternatives></inline-formula> are in 1-to-1 correspondence with the randomly generated parameters <italic>u</italic> and <italic>v</italic>. Therefore, by fixing <inline-formula id="j_infor564_ineq_177"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_178"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{2}}$]]></tex-math></alternatives></inline-formula>, we are also fixing <italic>u</italic> and <italic>v</italic>. In this case, referencing Lemma <xref rid="j_infor564_stat_008">1</xref>, the number of representations of <inline-formula id="j_infor564_ineq_179"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula> is exactly 1. Assuming that H-function is secure (collision free), <italic>h</italic>-value is fixed and determined by <italic>a</italic>, <italic>β</italic>, <inline-formula id="j_infor564_ineq_180"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor564_ineq_181"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor564_ineq_182"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula>. Consequently, the values <italic>r</italic> and <italic>s</italic> in (<xref rid="j_infor564_eq_030">27</xref>) and (<xref rid="j_infor564_eq_031">28</xref>) are also fixed. Therefore, the ciphertext equivalency proof based on equations (<xref rid="j_infor564_eq_033">30</xref>), (<xref rid="j_infor564_eq_034">31</xref>), and (<xref rid="j_infor564_eq_035">32</xref>) satisfies the completeness condition.</p>
<p>Referencing Fact <xref rid="j_infor564_stat_003">3</xref>, the commitment <inline-formula id="j_infor564_ineq_183"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${t_{3}}$]]></tex-math></alternatives></inline-formula> does not add any insecurity to this protocol compared to the classical non-interactive Schnorr identification protocol.  □</p></statement></p>
</sec>
<sec id="j_infor564_s_007">
<label>7</label>
<title>Conclusions</title>
<p>A method for the confidential verification of transaction balances by the Net has been presented using the UTxO system, in a manner providing transparency and trustworthiness for blockchain transactions. The honesty of transactions can be verified by anyone on the Net without any knowledge about their actual values.</p>
<p>The proposed scheme provides a proof to the Net that encrypted transaction data satisfies the balance equation (<xref rid="j_infor564_eq_001">1</xref>) without revealing any information about the actual transaction data. It is guaranteed by the semantic security of ElGamal encryption and, in this paper, by a proposed a non-interactive zero-knowledge proof (NIZKP) based on Schnorr identification. Proof of security against eavesdropping attacks for the proposed NIZKP is presented. In the literature, this problem is generally known as a ciphertext equivalency proof.</p>
<p>The novelty of this proposed solution lies in the integration of additively-multiplicative homomorphic ElGamal encryption with our constructed NIZKP and its application to blockchain technology based on a UTxO system. The difference from other known approaches is that our NIZKP is constructed for different actors making independent encryptions with two different public keys.</p>
<p>The security of the proposed NIZKP against an eavesdropping adversary is proved.</p>
<p>The proposed scheme uses NIZKP, which reduces the number of encryptions and the number of decryptions by a factor of two for income, as compared with the previous authors’ results.</p>
<p>We intend future research to focus on implementing a sigma identification protocol for the ciphertext equivalency proof that is secure against active adversary attacks. The other possible direction for the presented methodology is to create new NIZKP schemes based on the potential of the matrix power function to provide security against quantum cryptanalysis attacks. This could involve some contribution to the task of integrating post-quantum cryptography with blockchain technologies.</p>
</sec>
</body>
<back>
<ref-list id="j_infor564_reflist_001">
<title>References</title>
<ref id="j_infor564_ref_001">
<mixed-citation publication-type="journal"><string-name><surname>Boakye</surname>, <given-names>E.A.</given-names></string-name>, <string-name><surname>Zhao</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Ahia</surname>, <given-names>H.</given-names></string-name> (<year>2022</year>). <article-title>Emerging research on blockchain technology in finance; a conveyed evidence of bibliometric-based evaluations</article-title>. <source>The Journal of High Technology Management Research</source>, <volume>33</volume>(<issue>2</issue>), <elocation-id>100437</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1016/j.hitech.2022.100437" xlink:type="simple">https://doi.org/10.1016/j.hitech.2022.100437</ext-link>. <ext-link ext-link-type="uri" xlink:href="https://www.sciencedirect.com/science/article/pii/S1047831022000128.">https://www.sciencedirect.com/science/article/pii/S1047831022000128.</ext-link></mixed-citation>
</ref>
<ref id="j_infor564_ref_002">
<mixed-citation publication-type="other"><string-name><surname>Boneh</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Shoup</surname>, <given-names>V.</given-names></string-name> (2023). <italic>A Graduate Course in Applied Cryptography. Draft 0.6</italic>. URL: A Graduate Course in Applied Cryptography (stanford.edu).</mixed-citation>
</ref>
<ref id="j_infor564_ref_003">
<mixed-citation publication-type="chapter"><string-name><surname>Bunz</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Bootle</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Boneh</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Poelstra</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Wuille</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Maxwell</surname>, <given-names>G.</given-names></string-name> (<year>2018</year>). <chapter-title>Bulletproofs: short proofs for confidential transactions and more</chapter-title>. In: <source>2018 IEEE Symposium on Security and Privacy (SP)</source>. <publisher-name>IEEE</publisher-name>, pp. <fpage>315</fpage>–<lpage>334</lpage>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_004">
<mixed-citation publication-type="other"><string-name><surname>Blazy</surname>, <given-names>O.</given-names></string-name>, <string-name><surname>Bultel</surname>, <given-names>X.</given-names></string-name>, <string-name><surname>Lafourcade</surname>, <given-names>P.</given-names></string-name>, <string-name><surname>Kempner</surname>, <given-names>O.P.</given-names></string-name> (2021). Generic Plaintext Equality and Inequality Proofs (Extended Version). <italic>Cryptology ePrint Archive</italic>. <uri>https://eprint.iacr.org/2021/426.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_005">
<mixed-citation publication-type="chapter"><string-name><surname>Canard</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Fuchsbauer</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Gouget</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Laguillaumie</surname>, <given-names>F.</given-names></string-name> (<year>2012</year>). <chapter-title>Plaintext-checkable encryption</chapter-title>. In: <source>Topics in Cryptology–CT-RSA 2012: The Cryptographers’ Track at the RSA Conference 2012, San Francisco, CA, USA, February 27-March 2, 2012. Proceedings</source>. <publisher-name>Springer, Berlin Heidelberg</publisher-name>, pp. <fpage>332</fpage>–<lpage>348</lpage>. <uri>https://inria.hal.science/docs/00/76/83/05/PDF/PCE_RSA.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Dong</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Zhao</surname>, <given-names>Z.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>B.</given-names></string-name>, <string-name><surname>Gao</surname>, <given-names>W.</given-names></string-name>, <string-name><surname>Zhang</surname>, <given-names>S.</given-names></string-name> (<year>2023</year>). <article-title>Certificateless encryption supporting multi-ciphertext equality test with proxy-assisted authorization</article-title>. <source>The Journal of High Technology Management Research</source>, <volume>12</volume>(<issue>20</issue>), <elocation-id>4326</elocation-id>. <uri>https://www.mdpi.com/2079-9292/12/20/4326</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>ElGamal</surname> <given-names>T.</given-names></string-name> (<year>1985</year>). <article-title>A public key cryptosystem and a signature scheme based on discrete logarithms</article-title>. <source>The Journal of High Technology Management Research</source>, <volume>31</volume>(<issue>4</issue>), <fpage>469</fpage>–<lpage>472</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/TIT.1985.1057074" xlink:type="simple">https://doi.org/10.1109/TIT.1985.1057074</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_008">
<mixed-citation publication-type="other"><string-name><surname>Freeman</surname>, <given-names>D.M.</given-names></string-name> (2011). <italic>Schnorr Identification and Signatures</italic>. <uri>http://web.stanford.edu/class/cs259c/lectures/schnorr.pdf</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_009">
<mixed-citation publication-type="chapter"><string-name><surname>Guomin</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Chik</surname>, <given-names>T.H.</given-names></string-name>, <string-name><surname>Qiong</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Duncan</surname>, <given-names>W.S.</given-names></string-name> (<year>2010</year>). <chapter-title>Probabilistic public key encryption with equality test</chapter-title>. In: <source>Topics in Cryptology: Cryptographers’ Track at the RSA Conference, CT-RSA 2010, San Francisco, March 1–5: Proceedings</source>, <series><italic>Lecture Notes in Computer Science</italic></series>, Vol. <volume>5985</volume>, pp. <fpage>119</fpage>–<lpage>131</lpage>. <uri>https://ink.library.smu.edu.sg/sis_research/7419</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Hongbo</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Huang</surname>, <given-names>Q.</given-names></string-name>, <string-name><surname>Ma</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Shen</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Susilo</surname>, <given-names>W.</given-names></string-name> (<year>2019</year>). <article-title>Authorized equality test on identity-based ciphertexts for secret data sharing via cloud storage</article-title>. <source>IEEE Access</source>, <volume>7</volume>, <fpage>25409</fpage>–<lpage>25421</lpage>. <uri>https://doi.org/10.1109/TIT.1985.1057074</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_011">
<mixed-citation publication-type="journal"><string-name><surname>Muleravičius</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Timofejeva</surname>, <given-names>I.</given-names></string-name>, <string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name> (<year>2019</year>). <article-title>Authorized equality test on identity-based ciphertexts for secret data sharing via cloud storage</article-title>. <source>IEEE Access</source>, <volume>30</volume>(<issue>2</issue>), <fpage>327</fpage>–<lpage>348</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.15388/Informatica.2019.208" xlink:type="simple">https://doi.org/10.15388/Informatica.2019.208</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Pinna</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Tonelli</surname>, <given-names>R.</given-names></string-name>, <string-name><surname>Orrú</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Marchesi</surname>, <given-names>M.</given-names></string-name> (<year>2018</year>). <article-title>A petri nets model for blockchain analysis</article-title>. <source>The Computer Journal</source>, <volume>61</volume>(<issue>9</issue>), <fpage>1374</fpage>–<lpage>1388</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1093/comjnl/bxy001" xlink:type="simple">https://doi.org/10.1093/comjnl/bxy001</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_013">
<mixed-citation publication-type="chapter"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Muleravičius</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Timofejeva</surname>, <given-names>I.</given-names></string-name>, (<year>2017</year>). <chapter-title>Computational resources for mobile E-wallet system with observers</chapter-title>. In: <source>2017 Electronics</source>. <publisher-name>IEEE</publisher-name>, pp. <fpage>1</fpage>–<lpage>5</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1109/ELECTRONICS.2017.7995226" xlink:type="simple">https://doi.org/10.1109/ELECTRONICS.2017.7995226</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_014">
<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>. <uri>http://itc.ktu.lt/index.php/ITC/article/view/18021/9326</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_015">
<mixed-citation publication-type="journal"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Bendoraitis</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Lukšaitė</surname>, <given-names>D.</given-names></string-name>, <string-name><surname>Butkus</surname>, <given-names>G.</given-names></string-name>, <string-name><surname>Vitkutė-Adžgauskienė</surname>, <given-names>D.</given-names></string-name> (<year>2023</year>). <article-title>A petri nets model for blockchain analysis</article-title>. <source>Informatica</source>, <volume>34</volume>(<issue>4</issue>), <fpage>603</fpage>–<lpage>616</lpage>. <uri>https://content.iospress.com/articles/informatica/infor531</uri>.</mixed-citation>
</ref>
<ref id="j_infor564_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Zhao</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Ding</surname>, <given-names>Y.</given-names></string-name>, <string-name><surname>Tang</surname>, <given-names>S.</given-names></string-name>, <string-name><surname>Liang</surname>, <given-names>H.</given-names></string-name>, <string-name><surname>Wang</surname>, <given-names>H.</given-names></string-name> (<year>2022</year>). <article-title>Public key encryption with authorized equality test on outsourced ciphertexts for cloud-assisted IoT in dual server model</article-title>. <source>Wireless Communications and Mobile Computing</source>, <volume>2022</volume>, <fpage>1</fpage>–<lpage>10</lpage>. <uri>https://www.hindawi.com/journals/wcmc/2022/4462134/</uri>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>
