<?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">INFOR499</article-id>
<article-id pub-id-type="doi">10.15388/22-INFOR499</article-id>
<article-categories><subj-group subj-group-type="heading">
<subject>Research Article</subject></subj-group></article-categories>
<title-group>
<article-title>CBC Mode of MPF Based Shannon Cipher Defined Over a Non-Commuting Platform Group</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-8661-3021</contrib-id>
<name><surname>Mihalkovich</surname><given-names>Aleksejus</given-names></name><email xlink:href="aleksejus.michalkovic@ktu.lt">aleksejus.michalkovic@ktu.lt</email><xref ref-type="aff" rid="j_infor499_aff_001"/><xref ref-type="corresp" rid="cor1">∗</xref><bio>
<p><bold>A. Mihalkovich</bold> obtained his PhD in 2015 and is currently an assistant professor at Kaunas University of Technology. He is a member of Identification and Cryptography Research Group and performs various investigations in symmetric and asymmetric cryptography.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Levinskas</surname><given-names>Matas</given-names></name><email xlink:href="matas.levinskas@ktu.edu">matas.levinskas@ktu.edu</email><xref ref-type="aff" rid="j_infor499_aff_001"/><bio>
<p><bold>M. Levinskas</bold> is currently pursuing a master’s degree at Kaunas University of Technology. He is a member of Identification and Cryptography Research Group and performs investigations in symmetric cryptography.</p></bio>
</contrib>
<contrib contrib-type="author">
<name><surname>Dindiene</surname><given-names>Lina</given-names></name><email xlink:href="lina.dindiene@ktu.lt">lina.dindiene@ktu.lt</email><xref ref-type="aff" rid="j_infor499_aff_001"/><bio>
<p><bold>L. Dindiene</bold> obtained her PhD in 2016 and is currently a lecturer at Kaunas University of Technology. She is a member of Identification and Cryptography Research Group and investigates statistical and probabilistic properties of cryptographic primitives.</p></bio>
</contrib>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4620-4469</contrib-id>
<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_infor499_aff_001"/><bio>
<p><bold>E. Sakalauskas</bold> is currently a professor at Kaunas University of Technology. He is the head of Identification and Cryptography Research Group and performs various investigations in symmetric and asymmetric cryptography.</p></bio>
</contrib>
<aff id="j_infor499_aff_001"><institution>Kaunas University of Technology</institution>, Studentu str. 50-324, <country>Lithuania</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>∗</label>Corresponding author.</corresp>
</author-notes>
<pub-date pub-type="ppub"><year>2022</year></pub-date><pub-date pub-type="epub"><day>9</day><month>12</month><year>2022</year></pub-date><volume>33</volume><issue>4</issue><fpage>833</fpage><lpage>856</lpage><history><date date-type="received"><month>5</month><year>2022</year></date><date date-type="accepted"><month>11</month><year>2022</year></date></history>
<permissions><copyright-statement>© 2022 Vilnius University</copyright-statement><copyright-year>2022</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>Commonly modern symmetric encryption schemes (e.g. AES) use rather simple actions repeated many times by defining several rounds to calculate the ciphertext. An idea we previously offered was to trade these multiple repeats for one non-linear operation. Recently we proposed a perfectly secure symmetric encryption scheme based on the matrix power function (MPF). However, the platform group we used was commuting. In this paper, we use a non-commuting group whose cardinality is a power of 2 as a platform for MPF. Due to the convenient cardinality value, our scheme is more suitable for practical implementation. Moreover, due to the non-commuting nature of the platform group, some “natural” constraints on the power matrices arise. We think that this fact complicates the cryptanalysis of our proposal. We demonstrate that the newly defined symmetric cipher possesses are perfectly secure as they were previously done for the commuting platform group. Furthermore, we show that the same secret key can be used multiple times to encrypt several plaintexts without loss of security. Relying on the proven properties we construct the cipher block chaining mode of the initial cipher and show that it can withstand an adaptive chosen plaintext attack.</p>
</abstract>
<kwd-group>
<label>Key words</label>
<kwd>symmetric cryptography</kwd>
<kwd>perfect secrecy</kwd>
<kwd>non-commuting cryptography</kwd>
<kwd>matrix power function</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="j_infor499_s_001">
<label>1</label>
<title>Introduction</title>
<sec id="j_infor499_s_002">
<label>1.1</label>
<title>Motivation</title>
<p>Symmetric cryptography came a long way from ancient times. One of the fundamental works in this area was presented in Shannon (<xref ref-type="bibr" rid="j_infor499_ref_015">1949</xref>). There the author introduced a concept nowadays known as the Shannon cipher given by a triplet <inline-formula id="j_infor499_ineq_001"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Gen</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathrm{Gen}(),\mathrm{Enc}(),\mathrm{Dec}())$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor499_ineq_002"><alternatives><mml:math>
<mml:mi mathvariant="normal">Gen</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{Gen}()$]]></tex-math></alternatives></inline-formula> is a key generation function, <inline-formula id="j_infor499_ineq_003"><alternatives><mml:math>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{Enc}()$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_004"><alternatives><mml:math>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{Dec}()$]]></tex-math></alternatives></inline-formula> are encryption and decryption functions, respectively, as defined in Katz and Lindell (<xref ref-type="bibr" rid="j_infor499_ref_005">2007</xref>). Assuming <italic>μ</italic> is the plaintext to be encrypted, the major requirement of a symmetric encryption scheme is the following: 
<disp-formula id="j_infor499_eq_001">
<label>(1)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathrm{Dec}(k,\mathrm{Enc}(k,\mu ))=\mu ,\]]]></tex-math></alternatives>
</disp-formula> 
i.e. decryption function correctly restores the message <italic>μ</italic> using the same key <italic>k</italic>. Any properly working symmetric cipher must satisfy this requirement. Proving the correctness of any symmetric cipher relies on verifying identity (<xref rid="j_infor499_eq_001">1</xref>).</p>
<p>In the realm of modern symmetric ciphers, the most secure ones possess an essential property of perfect secrecy – a concept initially defined by Shannon himself. One of the most intuitive definitions can be found in various textbooks like Katz and Lindell (<xref ref-type="bibr" rid="j_infor499_ref_005">2007</xref>) or Boneh and Shoup (<xref ref-type="bibr" rid="j_infor499_ref_001">2020</xref>) and states that a symmetric cipher is perfectly secure if the ciphertext <italic>c</italic> is statistically independent of the encrypted plaintext <italic>μ</italic>, i.e. 
<disp-formula id="j_infor499_eq_002">
<label>(2)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∣</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr (c={c_{0}}\mid \mu ={\mu _{0}})=\Pr (c={c_{0}}),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_005"><alternatives><mml:math>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\Pr ()$]]></tex-math></alternatives></inline-formula> denotes the probability of a random event and <inline-formula id="j_infor499_ineq_006"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{0}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_007"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{0}}$]]></tex-math></alternatives></inline-formula> are fixed ciphertext and plaintext respectively. We use this definition in Section <xref rid="j_infor499_s_011">4</xref> to show that our cipher satisfies condition (<xref rid="j_infor499_eq_002">2</xref>).</p>
<p>The perfect secrecy property of the one-time pad (OTP) technique was proven by Shannon. To our knowledge, up to our previous works, OTP together with its various modifications remained the only technique with this property. This comes from the fact that perfectly secure ciphers require keys of the same size as the plaintext to be encrypted. Hence, despite achieving this highly desirable property, OTP is mainly viewed as a theoretical concept and is rarely used in practice. Moreover, the OTP falls flat due to its inability to reuse the secret key and becomes an easy prey for active attackers. Interestingly enough, the latter flaw is also the main issue for constructing various encryption modes based on this technique.</p>
<p>Therefore, widely popular symmetric ciphers (e.g. AES) are usually constructed by repeating several rather simple operations multiple times. The more rounds are used, the higher security is achieved. These ciphers can also be adapted for practical implementation via various encryption modes.</p>
<p>Our goal is to show that the perfectly secure cipher can be adaptable for practical implementation. In other words, by using a highly non-linear matrix mapping as opposed to multiple rounds of encryption we can achieve a high-security level while also avoiding the main issue of the OTP.</p>
</sec>
<sec id="j_infor499_s_003">
<label>1.2</label>
<title>Related Work</title>
<p>Recently our research group published a paper (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor499_ref_014">2020b</xref>), where we introduced a symmetric encryption scheme based on a special case of the so-called MPF mapping. In Sakalauskas and Luksys (<xref ref-type="bibr" rid="j_infor499_ref_011">2012</xref>), authors formally defined MPF as a mapping <inline-formula id="j_infor499_ineq_008"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">↦</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\textit{Mat}_{n}}(\mathbb{R})\times {\textit{Mat}_{n}}(\mathbb{S})\times {\textit{Mat}_{n}}(\mathbb{R})\mapsto {\textit{Mat}_{n}}(\mathbb{S})$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor499_ineq_009"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</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" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\textit{Mat}_{n}}(\cdot )$]]></tex-math></alternatives></inline-formula> denotes a set of square <inline-formula id="j_infor499_ineq_010"><alternatives><mml:math>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi></mml:math><tex-math><![CDATA[$n\times n$]]></tex-math></alternatives></inline-formula> matrices with entries taken from the specified algebraic structure: a platform semigroup <inline-formula id="j_infor499_ineq_011"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">S</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{S}$]]></tex-math></alternatives></inline-formula> or a finite ring of integers <inline-formula id="j_infor499_ineq_012"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">R</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{R}$]]></tex-math></alternatives></inline-formula> with cardinality determined by the properties of <inline-formula id="j_infor499_ineq_013"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">S</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{S}$]]></tex-math></alternatives></inline-formula>. Let us assume, that matrices <inline-formula id="j_infor499_ineq_014"><alternatives><mml:math>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbf{X},\mathbf{Y}\in {\textit{Mat}_{n}}(\mathbb{R})$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_015"><alternatives><mml:math>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">E</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Mat</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbf{W},\mathbf{E}\in {\mathit{Mat}_{n}}(\mathbb{S})$]]></tex-math></alternatives></inline-formula>. Then we denote 
<disp-formula id="j_infor499_eq_003">
<label>(3)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">E</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {^{\mathbf{X}}}{\mathbf{W}^{\mathbf{Y}}}=\mathbf{E},\]]]></tex-math></alternatives>
</disp-formula> 
where each entry of the result matrix <bold>E</bold> is computed as follows: 
<disp-formula id="j_infor499_eq_004">
<label>(4)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {e_{ij}}={\prod \limits_{k=1}^{n}}{\prod \limits_{l=1}^{n}}{w_{kl}^{{x_{ik}}{y_{lj}}}}.\]]]></tex-math></alternatives>
</disp-formula> 
In the paper (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor499_ref_014">2020b</xref>) we focused on a Sylow group <inline-formula id="j_infor499_ineq_016"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{G}_{3}}$]]></tex-math></alternatives></inline-formula> found in a multiplicative group <inline-formula id="j_infor499_ineq_017"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>7</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{7}}$]]></tex-math></alternatives></inline-formula>. Let us recall that the semigroup <inline-formula id="j_infor499_ineq_018"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">S</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{S}$]]></tex-math></alternatives></inline-formula> contains a Sylow group of cardinality <inline-formula id="j_infor499_ineq_019"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${p^{k}}$]]></tex-math></alternatives></inline-formula> if <italic>k</italic> is the largest power of <italic>p</italic> dividing the multiplicative order of <inline-formula id="j_infor499_ineq_020"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">S</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{S}$]]></tex-math></alternatives></inline-formula>, i.e. a number denoted as <inline-formula id="j_infor499_ineq_021"><alternatives><mml:math>
<mml:mi mathvariant="normal">ord</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{ord}(\mathbb{S})$]]></tex-math></alternatives></inline-formula> such that for every element <inline-formula id="j_infor499_ineq_022"><alternatives><mml:math>
<mml:mi mathvariant="italic">s</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="double-struck">S</mml:mi></mml:math><tex-math><![CDATA[$s\in \mathbb{S}$]]></tex-math></alternatives></inline-formula> we have <inline-formula id="j_infor499_ineq_023"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">ord</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">S</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">s</mml:mi></mml:math><tex-math><![CDATA[${s^{1+\mathrm{ord}(\mathbb{S})}}=s$]]></tex-math></alternatives></inline-formula> (Sylow, <xref ref-type="bibr" rid="j_infor499_ref_016">1872</xref>). We proved in Sakalauskas <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor499_ref_014">2020b</xref>) that the proposed scheme is perfectly secure.</p>
<p>Our recent research continues the study of MPF applications for symmetric cipher construction but uses a non-commuting platform group. Previously, we published several papers where we proposed new protocols based on MPF defined over non-commuting platform groups (Sakalauskas <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor499_ref_013">2020a</xref>; Mihalkovich <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor499_ref_010">2020</xref>). In those papers, we proved that the proposed asymmetric cryptographic primitives rely on NP-complete problems (Sakalauskas and Mihalkovich, <xref ref-type="bibr" rid="j_infor499_ref_012">2018</xref>; Mihalkovich <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor499_ref_010">2020</xref>). We used singular matrices to our advantage and showed that non-commuting platform groups and singular matrices contribute to the overall security of the proposed protocols.</p>
<p>In our previous paper (Mihalkovich <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor499_ref_009">2022</xref>), we considered the performance of the cipher block chaining (CBC) mode based on MPF mapping. Moreover, we evaluated the computational costs of AES and TDES protocols operating in the CBC mode based on the notion of clock cycles. To achieve a balance between the memory requirements, performance, and statistical properties of our scheme, discussed previously in Levinskas and Mihalkovich (<xref ref-type="bibr" rid="j_infor499_ref_006">2021</xref>), we fixed the main parameters of our cipher at <inline-formula id="j_infor499_ineq_024"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$m=4$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_025"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4079</mml:mn></mml:math><tex-math><![CDATA[$p=4079$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_026"><alternatives><mml:math>
<mml:mi mathvariant="italic">q</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2039</mml:mn></mml:math><tex-math><![CDATA[$q=2039$]]></tex-math></alternatives></inline-formula>. Our results have shown that MPF-based CBC mode outperforms AES-128 by 1.5 times and TDES by roughly 47 times.</p>
<p>Notably, our cipher has another interesting property that was not considered previously in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor499_ref_009">2022</xref>). Since our cipher is based on matrix operations we can achieve a significant boost of performance speed by implementing parallelization of calculations up to <inline-formula id="j_infor499_ineq_027"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${m^{2}}$]]></tex-math></alternatives></inline-formula> processors during an encryption process of each block. We think that this fact benefits our proposal since other algorithms considered in our previous paper do not have this property.</p>
<p>In this paper, we introduce the CBC mode for our MPF-based cipher and prove its security. We leave the performance evaluation and comparison to other ciphers for our future work. Based on the findings presented in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor499_ref_009">2022</xref>), we expect to achieve similar results for the to-be-presented CBC mode built on the non-commuting group.</p>
</sec>
<sec id="j_infor499_s_004">
<label>1.3</label>
<title>Our Contributions</title>
<p>Obviously, singular matrices cannot be used as symmetric keys since the initial message must be restored by applying the same key which is impossible if the inverse matrix does not exist. Hence, to implement the non-commuting platform groups in symmetric encryption we have to define different templates in such a way that power matrices in (<xref rid="j_infor499_eq_003">3</xref>) would be invertible. Furthermore, as opposed to asymmetric encryption presented in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor499_ref_010">2020</xref>), we also have to make the base matrix <bold>W</bold> as flexible as possible. In other words, we cannot simply fix a template for the base matrix <bold>W</bold> since we want to be able to work with any kind of message without having to adapt them to fit a certain requirement. Therefore, we limit ourselves to defining a template for the power matrix <bold>Y</bold>, thus keeping the restrictions to a minimum.</p>
<p>As mentioned above, we also consider our cipher from the point of view of practical implementation. One obvious drawback of any perfectly secure block cipher is the fact that the encryption key has to be at least as long as the encrypted plaintext. To overcome this obstacle we define the cipher block chaining mode on the basis of our proposal. To prove its resistance against adaptive chosen plaintext attack we define a security game and show that the probability of a win is negligible.</p>
<p>In this paper, we consider a general form of one of the previously explored non-commuting groups, namely the group <inline-formula id="j_infor499_ineq_028"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{16}}$]]></tex-math></alternatives></inline-formula> (Mihalkovich, <xref ref-type="bibr" rid="j_infor499_ref_008">2018</xref>; Mihalkovich <italic>et al.</italic>, <xref ref-type="bibr" rid="j_infor499_ref_010">2020</xref>). We define this general form in the next section and present some important facts useful for our goals. These involve the explicit formulas of basic operations and the properties of MPF. In Section <xref rid="j_infor499_s_006">3</xref>, we present our main idea – a Shannon cipher based on MPF defined over a non-commuting group. Later in Section <xref rid="j_infor499_s_011">4</xref> we prove the perfect secrecy of our proposal. Moreover, in Section <xref rid="j_infor499_s_013">6</xref> we define the CBC mode of our cipher and consider the security of this scheme in Section <xref rid="j_infor499_s_014">7</xref>. As usual, in Section <xref rid="j_infor499_s_015">8</xref> we present our conclusions.</p>
</sec>
</sec>
<sec id="j_infor499_s_005">
<label>2</label>
<title>Mathematical Background</title>
<p>Let us define two generators <italic>a</italic> and <italic>b</italic> which do not commute, i.e. <inline-formula id="j_infor499_ineq_029"><alternatives><mml:math>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi></mml:math><tex-math><![CDATA[$ab\ne ba$]]></tex-math></alternatives></inline-formula>. Furthermore, we define the following relations: 
<disp-formula id="j_infor499_eq_005">
<label>(5)</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">R</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">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {R_{1}}:{a^{{2^{t-1}}}}=e;\\ {} & {R_{2}}:{b^{2}}=e;\\ {} & {R_{3}}:ba{b^{-1}}={a^{{2^{t-2}}+1}},\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>e</italic> is the identity element. Using these relations we can form words of the types <inline-formula id="j_infor499_ineq_030"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${a^{\alpha }}{b^{\beta }}$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_infor499_ineq_031"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${b^{\beta }}{a^{\alpha }}$]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor499_ineq_032"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\alpha \in \{0,1,\dots ,{2^{t-1}}-1\}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_033"><alternatives><mml:math>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\beta \in \{0,1\}$]]></tex-math></alternatives></inline-formula>. Moreover, the set of these words defines the following group: 
<disp-formula id="j_infor499_eq_006">
<label>(6)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="⟨" close="⟩">
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo stretchy="false">∣</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathtt{M}_{{2^{t}}}}=\left\langle a,b\mid {R_{1}},{R_{2}},{R_{3}}\right\rangle .\]]]></tex-math></alternatives>
</disp-formula>
</p><statement id="j_infor499_stat_001"><label>Remark 1.</label>
<p>We use the notation <inline-formula id="j_infor499_ineq_034"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> to better distinguish this group from the plaintext matrix <bold>M</bold> and the plaintext space <inline-formula id="j_infor499_ineq_035"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">M</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{M}$]]></tex-math></alternatives></inline-formula>. Furthermore, we denote the plaintext bit string by <italic>μ</italic> and entries of the matrix <bold>M</bold> by <inline-formula id="j_infor499_ineq_036"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{ij}}$]]></tex-math></alternatives></inline-formula>.</p></statement>
<p>Evidently, the identity element can be written as <inline-formula id="j_infor499_ineq_037"><alternatives><mml:math>
<mml:mi mathvariant="italic">e</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$e={a^{0}}{b^{0}}={b^{0}}{a^{0}}$]]></tex-math></alternatives></inline-formula>. Furthermore, based on the defined relations <inline-formula id="j_infor499_ineq_038"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_039"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{2}}$]]></tex-math></alternatives></inline-formula>, we can see that all the powers of the generators can be reduced modulo <inline-formula id="j_infor499_ineq_040"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t-1}}$]]></tex-math></alternatives></inline-formula> for generator <italic>a</italic> and modulo 2 for generator <italic>b</italic>. Using relations <inline-formula id="j_infor499_ineq_041"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_042"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{2}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_043"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{3}}$]]></tex-math></alternatives></inline-formula>, it is possible to derive that each element of the group <inline-formula id="j_infor499_ineq_044"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> can be represented in the form <inline-formula id="j_infor499_ineq_045"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${b^{\beta }}{a^{\alpha }}$]]></tex-math></alternatives></inline-formula>. Onwards we call this representation a normal form of the element and use it throughout this paper. Obviously, if <inline-formula id="j_infor499_ineq_046"><alternatives><mml:math>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn></mml:math><tex-math><![CDATA[$\beta =0$]]></tex-math></alternatives></inline-formula>, we have: 
<disp-formula id="j_infor499_eq_007">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {a^{\alpha }}{b^{0}}={b^{0}}{a^{\alpha }}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The general representation if <inline-formula id="j_infor499_ineq_047"><alternatives><mml:math>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\beta =1$]]></tex-math></alternatives></inline-formula> is as follows: 
<disp-formula id="j_infor499_eq_008">
<label>(7)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">b</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">b</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>is even</mml:mtext>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">b</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mtext>is odd.</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {a^{\alpha }}b=\left\{\begin{array}{l@{\hskip4.0pt}l}b{a^{\alpha }},\hspace{1em}& \text{if}\hspace{2.5pt}\alpha \hspace{2.5pt}\text{is even};\\ {} b{a^{\alpha +{2^{t-2}}}},\hspace{1em}& \text{if}\hspace{2.5pt}\alpha =0\hspace{2.5pt}\text{is odd.}\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>The proof of this fact in the special case of <inline-formula id="j_infor499_ineq_048"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{16}}$]]></tex-math></alternatives></inline-formula> was presented in Mihalkovich (<xref ref-type="bibr" rid="j_infor499_ref_008">2018</xref>). Since the idea of the proof remains the same, we omit it to shorten the paper. For this reason, the cardinality of the group <inline-formula id="j_infor499_ineq_049"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> is <inline-formula id="j_infor499_ineq_050"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t}}$]]></tex-math></alternatives></inline-formula>, i.e. the parameter <italic>t</italic> defines the size of the considered group.</p>
<p>Here we defined the group <inline-formula id="j_infor499_ineq_051"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> in its most general form. However, special cases of such groups were previously explored by researchers in group theory. For example, <inline-formula id="j_infor499_ineq_052"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{16}}$]]></tex-math></alternatives></inline-formula> is mentioned in Grundman and Smith (<xref ref-type="bibr" rid="j_infor499_ref_002">1996</xref>), where the authors were discussing the groups of cardinality 16, which are not isomorphic to any other group. A total of seven such groups of size 16 were found. In 2010, authors presented a continuation of their research in Grundman and Smith (<xref ref-type="bibr" rid="j_infor499_ref_004">2010b</xref>). There they considered non-abelian groups of size 32 and one of the mentioned groups was <inline-formula id="j_infor499_ineq_053"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>32</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{32}}$]]></tex-math></alternatives></inline-formula>. Similar non-abelian groups were also explored in Michailov (<xref ref-type="bibr" rid="j_infor499_ref_007">2007</xref>) and Grundman and Smith (<xref ref-type="bibr" rid="j_infor499_ref_003">2010a</xref>).</p>
<p>Expanding the idea to greater sizes grants us opportunities to construct symmetric encryption using <inline-formula id="j_infor499_ineq_054"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> as a platform group more flexibly. Conveniently, we can now manipulate two parameters, i.e. square matrix size <bold>M</bold> and platform group size determined by <italic>t</italic>. Special cases discussed above are obtained when <inline-formula id="j_infor499_ineq_055"><alternatives><mml:math>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$t=4$]]></tex-math></alternatives></inline-formula> or <inline-formula id="j_infor499_ineq_056"><alternatives><mml:math>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>5</mml:mn></mml:math><tex-math><![CDATA[$t=5$]]></tex-math></alternatives></inline-formula>. As mentioned previously, none of these groups are isomorphic to any other groups of the appropriate cardinality.</p>
<p>Let us now present formulas for the basic operations in <inline-formula id="j_infor499_ineq_057"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula>. All of the formulas given below are verified using relations <inline-formula id="j_infor499_ineq_058"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_059"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{2}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_060"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${R_{3}}$]]></tex-math></alternatives></inline-formula>:</p>
<list>
<list-item id="j_infor499_li_001">
<label>•</label>
<p>Multiplication of two elements <inline-formula id="j_infor499_ineq_061"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</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">w</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="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${w_{1}},{w_{2}}\in {\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> 
<disp-formula id="j_infor499_eq_009">
<label>(8)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</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">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</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">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</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">α</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:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext>is even</mml:mtext>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</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">α</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:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext>is odd and</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</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">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mspace width="2.5pt"/>
<mml:mtext>is odd and</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w_{1}}\cdot {w_{2}}=\left\{\begin{array}{l@{\hskip4.0pt}l}{b^{{\beta _{1}}+{\beta _{2}}}}{a^{{\alpha _{1}}+{\alpha _{2}}}},\hspace{1em}& \text{if}\hspace{2.5pt}{\alpha _{1}}\hspace{2.5pt}\text{is even};\\ {} {b^{{\beta _{1}}}}{a^{{\alpha _{1}}+{\alpha _{2}}}},\hspace{1em}& \text{if}\hspace{2.5pt}{\alpha _{1}}\hspace{2.5pt}\text{is odd and}\hspace{2.5pt}{\beta _{2}}=0;\\ {} {b^{{\beta _{1}}+1}}{a^{{\alpha _{1}}+{\alpha _{2}}+{2^{t-2}}}},\hspace{1em}& \text{if}\hspace{2.5pt}{\alpha _{1}}\hspace{2.5pt}\text{is odd and}\hspace{2.5pt}{\beta _{2}}=1;\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_infor499_li_002">
<label>•</label>
<p>Raising of an element <inline-formula id="j_infor499_ineq_062"><alternatives><mml:math>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$w\in {\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> to a power <inline-formula id="j_infor499_ineq_063"><alternatives><mml:math>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$n\in {\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor499_eq_010">
<label>(9)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mtext>and</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>is even</mml:mtext>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mtext>and</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>is odd</mml:mtext>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w^{n}}=\left\{\begin{array}{l@{\hskip4.0pt}l}{a^{\alpha n}},\hspace{1em}& \text{if}\hspace{2.5pt}\beta =0;\\ {} {b^{n}}{a^{\alpha n}},\hspace{1em}& \text{if}\hspace{2.5pt}\beta =1\hspace{2.5pt}\text{and}\hspace{2.5pt}\alpha \hspace{2.5pt}\text{is even};\\ {} {b^{n}}{a^{\alpha n+{2^{t-2}}\big[\frac{n}{2}\big]}},\hspace{1em}& \text{if}\hspace{2.5pt}\beta =1\hspace{2.5pt}\text{and}\hspace{2.5pt}\alpha \hspace{2.5pt}\text{is odd},\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
where notation <inline-formula id="j_infor499_ineq_064"><alternatives><mml:math>
<mml:mo fence="true" stretchy="false">[</mml:mo><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$[\frac{n}{2}]$]]></tex-math></alternatives></inline-formula> stands for the integer part of <inline-formula id="j_infor499_ineq_065"><alternatives><mml:math><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle></mml:math><tex-math><![CDATA[$\frac{n}{2}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor499_li_003">
<label>•</label>
<p>Calculating the inverse of the element <inline-formula id="j_infor499_ineq_066"><alternatives><mml:math>
<mml:mi mathvariant="italic">w</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$w\in {\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula>: 
<disp-formula id="j_infor499_eq_011">
<label>(10)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">b</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mtext>and</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>is even</mml:mtext>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="italic">b</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext>if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mspace width="2.5pt"/>
<mml:mtext>and</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mspace width="2.5pt"/>
<mml:mtext>is odd</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {w^{-1}}=\left\{\begin{array}{l@{\hskip4.0pt}l}{a^{-\alpha }},\hspace{1em}& \text{if}\hspace{2.5pt}\beta =0;\\ {} b{a^{-\alpha }},\hspace{1em}& \text{if}\hspace{2.5pt}\beta =1\hspace{2.5pt}\text{and}\hspace{2.5pt}\alpha \hspace{2.5pt}\text{is even};\\ {} b{a^{{2^{t-2}}-\alpha }},\hspace{1em}& \text{if}\hspace{2.5pt}\beta =1\hspace{2.5pt}\text{and}\hspace{2.5pt}\alpha \hspace{2.5pt}\text{is odd}.\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
</list>
<p>Explicit proofs of these formulas for a special case of <inline-formula id="j_infor499_ineq_067"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>16</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{16}}$]]></tex-math></alternatives></inline-formula> can be found in Mihalkovich (<xref ref-type="bibr" rid="j_infor499_ref_008">2018</xref>). Since the idea of these proofs stays the same, we omit them.</p>
<p>We also introduce an extra notation: 
<disp-formula id="j_infor499_eq_012">
<label>(11)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">B</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">A</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathbf{W}={b^{\mathbf{B}}}{a^{\mathbf{A}}}.\]]]></tex-math></alternatives>
</disp-formula> 
This means that each entry <inline-formula id="j_infor499_ineq_068"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${w_{ij}}$]]></tex-math></alternatives></inline-formula> of the matrix <bold>W</bold> is represented in the normal form 
<disp-formula id="j_infor499_eq_013">
<label>(12)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</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[\[ {w_{ij}}={b^{{\beta _{ij}}}}{a^{{\alpha _{ij}}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_069"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{ij}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_070"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{ij}}$]]></tex-math></alternatives></inline-formula> are entries of matrices <bold>B</bold> and <bold>A</bold>, respectively.</p>
<p>Interestingly enough, by using the group <inline-formula id="j_infor499_ineq_071"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> as a platform for MPF we also inflict some “natural” restrictions on the set of symmetric keys. This means that any tuple of matrices, which is outside of the specified domain, cannot be used, since the decryption of the ciphertext results in a scrambled mess. Specifically, if <inline-formula id="j_infor499_ineq_072"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> is used as a platform group, then in general we have: 
<disp-formula id="j_infor499_eq_014">
<label>(13)</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:msup>
<mml:mrow>
<mml:mi mathvariant="bold">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msup>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo stretchy="false">≠</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {({\mathbf{W}^{\mathbf{Y}}})^{{\mathbf{Y}^{-1}}}}\ne \mathbf{W};\\ {} & {^{{\mathbf{Y}^{-1}}}}{(^{\mathbf{Y}}}\mathbf{W})\ne \mathbf{W};\\ {} & {{(^{\mathbf{Y}}}\mathbf{W})^{\mathbf{Y}}}{\ne ^{\mathbf{Y}}}({\mathbf{W}^{\mathbf{Y}}}).\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Despite these additional complexities, it is possible to construct a working symmetric encryption protocol. However, we think that these extra complexities may be beneficial for the overall security of our proposal. Similar to the previously published key exchange in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor499_ref_010">2020</xref>), we define a template for power matrix <bold>Y</bold>, which can be used to achieve correct decryption. Then, due to inequalities (<xref rid="j_infor499_eq_014">13</xref>), anything which disobeys the chosen template makes the decryption incorrect.</p>
<p>Keeping in mind the essence of symmetric encryption, we have chosen to pick power matrices from a subset of permutation matrices modulo 2, i.e. every square power matrix of size <italic>n</italic> contains exactly <italic>n</italic> odd entries whereas the rest of the entries are even. In this special case inequalities, (<xref rid="j_infor499_eq_014">13</xref>) turn to equalities regardless of the choice of <bold>W</bold>. In the next section, we propose Shannon symmetric encryption protocol with this restriction on the power matrices.</p>
<p>Considering security of our protocol we often refer to the following two mappings <inline-formula id="j_infor499_ineq_073"><alternatives><mml:math>
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">↦</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\phi :{\mathtt{M}_{{2^{t}}}}\mapsto {\mathbb{Z}_{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_074"><alternatives><mml:math>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">↦</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\psi :{\mathtt{M}_{{2^{t}}}}\mapsto {\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula> defined below: <disp-formula-group id="j_infor499_dg_001">
<disp-formula id="j_infor499_eq_015">
<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:mtd class="align-even">
<mml:mi mathvariant="italic">ϕ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \phi ({b^{\beta }}{a^{\alpha }})=\beta ;\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor499_eq_016">
<label>(15)</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">ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \psi ({b^{\beta }}{a^{\alpha }})=\alpha .\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p>
<p>Moreover, we define the matrix analogs of these mappings by applying them to each entry of the matrix <bold>W</bold> of the form (<xref rid="j_infor499_eq_012">11</xref>) entry-wise, i.e. we have: <disp-formula-group id="j_infor499_dg_002">
<disp-formula id="j_infor499_eq_017">
<label>(16)</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="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">B</mml:mi>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \Phi (\mathbf{W})=\mathbf{B};\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
<disp-formula id="j_infor499_eq_018">
<label>(17)</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="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \Psi (\mathbf{W})=\mathbf{A}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</disp-formula-group></p>
<p>These mappings will prove helpful to us when showing the validity of the proposed protocol and establishing perfect secrecy property since they allow us to work with the powers of the specific generator.</p>
</sec>
<sec id="j_infor499_s_006">
<label>3</label>
<title>The Proposed Shannon Symmetric Encryption Protocol</title>
<p>Before executing the proposed scheme the size of the group <inline-formula id="j_infor499_ineq_075"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula>, defined by <italic>t</italic>, the size of square matrices <italic>n</italic> and the shifting parameter <italic>κ</italic>, defined below in (<xref rid="j_infor499_eq_019">18</xref>), are published online.</p>
<sec id="j_infor499_s_007">
<label>3.1</label>
<title>Key Generation Procedure</title>
<p>The key generation procedure consists of the following steps:</p>
<list>
<list-item id="j_infor499_li_004">
<label>1.</label>
<p>Generate a binary matrix <bold>Δ</bold>;</p>
</list-item>
<list-item id="j_infor499_li_005">
<label>2.</label>
<p>Generate matrix <inline-formula id="j_infor499_ineq_076"><alternatives><mml:math>
<mml:mi mathvariant="bold">X</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{X}$]]></tex-math></alternatives></inline-formula> with random uniformly selected entries from <inline-formula id="j_infor499_ineq_077"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor499_li_006">
<label>3.</label>
<p>Generate a temporary matrix <inline-formula id="j_infor499_ineq_078"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{Y}^{\prime }}$]]></tex-math></alternatives></inline-formula> with random uniformly selected entries from <inline-formula id="j_infor499_ineq_079"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-2}}}}$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor499_li_007">
<label>4.</label>
<p>Choose a permutation matrix <bold>P</bold> uniformly from the set of permutation matrices <inline-formula id="j_infor499_ineq_080"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">⊂</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Mat</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</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:math><tex-math><![CDATA[${\mathbb{P}_{n}}\subset {\mathit{Mat}_{n}}({\mathbb{Z}_{2}})$]]></tex-math></alternatives></inline-formula> of size <inline-formula id="j_infor499_ineq_081"><alternatives><mml:math>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo></mml:math><tex-math><![CDATA[$n!$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor499_li_008">
<label>5.</label>
<p>Define <inline-formula id="j_infor499_ineq_082"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">P</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}=2{\mathbf{Y}^{\prime }}+\mathbf{P}$]]></tex-math></alternatives></inline-formula>. Calculate <inline-formula id="j_infor499_ineq_083"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{Y}^{-1}}$]]></tex-math></alternatives></inline-formula> using the Gauss-Jordan algorithm.</p>
</list-item>
</list>
<p>The result of this procedure is a symmetric key <inline-formula id="j_infor499_ineq_084"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbf{X},\mathbf{Y},\boldsymbol{\Delta })$]]></tex-math></alternatives></inline-formula>. Note that each time the matrix is generated at Steps 1–3 of the presented process no additional restrictions are applied. Also, since <inline-formula id="j_infor499_ineq_085"><alternatives><mml:math>
<mml:mi mathvariant="bold">P</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mspace width="0.2em"/>
<mml:mo>mod</mml:mo>
<mml:mspace width="0.2em"/>
<mml:mn>2</mml:mn></mml:math><tex-math><![CDATA[$\mathbf{P}=\mathbf{Y}\hspace{0.2em}\mathrm{mod} \hspace{0.2em}2$]]></tex-math></alternatives></inline-formula> is a permutation matrix, the last step of the presented algorithm is always successful, i.e. <inline-formula id="j_infor499_ineq_086"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula> is invertible. Hence, all the steps of this procedure are executed exactly once since none of them can fail. We also see that due to the definition of matrix <inline-formula id="j_infor499_ineq_087"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula> both even and odd entries of <inline-formula id="j_infor499_ineq_088"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula> are distributed uniformly in the subsets of even and odd elements of <inline-formula id="j_infor499_ineq_089"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula> respectively.</p>
</sec>
<sec id="j_infor499_s_008">
<label>3.2</label>
<title>Encryption Function</title>
<p>Let us assume that a message needs to be encrypted using the generated symmetric key <inline-formula id="j_infor499_ineq_090"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}=(\mathbf{X},\mathbf{Y},\boldsymbol{\Delta })$]]></tex-math></alternatives></inline-formula>. The encryption procedure is as follows:</p>
<list>
<list-item id="j_infor499_li_009">
<label>1.</label>
<p>The message is converted to a string of bits of size <inline-formula id="j_infor499_ineq_091"><alternatives><mml:math>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$t\cdot {n^{2}}$]]></tex-math></alternatives></inline-formula>. If the message is shorter, then extra symbols are added at the end to achieve the appropriate length. Otherwise, the message is too long.</p>
</list-item>
<list-item id="j_infor499_li_010">
<label>2.</label>
<p>The obtained string of bits is transformed to the matrix format by splitting it into <inline-formula id="j_infor499_ineq_092"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${n^{2}}$]]></tex-math></alternatives></inline-formula> separate parts of length <italic>t</italic> each. The outcome of this step is a matrix which we denote by <bold>M</bold>.</p>
</list-item>
<list-item id="j_infor499_li_011">
<label>3.</label>
<p>The obtained matrix is split into separate matrices <inline-formula id="j_infor499_ineq_093"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{a}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_094"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{b}}$]]></tex-math></alternatives></inline-formula>, where the first bit of each entry of <bold>M</bold> gets transported to matrix <inline-formula id="j_infor499_ineq_095"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{b}}$]]></tex-math></alternatives></inline-formula>, whereas the rest of bits are written to matrix <inline-formula id="j_infor499_ineq_096"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{a}}$]]></tex-math></alternatives></inline-formula>, hence obtaining powers of generators <italic>b</italic> and <italic>a</italic> respectively.</p>
</list-item>
<list-item id="j_infor499_li_012">
<label>4.</label>
<p>The encryption algorithm is as follows: 
<disp-formula id="j_infor499_eq_019">
<label>(18)</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="bold">C</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">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">Δ</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:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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 stretchy="false">∥</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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 mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {\mathbf{C}_{1}}={b^{{\mathbf{M}_{b}}+\boldsymbol{\Delta }}}\odot {a^{{\mathbf{M}_{a}}+\mathbf{X}}};\\ {} & {\mathbf{C}_{2}}{=^{\mathbf{Y}}}{\mathbf{C}_{1}^{\mathbf{Y}}};\\ {} & \mathbf{C}={\mathrm{Shift}_{\kappa }}\big(\Phi ({\mathbf{C}_{2}})\parallel \Psi ({\mathbf{C}_{2}})\big)+(\boldsymbol{\Delta }\parallel \mathbf{X}),\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
where ∥ denotes the concatenation of two matrices, <inline-formula id="j_infor499_ineq_097"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathrm{Shift}_{\kappa }}$]]></tex-math></alternatives></inline-formula> is the entry-wise shifting by <italic>κ</italic> bits (e.g. to the right) operator and the addition is performed appropriate modulo, i.e. matrices <inline-formula id="j_infor499_ineq_098"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{b}}$]]></tex-math></alternatives></inline-formula> and <bold>Δ</bold> are summed modulo 2, <inline-formula id="j_infor499_ineq_099"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{a}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_100"><alternatives><mml:math>
<mml:mi mathvariant="bold">X</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{X}$]]></tex-math></alternatives></inline-formula> – modulo <inline-formula id="j_infor499_ineq_101"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t-1}}$]]></tex-math></alternatives></inline-formula>, and at the last step addition is performed modulo <inline-formula id="j_infor499_ineq_102"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t}}$]]></tex-math></alternatives></inline-formula>. In all cases, we omit moduli of addition as the appropriate values are usually clear from the context.</p>
</list-item>
<list-item id="j_infor499_li_013">
<label>5.</label>
<p>The matrix <bold>C</bold> is converted into a string of bits by concatenating its entries in the following way: 
<disp-formula id="j_infor499_eq_020">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ c={c_{11}}\parallel {c_{12}}\parallel \dots \parallel {c_{1n}}\parallel {c_{21}}\parallel {c_{22}}\parallel \dots \parallel {c_{2n}}\parallel {c_{nn}},\]]]></tex-math></alternatives>
</disp-formula> 
where the first bit of each entry <inline-formula id="j_infor499_ineq_103"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{ij}}$]]></tex-math></alternatives></inline-formula> is reserved for the power of generator <italic>b</italic> and the rest of the bits denote the power of generator <italic>a</italic>. The string of bits <italic>c</italic> is the ciphertext of the initial message.</p>
</list-item>
</list>
<p>Due to the discussed steps, the encryption function is given by: 
<disp-formula id="j_infor499_eq_021">
<label>(19)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \mathrm{Enc}(\vec{\mathbf{K}},\mathbf{M})={\mathrm{Shift}_{\kappa }}\big(\Phi \big({^{\mathbf{Y}}}{({\mathbf{C}_{1}})^{\mathbf{Y}}}\big)\big)\parallel \Psi \big({^{\mathbf{Y}}}\big({({\mathbf{C}_{1}})^{\mathbf{Y}}}\big)\big)+(\boldsymbol{\Delta }\parallel \mathbf{X}),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_104"><alternatives><mml:math>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{M}={\mathbf{M}_{b}}\parallel {\mathbf{M}_{a}}$]]></tex-math></alternatives></inline-formula> is the original message represented in matrix form and <inline-formula id="j_infor499_ineq_105"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}}$]]></tex-math></alternatives></inline-formula> is defined as in (<xref rid="j_infor499_eq_019">18</xref>).</p>
</sec>
<sec id="j_infor499_s_009">
<label>3.3</label>
<title>Decryption Function</title>
<p>Upon receiving the ciphertext <italic>c</italic> the following procedure is performed to decrypt the encrypted message using symmetric key <inline-formula id="j_infor499_ineq_106"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}=(\mathbf{X},\mathbf{Y},\boldsymbol{\Delta })$]]></tex-math></alternatives></inline-formula>.</p>
<list>
<list-item id="j_infor499_li_014">
<label>1.</label>
<p>The ciphertext <italic>c</italic> is transformed into matrix form <bold>C</bold> by splitting it into <inline-formula id="j_infor499_ineq_107"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${n^{2}}$]]></tex-math></alternatives></inline-formula> parts of length <italic>t</italic>.</p>
</list-item>
<list-item id="j_infor499_li_015">
<label>2.</label>
<p>The decryption algorithm is as follows: 
<disp-formula id="j_infor499_eq_022">
<label>(20)</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="bold">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="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">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">b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& {\mathbf{D}_{1}}={\mathrm{Shift}_{t-\kappa }}(\mathbf{C}-\boldsymbol{\Delta }\parallel \mathbf{X}),\\ {} & {\mathbf{D}_{2}}={b^{{\mathbf{D}_{1b}}}}{a^{{\mathbf{D}_{1a}}}},\\ {} & {\mathbf{D}_{3}}{=^{{\mathbf{Y}^{-1}}}}{\mathbf{D}_{2}^{{\mathbf{Y}^{-1}}}},\\ {} & {\mathbf{D}_{a}}=\Psi ({\mathbf{D}_{3}})-\mathbf{X},\\ {} & {\mathbf{D}_{b}}=\Phi ({\mathbf{D}_{3}})-\boldsymbol{\Delta },\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_108"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{1b}}$]]></tex-math></alternatives></inline-formula> is a binary matrix obtained by splitting the first bits of <inline-formula id="j_infor499_ineq_109"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{1}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_110"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{1a}}$]]></tex-math></alternatives></inline-formula> consists of the leftover bits. Subtraction is to be treated as an inverse of addition in the encryption algorithm (<xref rid="j_infor499_eq_019">18</xref>).</p>
</list-item>
<list-item id="j_infor499_li_016">
<label>3.</label>
<p>Matrices <inline-formula id="j_infor499_ineq_111"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{a}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_112"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{b}}$]]></tex-math></alternatives></inline-formula> are concatenated together entry-wise, thus producing matrix <inline-formula id="j_infor499_ineq_113"><alternatives><mml:math>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{D}={\mathbf{D}_{b}}\parallel {\mathbf{D}_{a}}$]]></tex-math></alternatives></inline-formula>.</p>
</list-item>
<list-item id="j_infor499_li_017">
<label>4.</label>
<p>The obtained matrix <bold>D</bold> undergoes the procedure of transformation to a string of bits by concatenating entries of the matrix in a specific way determined by one of the permutation vectors.</p>
</list-item>
<list-item id="j_infor499_li_018">
<label>5.</label>
<p>Junk symbols are removed, if any. The output of this step is the initial message.</p>
</list-item>
</list>
<p>Hence, we can define the decryption function as follows: 
<disp-formula id="j_infor499_eq_023">
<label>(21)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<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="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">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:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">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:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<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[\[ \mathrm{Dec}(\vec{\mathbf{K}},\mathbf{C})=\big(\Phi \big({^{{\mathbf{Y}^{-1}}}}{({\mathbf{D}_{2}})^{{\mathbf{Y}^{-1}}}}\big)-\boldsymbol{\Delta }\big)\parallel \big(\Psi \big({^{{\mathbf{Y}^{-1}}}}{({\mathbf{D}_{2}})^{{\mathbf{Y}^{-1}}}}\big)-\mathbf{X}\big),\]]]></tex-math></alternatives>
</disp-formula> 
where <bold>C</bold> is the received ciphertext represented in matrix form and <inline-formula id="j_infor499_ineq_114"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{2}}$]]></tex-math></alternatives></inline-formula> is defined as in (<xref rid="j_infor499_eq_022">20</xref>).</p>
</sec>
<sec id="j_infor499_s_010">
<label>3.4</label>
<title>Proof of Correctness</title>
<p>Looking at the presented encryption and decryption algorithms we see that <inline-formula id="j_infor499_ineq_115"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{D}_{2}}={\mathbf{C}_{2}}$]]></tex-math></alternatives></inline-formula> due to definitions of these matrices.</p>
<p>Let us consider an intermediate result <inline-formula id="j_infor499_ineq_116"><alternatives><mml:math>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{H}{=^{\mathbf{Y}}}{\mathbf{C}_{1}}$]]></tex-math></alternatives></inline-formula>. Note that entries of matrix <italic>T</italic> are given by 
<disp-formula id="j_infor499_eq_024">
<label>(22)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∏</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msubsup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {h_{ij}}={\prod \limits_{k=1}^{n}}{c_{1kj}^{{y_{ik}}}}.\]]]></tex-math></alternatives>
</disp-formula> 
An important restriction, which helps us to prove the validity of our protocol is the structure of the key matrix <inline-formula id="j_infor499_ineq_117"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula>. Obviously, due to <inline-formula id="j_infor499_ineq_118"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula> being a permutation matrix modulo 2, it is invertible over <inline-formula id="j_infor499_ineq_119"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>, since its determinant is always odd and hence relatively prime with <inline-formula id="j_infor499_ineq_120"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t-1}}$]]></tex-math></alternatives></inline-formula> for any value of <italic>t</italic>. Furthermore, since exactly one entry is odd in each row and each column of <inline-formula id="j_infor499_ineq_121"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula>, exactly one of the multipliers in the product (<xref rid="j_infor499_eq_024">22</xref>) can contain generator <italic>b</italic> and hence this generator can never be cancelled unless raised to an even power. For the same reason, matrix <inline-formula id="j_infor499_ineq_122"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{Y}^{-1}}$]]></tex-math></alternatives></inline-formula>, which has the same structure as <inline-formula id="j_infor499_ineq_123"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula>, successfully restores the initial matrix <inline-formula id="j_infor499_ineq_124"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}}$]]></tex-math></alternatives></inline-formula> when applied to <bold>H</bold>, i.e. we have <inline-formula id="j_infor499_ineq_125"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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="bold">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}}={\mathbf{H}^{{\mathbf{Y}^{-1}}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>We now consider the matrix <inline-formula id="j_infor499_ineq_126"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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="bold">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbf{C}_{2}}={\mathbf{H}^{\mathbf{Y}}}{=^{\mathbf{Y}}}{\mathbf{C}_{1}^{\mathbf{Y}}}$]]></tex-math></alternatives></inline-formula>. As claimed in the latter paragraph, the generator <italic>b</italic> can never be cancelled unless raised to an even power. Hence, as previously, the matrix <inline-formula id="j_infor499_ineq_127"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{Y}^{-1}}$]]></tex-math></alternatives></inline-formula> successfully restores matrix <bold>H</bold>, i.e. <inline-formula id="j_infor499_ineq_128"><alternatives><mml:math>
<mml:mi mathvariant="bold">H</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\mathbf{H}={\mathbf{C}_{2}^{{\mathbf{Y}^{-1}}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Combining these two observations we gain the following result: 
<disp-formula id="j_infor499_eq_025">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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[\[ {\mathbf{D}_{2}}{=^{{\mathbf{Y}^{-1}}}}{\mathbf{D}_{1}^{{\mathbf{Y}^{-1}}}}{=^{{\mathbf{Y}^{-1}}}}{\mathbf{C}_{2}^{{\mathbf{Y}^{-1}}}}{=^{{\mathbf{Y}^{-1}}}}{\big({^{\mathbf{Y}}}{\mathbf{C}_{1}^{\mathbf{Y}}}\big)^{{\mathbf{Y}^{-1}}}}={\mathbf{C}_{1}}.\]]]></tex-math></alternatives>
</disp-formula> 
Moreover, applying the mappings Φ and Ψ and subtracting appropriate matrices yields the matrix form <bold>M</bold> of the initial message, i.e. <inline-formula id="j_infor499_ineq_129"><alternatives><mml:math>
<mml:mi mathvariant="bold">D</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{D}=\mathbf{M}$]]></tex-math></alternatives></inline-formula>.</p>
<p>The matrix <bold>D</bold> is now transformed to obtain a string of bits <italic>d</italic> by concatenating its entries as follows: 
<disp-formula id="j_infor499_eq_026">
<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">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo 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:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>21</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>22</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ d={d_{11}}\parallel {d_{12}}\parallel \dots \parallel {d_{1n}}\parallel {d_{21}}\parallel {d_{22}}\parallel \dots \parallel {d_{2n}}\parallel {d_{nn}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Relying on the discussed observations, we conclude that <italic>d</italic> is the bit string representing the initial message with junk symbols at the end. These can now be dropped to leave us with the initial message.</p>
</sec>
</sec>
<sec id="j_infor499_s_011">
<label>4</label>
<title>Proof of Perfect Secrecy</title>
<p>In this section, we consider the security of the proposed symmetric encryption. Our main goal is to show that our scheme possesses the property of perfect secrecy (<xref rid="j_infor499_eq_002">2</xref>). To achieve this, we start by formulating and proving an important result involving the distribution of the MPF value entries.</p><statement id="j_infor499_stat_002"><label>Lemma 1.</label>
<p><italic>Let us assume that the entries of the matrix</italic> <bold>W</bold> <italic>are random variables distributed uniformly in</italic> <inline-formula id="j_infor499_ineq_130"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_infor499_ineq_131"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula> <italic>is a permutation matrix modulo</italic> 2 <italic>with entries uniformly distributed in the subsets of even and odd elements of</italic> <inline-formula id="j_infor499_ineq_132"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula><italic>, respectively. Under these conditions the entries of the MPF exponent value</italic> <inline-formula id="j_infor499_ineq_133"><alternatives><mml:math>
<mml:mi mathvariant="bold">E</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\mathbf{E}{=^{\mathbf{Y}}}{\mathbf{W}^{\mathbf{Y}}}$]]></tex-math></alternatives></inline-formula> <italic>are uniformly distributed in</italic> <inline-formula id="j_infor499_ineq_134"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p></statement><statement id="j_infor499_stat_003"><label>Proof.</label>
<p>Let us apply previously defined mappings <inline-formula id="j_infor499_ineq_135"><alternatives><mml:math>
<mml:mi mathvariant="normal">Φ</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:math><tex-math><![CDATA[$\Phi (\cdot )$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_136"><alternatives><mml:math>
<mml:mi mathvariant="normal">Ψ</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:math><tex-math><![CDATA[$\Psi (\cdot )$]]></tex-math></alternatives></inline-formula> to the matrix <bold>W</bold> of the form (<xref rid="j_infor499_eq_012">11</xref>). Recall that due to the statement of the lemma, entries of <inline-formula id="j_infor499_ineq_137"><alternatives><mml:math>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">A</mml:mi></mml:math><tex-math><![CDATA[$\Phi (\mathbf{W})=\mathbf{A}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_138"><alternatives><mml:math>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">A</mml:mi></mml:math><tex-math><![CDATA[$\Psi (\mathbf{W})=\mathbf{A}$]]></tex-math></alternatives></inline-formula> are uniformly distributed in <inline-formula id="j_infor499_ineq_139"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{2}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_140"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>, respectively.</p>
<p>Since <inline-formula id="j_infor499_ineq_141"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula> is a permutation matrix modulo 2, it mixes up the entries of <bold>A</bold> without changing them. For this reason, the entries of <inline-formula id="j_infor499_ineq_142"><alternatives><mml:math>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">E</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\Phi (\mathbf{E})$]]></tex-math></alternatives></inline-formula> are uniformly distributed in <inline-formula id="j_infor499_ineq_143"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{2}}$]]></tex-math></alternatives></inline-formula>. Hence powers of generator <italic>b</italic> in matrix <bold>E</bold> are uniformly distributed in <inline-formula id="j_infor499_ineq_144"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{2}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>We now consider the distribution of the powers of generator <italic>a</italic> in matrix <bold>E</bold>. Keeping in mind the properties of permutation matrices, without loss of generality we onwards consider a special case of identity permutation, i.e. we assume that odd entries of the matrix <bold>Y</bold> are located on its main diagonal. We make a remark regarding the general case of the permutation matrix later in this proof.</p>
<p>Let us focus on the intermediate result <inline-formula id="j_infor499_ineq_145"><alternatives><mml:math>
<mml:mi mathvariant="bold">V</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">W</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{V}{=^{\mathbf{Y}}}\mathbf{W}$]]></tex-math></alternatives></inline-formula> and apply mapping <inline-formula id="j_infor499_ineq_146"><alternatives><mml:math>
<mml:mi mathvariant="normal">Ψ</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:math><tex-math><![CDATA[$\Psi (\cdot )$]]></tex-math></alternatives></inline-formula> to this matrix. We can express every entry <inline-formula id="j_infor499_ineq_147"><alternatives><mml:math>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\psi ({v_{ij}})$]]></tex-math></alternatives></inline-formula> as follows: 
<disp-formula id="j_infor499_eq_027">
<label>(23)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \psi ({v_{ij}})={\sum \limits_{k=1}^{n}}{\lambda _{kj}}{y_{ik}}+{\gamma _{ij}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_148"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\gamma _{ij}}\in \{0,{2^{t-2}}\}$]]></tex-math></alternatives></inline-formula> can be one of two possible values depending on the number of times extra summand <inline-formula id="j_infor499_ineq_149"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t-2}}$]]></tex-math></alternatives></inline-formula> was added. We split the sum (<xref rid="j_infor499_eq_027">23</xref>) into two parts based on the parity of entries of the matrix <bold>Y</bold>. Then, for even values of <bold>Y</bold> we have: 
<disp-formula id="j_infor499_eq_028">
<label>(24)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo stretchy="false">≠</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {s_{ij}}={\sum \limits_{k=1,k\ne i}^{n}}{\lambda _{kj}}{y_{ik}}+{\gamma _{ij}}.\]]]></tex-math></alternatives>
</disp-formula> 
Due to the special structure of matrix <bold>Y</bold>, we have a single summand of the sum (<xref rid="j_infor499_eq_027">23</xref>) containing an odd entry <inline-formula id="j_infor499_ineq_150"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${y_{ii}}$]]></tex-math></alternatives></inline-formula>. Hence, we denote 
<disp-formula id="j_infor499_eq_029">
<label>(25)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {u_{ij}}={\lambda _{ij}}{y_{ii}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Note that if <bold>Y</bold> is a permutation matrix other than identity modulo 2, then the column index changes in the extracted summand. The omitted index in sum (<xref rid="j_infor499_eq_028">24</xref>) changes as well. These are the only two differences in the general case.</p>
<p>Due to construction, all possible values of the sum (<xref rid="j_infor499_eq_028">24</xref>) lie in the subset of even elements of <inline-formula id="j_infor499_ineq_151"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula> and hence we claim that: 
<disp-formula id="j_infor499_eq_030">
<label>(26)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\sum \limits_{r=0}^{{2^{t-2}}-1}}\Pr ({s_{ij}}=2r)=1,\]]]></tex-math></alternatives>
</disp-formula> 
which is true, since these probabilities form a total probability. The exact values of these probabilities are irrelevant.</p>
<p>Considering the only odd summand, we can calculate the following probability: 
<disp-formula id="j_infor499_eq_031">
<label>(27)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</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">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr ({u_{ij}}={u_{0}})=\Pr ({\lambda _{ij}}{y_{ii}}={u_{0}})=\Pr \big({\lambda _{ij}}={u_{0}}{y_{ii}^{-1}}\big)=\frac{1}{{2^{t-1}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_152"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{0}}\in {\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula> is fixed. This comes from the fact that <inline-formula id="j_infor499_ineq_153"><alternatives><mml:math>
<mml:mo movablelimits="false">gcd</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\gcd ({y_{ii}},{2^{t-1}})=1$]]></tex-math></alternatives></inline-formula> and hence <inline-formula id="j_infor499_ineq_154"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${y_{ii}^{-1}}$]]></tex-math></alternatives></inline-formula> exists. Moreover, <inline-formula id="j_infor499_ineq_155"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\lambda _{ij}}$]]></tex-math></alternatives></inline-formula> is uniformly distributed due to the statement of the lemma.</p>
<p>Meshing facts (<xref rid="j_infor499_eq_030">26</xref>) and (<xref rid="j_infor499_eq_031">27</xref>) together we obtain the following result: 
<disp-formula id="j_infor499_eq_032">
<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:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">s</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">r</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \Pr (\psi ({v_{ij}})={z_{0}})=\Pr ({s_{ij}}+{u_{ij}}={z_{0}})\\ {} & \hspace{1em}=\Pr ({u_{ij}}={z_{0}}-2r)\Pr ({s_{ij}}=2r)=\frac{1}{{2^{t-1}}}{\sum \limits_{r=0}^{{2^{t-2}}-1}}\Pr ({s_{ij}}=2r)=\frac{1}{{2^{t-1}}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This result means that powers of generator <italic>a</italic> in an intermediate matrix <bold>V</bold> are distributed uniformly in <inline-formula id="j_infor499_ineq_156"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>. Note also that since the term <inline-formula id="j_infor499_ineq_157"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">γ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\gamma _{ij}}$]]></tex-math></alternatives></inline-formula> does not play a major part in this calculation, distributions of power of both generators are independent of each other, i.e. powers of generator <italic>b</italic> do not in any way affect the distribution of powers of generator <italic>a</italic>.</p>
<p>Similar calculations of probabilities can be performed for the powers of generator <italic>a</italic> in the matrix <inline-formula id="j_infor499_ineq_158"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">V</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">E</mml:mi></mml:math><tex-math><![CDATA[${\mathbf{V}^{\mathbf{Y}}}{=^{\mathbf{Y}}}{\mathbf{W}^{\mathbf{Y}}}=\mathbf{E}$]]></tex-math></alternatives></inline-formula>. Relying on the uniform distribution of entries of the matrix <bold>V</bold> and properties of the matrix <bold>Y</bold> we conclude that powers of generator <italic>a</italic> in matrix <bold>E</bold> are distributed uniformly.</p>
<p>Lastly, since the powers of both generators in matrix <bold>E</bold> are distributed uniformly and are independent of each other, the lemma is valid.  □</p></statement><statement id="j_infor499_stat_004"><label>Corollary 1.</label>
<p><italic>The probability</italic> <inline-formula id="j_infor499_ineq_159"><alternatives><mml:math>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\Pr (\mathbf{E}={\mathbf{E}_{0}})$]]></tex-math></alternatives></inline-formula><italic>, where</italic> <inline-formula id="j_infor499_ineq_160"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{E}_{0}}$]]></tex-math></alternatives></inline-formula> <italic>is a fixed matrix defined over</italic> <inline-formula id="j_infor499_ineq_161"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula><italic>, equals</italic>: 
<disp-formula id="j_infor499_eq_033">
<label>(29)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">E</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr (\mathbf{E}={\mathbf{E}_{0}})=\frac{1}{{2^{{n^{2}}t}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p></statement>
<p>The proved lemma shows that we have obtained evidence of perfect secrecy property for our protocol. We establish this fact by proving the following theorem:</p><statement id="j_infor499_stat_005"><label>Theorem 1.</label>
<p><italic>Let</italic> <inline-formula id="j_infor499_ineq_162"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}=(\mathbf{X},\mathbf{Y},\boldsymbol{\Delta })$]]></tex-math></alternatives></inline-formula> <italic>be a random key uniformly chosen from the set of keys</italic> <inline-formula id="j_infor499_ineq_163"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">K</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{K}$]]></tex-math></alternatives></inline-formula> <italic>and let</italic> <bold>M</bold> <italic>be a random matrix chosen from the set of messages</italic> <inline-formula id="j_infor499_ineq_164"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">M</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{M}$]]></tex-math></alternatives></inline-formula> <italic>in an arbitrary way. Assume also that probability distributions of</italic> <inline-formula id="j_infor499_ineq_165"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <bold>M</bold> <italic>are independent and fully determine the distribution of the matrix</italic> <bold>C</bold> <italic>in the set of cipher value matrices</italic> <inline-formula id="j_infor499_ineq_166"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">C</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{C}$]]></tex-math></alternatives></inline-formula> <italic>together with the encryption algorithm</italic> <inline-formula id="j_infor499_ineq_167"><alternatives><mml:math>
<mml:mi mathvariant="normal">Enc</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:math><tex-math><![CDATA[$\mathrm{Enc}(\cdot )$]]></tex-math></alternatives></inline-formula><italic>. Under these assumptions, the proposed Shannon cipher in</italic> (<xref rid="j_infor499_eq_019">18</xref>) <italic>based on MPF is perfectly secure.</italic></p></statement><statement id="j_infor499_stat_006"><label>Proof.</label>
<p>Let us consider encryption algorithm (<xref rid="j_infor499_eq_019">18</xref>). Firstly, we turn our attention to matrix <inline-formula id="j_infor499_ineq_168"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}}$]]></tex-math></alternatives></inline-formula> and focus on the powers of generator <italic>a</italic>. Denoting <inline-formula id="j_infor499_ineq_169"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">U</mml:mi></mml:math><tex-math><![CDATA[${\mathbf{M}_{a}}+\mathbf{X}=\mathbf{U}$]]></tex-math></alternatives></inline-formula> we rewrite each entry of matrix <italic>U</italic> in the following form: 
<disp-formula id="j_infor499_eq_034">
<label>(30)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>1</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 fence="true" stretchy="false">}</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {u_{ij}}={x_{ij}}+{m_{aij}},\hspace{1em}i,j\in \{1,\dots ,m\}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Due to the statement of the theorem, entries <inline-formula id="j_infor499_ineq_170"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{ij}}$]]></tex-math></alternatives></inline-formula> are chosen at random and are uniformly distributed in <inline-formula id="j_infor499_ineq_171"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>, whereas entries <inline-formula id="j_infor499_ineq_172"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{aij}}$]]></tex-math></alternatives></inline-formula> are random arbitrary distributed values in <inline-formula id="j_infor499_ineq_173"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>. For any fixed matrix <inline-formula id="j_infor499_ineq_174"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{U}_{0}}$]]></tex-math></alternatives></inline-formula> with entries <inline-formula id="j_infor499_ineq_175"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{0ij}}\in {\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>, we have 
<disp-formula id="j_infor499_eq_035">
<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:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</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:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}\Pr ({u_{ij}}={u_{0ij}})& =\Pr ({x_{ij}}={u_{0ij}}-{m_{aij}})=\\ {} & =\frac{1}{{2^{t-1}}}\sum \limits_{{m_{0ij}}\in {\mathbb{Z}_{{2^{t-1}}}}}\Pr ({m_{aij}}={m_{0ij}})=\frac{1}{{2^{t-1}}},\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_176"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{0ij}}$]]></tex-math></alternatives></inline-formula> are fixed elements of <inline-formula id="j_infor499_ineq_177"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>We now calculate the conditional probabilities of the entries of matrix <bold>U</bold>: 
<disp-formula id="j_infor499_eq_036">
<label>(32)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∣</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr ({u_{ij}}={u_{0ij}}\mid {m_{aij}}={m_{0ij}})=\Pr ({x_{ij}}={u_{0ij}}-{m_{0ij}})=\frac{1}{{2^{t-1}}},\]]]></tex-math></alternatives>
</disp-formula> 
since the entries <inline-formula id="j_infor499_ineq_178"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{ij}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_179"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${m_{aij}}$]]></tex-math></alternatives></inline-formula> are independent, and the difference <inline-formula id="j_infor499_ineq_180"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{0ij}}-{m_{0ij}}\in {\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Another important property of matrix <bold>U</bold> is the independence of its entries. Since all <inline-formula id="j_infor499_ineq_181"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${x_{ij}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_182"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</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[$i,j=1,\dots ,m$]]></tex-math></alternatives></inline-formula>, are independent, for all <inline-formula id="j_infor499_ineq_183"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${u_{0ij}}\in {\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula> we have: 
<disp-formula id="j_infor499_eq_037">
<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:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">⋂</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">⋂</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>=</mml:mo>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">⋂</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">⋂</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">⋂</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.45em" minsize="2.45em">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \Pr \Bigg(\hspace{0.1667em}{\bigcap \limits_{i,j=1}^{n}}\{{u_{ij}}={u_{0ij}}\}\Bigg)=\Pr \Bigg(\hspace{0.1667em}{\bigcap \limits_{i,j=1}^{n}}\{{x_{ij}}+{m_{aij}}={u_{0ij}}\}\Bigg)\\ {} & \hspace{1em}=\sum \limits_{m\in {\mathbb{Z}_{{2^{t-1}}}}}\Pr \Bigg(\hspace{0.1667em}{\bigcap \limits_{i,j=1}^{n}}\{{x_{ij}}={u_{0ij}}-{m_{0ij}}\},{\bigcap \limits_{i,j=1}^{n}}\{{m_{aij}}={m_{0ij}}\}\Bigg)\\ {} & \hspace{1em}=\frac{1}{{2^{{n^{2}}(t-1)}}}\sum \limits_{{m_{0ij}}\in {\mathbb{Z}_{{2^{t-1}}}}}\Pr \Bigg(\hspace{0.1667em}{\bigcap \limits_{i,j=1}^{n}}\{{m_{aij}}={m_{0ij}}\}\Bigg)=\frac{1}{{2^{{n^{2}}(t-1)}}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
In the last step we used the fact that the sum <inline-formula id="j_infor499_ineq_184"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">⋂</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\textstyle\sum _{{m_{0ij}}\in {\mathbb{Z}_{{2^{t-1}}}}}}\Pr ({\textstyle\bigcap _{i,j=1}^{n}}\{{m_{aij}}={m_{0ij}}\})$]]></tex-math></alternatives></inline-formula> is the total probability and hence is equal to 1.</p>
<p>Relying on the obtained equalities (<xref rid="j_infor499_eq_035">31</xref>), (<xref rid="j_infor499_eq_036">32</xref>) and (<xref rid="j_infor499_eq_037">33</xref>) we claim that: 
<disp-formula id="j_infor499_eq_038">
<label>(34)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">U</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">U</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∣</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr (\mathbf{U}={\mathbf{U}_{0}})=\Pr (\mathbf{U}={\mathbf{U}_{0}}\mid {\mathbf{M}_{a}}={\mathbf{M}_{a0}})=\frac{1}{{2^{{n^{2}}(t-1)}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_185"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{a0}}$]]></tex-math></alternatives></inline-formula> is a fixed matrix defined over <inline-formula id="j_infor499_ineq_186"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t-1}}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Similarly, matrix <bold>Δ</bold> is chosen uniformly from <inline-formula id="j_infor499_ineq_187"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{2}}$]]></tex-math></alternatives></inline-formula>. For this reason, analogous observation holds for the matrix sum <inline-formula id="j_infor499_ineq_188"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi></mml:math><tex-math><![CDATA[${\mathbf{M}_{b}}+\boldsymbol{\Delta }$]]></tex-math></alternatives></inline-formula>, with probability <inline-formula id="j_infor499_ineq_189"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{-{n^{2}}}}$]]></tex-math></alternatives></inline-formula>. However, both sums in the expression of <inline-formula id="j_infor499_ineq_190"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}}$]]></tex-math></alternatives></inline-formula> are independent of each other and hence we have: 
<disp-formula id="j_infor499_eq_039">
<label>(35)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∣</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>·</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr ({\mathbf{C}_{1}}={\mathbf{C}_{10}})=\Pr ({\mathbf{C}_{1}}={\mathbf{C}_{10}}\mid \mathbf{M}={\mathbf{M}_{0}})=\frac{1}{{2^{{n^{2}}}}}\cdot \frac{1}{{2^{{n^{2}}(t-1)}}}=\frac{1}{{2^{t{n^{2}}}}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_191"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>10</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{10}}$]]></tex-math></alternatives></inline-formula> is a fixed matrix defined over <inline-formula id="j_infor499_ineq_192"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_193"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{0}}$]]></tex-math></alternatives></inline-formula> is a fixed matrix defined over <inline-formula id="j_infor499_ineq_194"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula>. Hence we have shown that the entries of matrix <inline-formula id="j_infor499_ineq_195"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}}$]]></tex-math></alternatives></inline-formula> are uniformly distributed in <inline-formula id="j_infor499_ineq_196"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>Let us denote the set of all possible values of the key matrix <inline-formula id="j_infor499_ineq_197"><alternatives><mml:math>
<mml:mi mathvariant="bold">Y</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{Y}$]]></tex-math></alternatives></inline-formula> by <inline-formula id="j_infor499_ineq_198"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{K}_{\mathbf{Y}}}$]]></tex-math></alternatives></inline-formula>. Note that each matrix from this set reduced modulo 2 is a permutation matrix and hence the cardinality of this set is <inline-formula id="j_infor499_ineq_199"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$|{\mathbb{K}_{\mathbf{Y}}}|=n!\cdot {2^{{n^{2}}(t-2)}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>We now consider the second step of the encryption algorithm (<xref rid="j_infor499_eq_019">18</xref>), i.e. matrix <inline-formula id="j_infor499_ineq_200"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{2}}$]]></tex-math></alternatives></inline-formula>. Due to Lemma <xref rid="j_infor499_stat_002">1</xref>, entries of MPF value are uniformly distributed in <inline-formula id="j_infor499_ineq_201"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula>. All that is left is to explore the conditional probabilities of its entries which are expressed as follows: 
<disp-formula id="j_infor499_eq_040">
<label>(36)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∣</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr ({\mathbf{C}_{2}}={\mathbf{C}_{20}}\mid \mathbf{M}={\mathbf{M}_{0}})=\frac{\Pr ({\mathbf{C}_{2}}={\mathbf{C}_{20}},\mathbf{M}={\mathbf{M}_{0}})}{\Pr (M={\mathbf{M}_{0}})}.\]]]></tex-math></alternatives>
</disp-formula> 
Explicit calculations of probability <inline-formula id="j_infor499_ineq_202"><alternatives><mml:math>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\Pr ({\mathbf{C}_{2}}={\mathbf{C}_{20}},\mathbf{M}={\mathbf{M}_{0}})$]]></tex-math></alternatives></inline-formula> are presented below in matrix form for simplicity: 
<disp-formula id="j_infor499_eq_041">
<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:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow/>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</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="bold">Y</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mo>=</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">)</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mspace width="1em"/>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>·</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">(</mml:mo>
<mml:mspace width="0.1667em"/>
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:munder>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="2.03em" minsize="2.03em">)</mml:mo>
<mml:mo>·</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>·</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}& \Pr ({\mathbf{C}_{2}}={\mathbf{C}_{20}},\mathbf{M}={\mathbf{M}_{0}})=\Pr \big({^{\mathbf{Y}}}{({\mathbf{C}_{1}})^{\mathbf{Y}}}={\mathbf{C}_{20}},\mathbf{M}={\mathbf{M}_{0}}\big)\\ {} & \hspace{1em}=\bigg(\hspace{0.1667em}\sum \limits_{{\mathbf{Y}_{0}}\in {\mathbb{K}_{\mathbf{Y}}}}\Pr \big({\mathbf{C}_{1}}{=^{{\mathbf{Y}_{0}^{-1}}}}{({\mathbf{C}_{20}})^{{\mathbf{Y}_{0}^{-1}}}}\big)\cdot \Pr (\mathbf{Y}={\mathbf{Y}_{0}})\bigg)\Pr (\mathbf{M}={\mathbf{M}_{0}})\\ {} & \hspace{1em}=\frac{1}{{2^{t{n^{2}}}}}\cdot \bigg(\hspace{0.1667em}\sum \limits_{{\mathbf{Y}_{0}}\in {\mathbb{K}_{\mathbf{Y}}}}\Pr (\mathbf{Y}={\mathbf{Y}_{0}})\bigg)\cdot \Pr (\mathbf{M}={\mathbf{M}_{0}})=\frac{1}{{2^{t{n^{2}}}}}\cdot \Pr (\mathbf{M}={\mathbf{M}_{0}}),\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_203"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{Y}_{0}}\in {\mathbb{K}_{\mathbf{Y}}}$]]></tex-math></alternatives></inline-formula> is a fixed matrix. Here we used the fact that the entries of <inline-formula id="j_infor499_ineq_204"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}}$]]></tex-math></alternatives></inline-formula> are identically uniformly distributed and are independent of the matrix <bold>M</bold>. Also, keeping with our notation, the sum <inline-formula id="j_infor499_ineq_205"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mo largeop="false" movablelimits="false">∑</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">K</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">Y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\textstyle\sum _{{\mathbf{Y}_{0}}\in {\mathbb{K}_{\mathbf{Y}}}}}\Pr (\mathbf{Y}={\mathbf{Y}_{0}})$]]></tex-math></alternatives></inline-formula> represents a total probability and hence is equal to 1. Note that we use the notation <inline-formula id="j_infor499_ineq_206"><alternatives><mml:math>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\Pr (\mathbf{M}={\mathbf{M}_{0}})$]]></tex-math></alternatives></inline-formula> to indicate the probability of a certain fixed message, which is then split into two parts <inline-formula id="j_infor499_ineq_207"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">a</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{a}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_208"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{b}}$]]></tex-math></alternatives></inline-formula>.</p>
<p>We limit ourselves to the matrix form of these calculations since the expression of probability for a single entry of <inline-formula id="j_infor499_ineq_209"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{2}}$]]></tex-math></alternatives></inline-formula> is much more complicated due to restriction on matrix <bold>Y</bold>.</p>
<p>Since expression (<xref rid="j_infor499_eq_041">37</xref>) is a numerator of conditional probability (<xref rid="j_infor499_eq_040">36</xref>), we obtain the following result: 
<disp-formula id="j_infor499_eq_042">
<label>(38)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>20</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">∣</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>·</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \Pr ({\mathbf{C}_{2}}={\mathbf{C}_{20}}\mid \mathbf{M}={\mathbf{M}_{0}})=\frac{\frac{1}{{2^{t{n^{2}}}}}\cdot \Pr (\mathbf{M}={\mathbf{M}_{0}})}{\Pr (\mathbf{M}={\mathbf{M}_{0}})}=\frac{1}{{2^{t{n^{2}}}}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>Comparing this result to the expression (<xref rid="j_infor499_eq_033">29</xref>), we can see that the distributions match and hence draw a conclusion that entries of the matrix <inline-formula id="j_infor499_ineq_210"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{2}}$]]></tex-math></alternatives></inline-formula> are independent of plaintext matrix <bold>M</bold>.</p>
<p>The proof for the last step of the encryption algorithm is analogous to the proof for the first step since the matrix <inline-formula id="j_infor499_ineq_211"><alternatives><mml:math>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi></mml:math><tex-math><![CDATA[$\boldsymbol{\Delta }\parallel \mathbf{X}$]]></tex-math></alternatives></inline-formula> consists of uniformly distributed in <inline-formula id="j_infor499_ineq_212"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbb{Z}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> entries whereas the shifting function does not have an impact on the distribution of the entries of the other matrix summand.  □</p></statement>
<p>Due to the proven result, we can see that no information about the plaintext is leaked by the encryption algorithm. This is the essential property any good symmetric cipher should possess.</p>
</sec>
<sec id="j_infor499_s_012">
<label>5</label>
<title>Comparison With One-Time Pad</title>
<p>A classic example of a perfectly secure cipher is the one-time pad scheme proposed by G. Vernam in the early XX century. It uses a key <italic>k</italic> the size of the message <inline-formula id="j_infor499_ineq_213"><alternatives><mml:math>
<mml:mi mathvariant="italic">m</mml:mi>
<mml:mi mathvariant="italic">u</mml:mi></mml:math><tex-math><![CDATA[$mu$]]></tex-math></alternatives></inline-formula> and a simple XOR operation ⊕ to obtain a ciphertext <inline-formula id="j_infor499_ineq_214"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo>⊕</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$c=\mu \oplus k$]]></tex-math></alternatives></inline-formula>. Decryption works similarly, i.e. <inline-formula id="j_infor499_ineq_215"><alternatives><mml:math>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>⊕</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[$\mu =c\oplus k$]]></tex-math></alternatives></inline-formula>.</p>
<p>However, despite being an ideal cipher, its practical implementation is highly limited. Firstly, the size of the secret key is a big problem, e.g. encrypting a 1GB file requires a key of the same size. Obviously, no user wants to waste his memory space storing such a key. So far in this sense, our cipher seems even worse since the size of the key is about twice the size of the message. Moreover, regardless of any actions we make, the size of the secret key has to be at least the size of the message for our cipher to remain perfectly secure. This fact is called the Shannon theorem.</p>
<p>The logical question now is if we can gain any benefits by using such a key to encrypt a message. To answer this question we consider another flaw in the one-time pad scheme. It is widely known that reusing the same key <italic>k</italic> to encrypt messages <inline-formula id="j_infor499_ineq_216"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_217"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{2}}$]]></tex-math></alternatives></inline-formula> results in a catastrophe, i.e. any adversary possessing <inline-formula id="j_infor499_ineq_218"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</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">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[${c_{1}}={\mu _{1}}\oplus k$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_219"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</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:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi></mml:math><tex-math><![CDATA[${c_{2}}={\mu _{2}}\oplus k$]]></tex-math></alternatives></inline-formula> is able to restore <inline-formula id="j_infor499_ineq_220"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{2}}$]]></tex-math></alternatives></inline-formula> given that the plaintext <inline-formula id="j_infor499_ineq_221"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{1}}$]]></tex-math></alternatives></inline-formula> is known to him since he can perform the following calculation: 
<disp-formula id="j_infor499_eq_043">
<label>(39)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</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: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:mn>1</mml:mn>
</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:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:mi mathvariant="italic">k</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:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>⊕</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>⊕</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml: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:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {c_{2}}\oplus {c_{1}}\oplus {\mu _{1}}=({\mu _{2}}\oplus k)\oplus ({\mu _{1}}\oplus k)\oplus {\mu _{1}}={\mu _{2}}.\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>This fact can be viewed as gaining an advantage of 1 in winning the following Attack Game aimed at the recovery of data encrypted by a fixed key <italic>k</italic>:</p><statement id="j_infor499_stat_007"><label>Attack Game1.</label>
<p><italic>For a given symmetric cipher</italic> <inline-formula id="j_infor499_ineq_222"><alternatives><mml:math>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\varepsilon =(\mathrm{Enc}(k,\mu ),\mathrm{Dec}(k,c))$]]></tex-math></alternatives></inline-formula> <italic>defined over</italic> <inline-formula id="j_infor499_ineq_223"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">K</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbb{K},\mathbb{M},\mathbb{C})$]]></tex-math></alternatives></inline-formula> <italic>define the following attack game</italic>: 
<list>
<list-item id="j_infor499_li_019">
<label>1.</label>
<p><italic>The challenger picks at random a secret key</italic> <inline-formula id="j_infor499_ineq_224"><alternatives><mml:math>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="double-struck">K</mml:mi></mml:math><tex-math><![CDATA[$k\in \mathbb{K}$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor499_li_020">
<label>2.</label>
<p><italic>The adversary sends a sequence of queries</italic> <inline-formula id="j_infor499_ineq_225"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</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">μ</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">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{1}},{\mu _{2}},\dots ,{\mu _{Q}}$]]></tex-math></alternatives></inline-formula> <italic>of equal size to the challenger</italic>;</p>
</list-item>
<list-item id="j_infor499_li_021">
<label>3.</label>
<p><italic>The challenger calculates the ciphertexts</italic> <inline-formula id="j_infor499_ineq_226"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</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">c</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">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{1}},{c_{2}},\dots ,{c_{Q}}$]]></tex-math></alternatives></inline-formula><italic>, where</italic> <inline-formula id="j_infor499_ineq_227"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${c_{i}}=\mathrm{Enc}(k,{\mu _{i}})$]]></tex-math></alternatives></inline-formula><italic>, and sends them to the adversary</italic>;</p>
</list-item>
<list-item id="j_infor499_li_022">
<label>4.</label>
<p><italic>The adversary outputs a pair</italic> <inline-formula id="j_infor499_ineq_228"><alternatives><mml:math>
<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">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mu ,c)$]]></tex-math></alternatives></inline-formula><italic>, where</italic> <inline-formula id="j_infor499_ineq_229"><alternatives><mml:math>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo>∖</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</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">μ</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">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\mu \in \mathbb{M}\setminus \{{\mu _{1}},{\mu _{2}},\dots ,{\mu _{Q}}\}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_infor499_ineq_230"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mo>∖</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</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">c</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">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$c\in \mathbb{C}\setminus \{{c_{1}},{c_{2}},\dots ,{c_{Q}}\}$]]></tex-math></alternatives></inline-formula><italic>. He wins if</italic> <inline-formula id="j_infor499_ineq_231"><alternatives><mml:math>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$c=\mathrm{Enc}(k,\mu )$]]></tex-math></alternatives></inline-formula><italic>.</italic></p>
</list-item>
</list>
</p></statement>
<p>We let the adversary be adaptive, i.e. he can choose his queries based on the ciphertexts obtained from the challenger.</p>
<p>Obviously, for the case of a one-time pad scheme, an adversary requires a single query, i.e. <inline-formula id="j_infor499_ineq_232"><alternatives><mml:math>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$Q=1$]]></tex-math></alternatives></inline-formula>. In fact, the secret key <italic>k</italic> is trivially recoverable in this case.</p>
<p>Let us denote the event of winning the Attack Game <xref rid="j_infor499_stat_007">1</xref> by <italic>W</italic>.</p><statement id="j_infor499_stat_008"><label>Definition 1.</label>
<p>The advantage of the adversary <inline-formula id="j_infor499_ineq_233"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> in winning the Attack Game <xref rid="j_infor499_stat_007">1</xref> is given by 
<disp-formula id="j_infor499_eq_044">
<label>(40)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">KRadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">W</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">K</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{KRadv}[\mathcal{A},\varepsilon ]=\bigg|\Pr (W)-\frac{1}{|\mathbb{K}|}\bigg|,\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_234"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">K</mml:mi>
<mml:mo stretchy="false">|</mml:mo></mml:math><tex-math><![CDATA[$|\mathbb{K}|$]]></tex-math></alternatives></inline-formula> denotes the cardinality of the keyspace.</p></statement>
<p>Note that due to expression (<xref rid="j_infor499_eq_043">39</xref>) the adversary may not necessarily obtain the secret key <italic>k</italic> to win the game as long as he can output a working pair <inline-formula id="j_infor499_ineq_235"><alternatives><mml:math>
<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">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mu ,c)$]]></tex-math></alternatives></inline-formula>. Hence, he has two alternatives to winning: determining the secret key or using the obtained replies to gain a way to output a working pair. The advantage <inline-formula id="j_infor499_ineq_236"><alternatives><mml:math>
<mml:mtext mathvariant="italic">KRadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\textit{KRadv}[\mathcal{A},\varepsilon ]$]]></tex-math></alternatives></inline-formula> shows how much better than randomly guessing the key can the adversary <inline-formula id="j_infor499_ineq_237"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> do.</p><statement id="j_infor499_stat_009"><label>Definition 2.</label>
<p>The symmetric cipher is secure under key reuse if for any poly-bounded number of queries <italic>Q</italic> the advantage <inline-formula id="j_infor499_ineq_238"><alternatives><mml:math>
<mml:mtext mathvariant="italic">KRadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\textit{KRadv}[\mathcal{A},\varepsilon ]$]]></tex-math></alternatives></inline-formula> is negligible.</p></statement>
<p>As we have seen one-time pad is not secure under key reuse. We prove the following proposition:</p><statement id="j_infor499_stat_010"><label>Theorem 2.</label>
<p><italic>The Shannon block cipher defined by the encryption algorithm</italic> (<xref rid="j_infor499_eq_019">18</xref>) <italic>and decryption algorithm</italic> (<xref rid="j_infor499_eq_022">20</xref>) <italic>is secure under key reuse.</italic></p></statement><statement id="j_infor499_stat_011"><label>Proof.</label>
<p>Let us consider both alternatives for winning the Attack Game <xref rid="j_infor499_stat_007">1</xref>.</p>
<p>Firstly, we consider determining the key strategy. Assume that the adversary <inline-formula id="j_infor499_ineq_239"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> received ciphertext matrices <inline-formula id="j_infor499_ineq_240"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(1)}},{\mathbf{C}^{(2)}},\dots ,{\mathbf{C}^{(Q)}}$]]></tex-math></alternatives></inline-formula> matching the known message matrices <inline-formula id="j_infor499_ineq_241"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</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="bold">M</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="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{1}},{\mathbf{M}_{2}},\dots ,{\mathbf{M}_{Q}}$]]></tex-math></alternatives></inline-formula>. Here we use the upper indexes for <bold>C</bold>’s to distinguish challenger responses from intermediate results of the encryption algorithm (<xref rid="j_infor499_eq_019">18</xref>). Hence, an adversary can analyse the following system of equations: 
<disp-formula id="j_infor499_eq_045">
<label>(41)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable equalrows="false" equalcolumns="false" columnalign="left">
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mspace width="108.12054pt"/>
<mml:mo>…</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="normal">Φ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="normal">Ψ</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<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:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \left\{\begin{array}{l}{\mathbf{C}^{(1)}}={\mathrm{Shift}_{\kappa }}\big({2^{t-1}}\Phi \big({\mathbf{C}_{2}^{(1)}}\big)+\Psi \big({\mathbf{C}_{2}^{(1)}}\big)\big)+\big({2^{t-1}}\boldsymbol{\Delta }+\mathbf{X}\big),\\ {} {\mathbf{C}^{(2)}}={\mathrm{Shift}_{\kappa }}\big({2^{t-1}}\Phi \big({\mathbf{C}_{2}^{(2)}}\big)+\Psi \big({\mathbf{C}_{2}^{(2)}}\big)\big)+\big({2^{t-1}}\boldsymbol{\Delta }+\mathbf{X}\big),\\ {} \hspace{108.12054pt}\dots \\ {} {\mathbf{C}^{(Q)}}={\mathrm{Shift}_{\kappa }}\big({2^{t-1}}\Phi \big({\mathbf{C}_{2}^{(Q)}}\big)+\Psi \big({\mathbf{C}_{2}^{(Q)}}\big)\big)+\big({2^{t-1}}\boldsymbol{\Delta }+\mathbf{X}\big),\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula> 
where matrices <bold>X</bold>, <bold>Y</bold>, <bold>Δ</bold> are unknown, <inline-formula id="j_infor499_ineq_242"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbf{C}_{2}^{(1)}},{\mathbf{C}_{2}^{(2)}},\dots ,{\mathbf{C}_{2}^{(Q)}}$]]></tex-math></alternatives></inline-formula> are intermediate matrices at the second step of the encryption function (<xref rid="j_infor499_eq_021">19</xref>), and <inline-formula id="j_infor499_ineq_243"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(1)}},{\mathbf{C}^{(2)}},\dots ,{\mathbf{C}^{(Q)}}$]]></tex-math></alternatives></inline-formula> are its output values, i.e. responses the adversary <inline-formula id="j_infor499_ineq_244"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> sees. However, simplifying this system is not an easy task, since at the very least we have to take the non-commuting nature of <inline-formula id="j_infor499_ineq_245"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> into account. In other words, reducing all the equations modulo <inline-formula id="j_infor499_ineq_246"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t-1}}$]]></tex-math></alternatives></inline-formula> which would remove the non-commuting aspect of <inline-formula id="j_infor499_ineq_247"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> is not helpful since in expression (<xref rid="j_infor499_eq_021">19</xref>) the matrix <bold>Δ</bold> immediately vanishes along with leading bits of the first term. Furthermore, the shifting operator is not action preserving thus any calculations analogous to (<xref rid="j_infor499_eq_043">39</xref>) are inefficient. For example, computing <inline-formula id="j_infor499_ineq_248"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(1)}}-{\mathbf{C}^{(2)}}$]]></tex-math></alternatives></inline-formula> we get: 
<disp-formula id="j_infor499_eq_046">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Φ</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="normal">Ψ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Φ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Ψ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathbf{C}^{(1)}}-{\mathbf{C}^{(2)}}={\mathrm{Shift}_{\kappa }}\big({2^{t-1}}{\Phi _{1}}+{\Psi _{1}}\big)-{\mathrm{Shift}_{\kappa }}\big({2^{t-1}}{\Phi _{2}}+{\Psi _{2}}\big),\]]]></tex-math></alternatives>
</disp-formula> 
where notations <inline-formula id="j_infor499_ineq_249"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Φ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Phi _{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_250"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Φ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Phi _{2}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_251"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Ψ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Psi _{1}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_252"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Ψ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\Psi _{2}}$]]></tex-math></alternatives></inline-formula> are used to shorten the appropriate expressions in (<xref rid="j_infor499_eq_045">41</xref>). We have 
<disp-formula id="j_infor499_eq_047">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Shift</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">κ</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">)</mml:mo>
<mml:mo stretchy="false">≠</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Φ</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="normal">Ψ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Φ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Ψ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathrm{Shift}_{t-\kappa }}\big({\mathbf{C}^{(1)}}-{\mathbf{C}^{(2)}}\big)\ne {2^{t-1}}{\Phi _{1}}+{\Psi _{1}}-{2^{t-1}}{\Phi _{2}}-{\Psi _{2}}\]]]></tex-math></alternatives>
</disp-formula> 
and thus we cannot make a new equation based on the obtained responses.</p>
<p>Hence, even knowing the parameter <italic>k</italic> the adversary <inline-formula id="j_infor499_ineq_253"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> cannot use this information to formulate an advantageous system of equations to extract the secret key. As such we conclude that the key determination strategy is not applicable.</p>
<p>Hence we consider the other option, i.e. using the responses to find a way of outputting a working pair. In this scenario, we assume that an adversary obtained <inline-formula id="j_infor499_ineq_254"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${n^{2}}$]]></tex-math></alternatives></inline-formula> matrices <inline-formula id="j_infor499_ineq_255"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(1)}},{\mathbf{C}^{(2)}},\dots ,{\mathbf{C}^{({n^{2}})}}$]]></tex-math></alternatives></inline-formula>. Moreover, we can also assume that the correspondent message matrices <inline-formula id="j_infor499_ineq_256"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</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="bold">M</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="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{1}},{\mathbf{M}_{2}},\dots ,{\mathbf{M}_{{n^{2}}}}$]]></tex-math></alternatives></inline-formula> are linearly independent and hence form a basis of the linear space <inline-formula id="j_infor499_ineq_257"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo>=</mml:mo>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathbb{M}=\textit{Mat}({\mathbb{Z}_{{2^{t}}}})$]]></tex-math></alternatives></inline-formula>. Then he can express each subsequent query <inline-formula id="j_infor499_ineq_258"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{j}}$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_259"><alternatives><mml:math>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal">&gt;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$j>{n^{2}}$]]></tex-math></alternatives></inline-formula> as a linear combination of <inline-formula id="j_infor499_ineq_260"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</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="bold">M</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="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{1}},{\mathbf{M}_{2}},\dots ,{\mathbf{M}_{{n^{2}}}}$]]></tex-math></alternatives></inline-formula>. Also, since <inline-formula id="j_infor499_ineq_261"><alternatives><mml:math>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi></mml:math><tex-math><![CDATA[$\mathbb{C}=\mathbb{M}$]]></tex-math></alternatives></inline-formula> on the same basis can also be used to express the ciphertext matrices <inline-formula id="j_infor499_ineq_262"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(1)}},{\mathbf{C}^{(2)}},\dots ,{\mathbf{C}^{({n^{2}})}}$]]></tex-math></alternatives></inline-formula>, as well as the corresponding response <inline-formula id="j_infor499_ineq_263"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(j)}}$]]></tex-math></alternatives></inline-formula> as a linear combination of <inline-formula id="j_infor499_ineq_264"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</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="bold">M</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="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{1}},{\mathbf{M}_{2}},\dots ,{\mathbf{M}_{{n^{2}}}}$]]></tex-math></alternatives></inline-formula>. Hence, the adversary can get the following results: 
<disp-formula id="j_infor499_eq_048">
<label>(42)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtable displaystyle="true" columnspacing="0pt" columnalign="right left">
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd/>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mo largeop="true" movablelimits="false">∑</mml:mo></mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \begin{aligned}{}& {\mathbf{M}_{j}}={\sum \limits_{i=1}^{{n^{2}}}}{\alpha _{ij}}{\mathbf{M}_{i}};\\ {} & {\mathbf{C}^{(j)}}={\sum \limits_{i=1}^{{n^{2}}}}{\beta _{ij}}{\mathbf{M}_{i}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
However, the coefficients <inline-formula id="j_infor499_ineq_265"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{ij}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_266"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{ij}}$]]></tex-math></alternatives></inline-formula> change independently of each other due to the perfect secrecy property of our cipher, thus establishing a non-linear link between these coefficients. In other words, the obtained coefficients <inline-formula id="j_infor499_ineq_267"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{ij}}$]]></tex-math></alternatives></inline-formula> seem completely random to <inline-formula id="j_infor499_ineq_268"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>.</p>
<p>For this reason a relation between coefficients <inline-formula id="j_infor499_ineq_269"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">α</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\alpha _{ij}}$]]></tex-math></alternatives></inline-formula> and <inline-formula id="j_infor499_ineq_270"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\beta _{ij}}$]]></tex-math></alternatives></inline-formula> can be viewed as a random permutation mapping <inline-formula id="j_infor499_ineq_271"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[$P(\alpha )=\beta $]]></tex-math></alternatives></inline-formula>, where <inline-formula id="j_infor499_ineq_272"><alternatives><mml:math>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[$\alpha ,\beta \in {\mathbb{Z}_{{2^{t-1}}}^{{n^{2}}}}$]]></tex-math></alternatives></inline-formula>. Define an adversary <inline-formula id="j_infor499_ineq_273"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> who plays the role of challenger to <inline-formula id="j_infor499_ineq_274"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> and plays the Attack Game 4.1 (see Boneh and Shoup, <xref ref-type="bibr" rid="j_infor499_ref_001">2020</xref>) with his challenger. Recall that Attack Game 4.1 is aimed at distinguishing an encryption function from a random permutation. To be self-contained, let us revise this game: <statement id="j_infor499_stat_012"><label>Attack Game2.</label>
<p><italic>For the block cipher</italic> <inline-formula id="j_infor499_ineq_275"><alternatives><mml:math>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\varepsilon =\{\mathrm{Enc}(\vec{\mathbf{K}},\mathbf{M}),\mathrm{Dec}(\vec{\mathbf{K}},\mathbf{C})\}$]]></tex-math></alternatives></inline-formula> <italic>we define two experiments. Then for a value</italic> <inline-formula id="j_infor499_ineq_276"><alternatives><mml:math>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\beta \in \{0,1\}$]]></tex-math></alternatives></inline-formula> <italic>we have an Experiment β</italic>: 
<list>
<list-item id="j_infor499_li_023">
<label>1.</label>
<p><italic>The challenger selects a function</italic> <inline-formula id="j_infor499_ineq_277"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${E_{\beta }}$]]></tex-math></alternatives></inline-formula> <italic>as follows</italic>: 
<disp-formula id="j_infor499_eq_049">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="{" close="">
<mml:mrow>
<mml:mtable columnspacing="4.0pt" equalrows="false" columnlines="none" equalcolumns="false" columnalign="left left">
<mml:mtr>
<mml:mtd class="array">
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext mathvariant="italic">if</mml:mtext>
<mml:mspace width="2.5pt"/>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>0</mml:mn>
<mml:mtext>;</mml:mtext>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="array">
<mml:mtext mathvariant="italic">Rand</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd class="array">
<mml:mtext mathvariant="italic">otherwise</mml:mtext>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {E_{\beta }}=\left\{\begin{array}{l@{\hskip4.0pt}l}\mathrm{Enc}(\vec{\mathbf{K}},\mathbf{M}),\hspace{1em}& \textit{if}\hspace{2.5pt}\beta =0\text{;}\\ {} \textit{Rand}(\mathbf{M}),\hspace{1em}& \textit{otherwise}.\end{array}\right.\]]]></tex-math></alternatives>
</disp-formula>
</p>
</list-item>
<list-item id="j_infor499_li_024">
<label>2.</label>
<p><italic>The adversary</italic> <inline-formula id="j_infor499_ineq_278"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> <italic>submits a sequence of queries, i.e. plaintexts in their matrix form</italic> <inline-formula id="j_infor499_ineq_279"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{i}}$]]></tex-math></alternatives></inline-formula><italic>, where</italic> <inline-formula id="j_infor499_ineq_280"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi></mml:math><tex-math><![CDATA[$i=1,2,\dots ,Q$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor499_li_025">
<label>3.</label>
<p><italic>For the i-th query the challenger computes</italic> <inline-formula id="j_infor499_ineq_281"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<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: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">β</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{C}^{(i)}}={E_{\beta }}({\mathbf{M}_{i}})$]]></tex-math></alternatives></inline-formula> <italic>and sends all the</italic> <inline-formula id="j_infor499_ineq_282"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i}}$]]></tex-math></alternatives></inline-formula><italic>’s to an adversary;</italic></p>
</list-item>
<list-item id="j_infor499_li_026">
<label>4.</label>
<p><inline-formula id="j_infor499_ineq_283"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> <italic>outputs</italic> <inline-formula id="j_infor499_ineq_284"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\hat{\beta }\in \{0,1\}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p>
</list-item>
</list> 
<italic>Denote by</italic> <inline-formula id="j_infor499_ineq_285"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${W_{\beta }}$]]></tex-math></alternatives></inline-formula> <italic>the random event that in Experiment β</italic> <inline-formula id="j_infor499_ineq_286"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> <italic>outputs</italic> 1<italic>. Then</italic> <inline-formula id="j_infor499_ineq_287"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula><italic>’s advantage is defined as</italic> 
<disp-formula id="j_infor499_eq_050">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">BCadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</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 movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{BCadv}[\mathcal{A},\varepsilon ]=\big|\Pr ({W_{1}})-\Pr ({W_{0}})\big|.\]]]></tex-math></alternatives>
</disp-formula>
</p></statement></p>
<p>Whenever <inline-formula id="j_infor499_ineq_288"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> receives a query <inline-formula id="j_infor499_ineq_289"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{j}}$]]></tex-math></alternatives></inline-formula> from <inline-formula id="j_infor499_ineq_290"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>, he sends it to his challenger and afterward forwards the obtained response <inline-formula id="j_infor499_ineq_291"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{j}}$]]></tex-math></alternatives></inline-formula> back to <inline-formula id="j_infor499_ineq_292"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>. Steps 1 and 3 of the Attack Game <xref rid="j_infor499_stat_007">1</xref> are performed by <inline-formula id="j_infor499_ineq_293"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>’s challenger. Due to the perfect secrecy of our cipher, <inline-formula id="j_infor499_ineq_294"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>’s advantage in winning the Attack Game <xref rid="j_infor499_stat_012">2</xref> on his own is negligible, i.e. he cannot tell apart the encryption function from a random permutation. On the other hand, if <inline-formula id="j_infor499_ineq_295"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> can output a working pair <inline-formula id="j_infor499_ineq_296"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbf{M},\mathbf{C})$]]></tex-math></alternatives></inline-formula> with a non-negligible probability <italic>p</italic>, then <inline-formula id="j_infor499_ineq_297"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> can send <bold>M</bold> as his <inline-formula id="j_infor499_ineq_298"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(Q+1)$]]></tex-math></alternatives></inline-formula>-st query to his own challenger and achieve an advantage of <inline-formula id="j_infor499_ineq_299"><alternatives><mml:math>
<mml:mi mathvariant="italic">p</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">ϵ</mml:mi></mml:math><tex-math><![CDATA[$p-\epsilon $]]></tex-math></alternatives></inline-formula> in Attack Game <xref rid="j_infor499_stat_012">2</xref> if <inline-formula id="j_infor499_ineq_300"><alternatives><mml:math>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[$\mathbf{C}={\mathbf{C}_{Q+1}}$]]></tex-math></alternatives></inline-formula>. However, to achieve an advantage <italic>p</italic>, the adversary <inline-formula id="j_infor499_ineq_301"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> has to distinguish a specific mapping <inline-formula id="j_infor499_ineq_302"><alternatives><mml:math>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">α</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[$P(\alpha )=\beta $]]></tex-math></alternatives></inline-formula> among other possible permutations with that particular probability. This would imply that not all choices are equally possible and hence it contradicts the perfect secrecy of our cipher.</p>
<p>As such, we see that the only chance the adversary <inline-formula id="j_infor499_ineq_303"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> has is to randomly guess a pair <inline-formula id="j_infor499_ineq_304"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbf{M},\mathbf{C})$]]></tex-math></alternatives></inline-formula> and hope for it to work. However, due to the design of Attack Game <xref rid="j_infor499_stat_007">1</xref>, there are <inline-formula id="j_infor499_ineq_305"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi></mml:math><tex-math><![CDATA[$|\mathbb{M}|-Q$]]></tex-math></alternatives></inline-formula> leftover working pairs out of <inline-formula id="j_infor499_ineq_306"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${(|\mathbb{M}|-Q)^{2}}$]]></tex-math></alternatives></inline-formula> possible pairs. Furthermore, due to restrictions applied to the key matrices <inline-formula id="j_infor499_ineq_307"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Y</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">Δ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbf{X},\mathbf{Y},\boldsymbol{\Delta })$]]></tex-math></alternatives></inline-formula>, the size of the keyspace is 
<disp-formula id="j_infor499_eq_051">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">K</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ |\mathbb{K}|={2^{{n^{2}}(t-1)}}\cdot {2^{{n^{2}}(t-2)}}n!\cdot {2^{{n^{2}}}}={2^{{n^{2}}(2t-2)}}n!,\]]]></tex-math></alternatives>
</disp-formula> 
where each multiplier describes the total choices of <bold>X</bold>, <bold>Y</bold>, and <bold>Δ</bold>, respectively.</p>
<p>Then we can evaluate <inline-formula id="j_infor499_ineq_308"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>’s advantage in Attack Game <xref rid="j_infor499_stat_007">1</xref> as follows 
<disp-formula id="j_infor499_eq_052">
<label>(43)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true" columnalign="right left" columnspacing="0pt">
<mml:mtr>
<mml:mtd class="align-odd">
<mml:mtext mathvariant="italic">KRadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
</mml:mtd>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd class="align-odd"/>
<mml:mtd class="align-even">
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[\begin{aligned}{}\textit{KRadv}[\mathcal{A},\varepsilon ]& =\bigg|\frac{|\mathbb{M}|-Q}{{(|\mathbb{M}|-Q)^{2}}}-\frac{1}{{2^{{n^{2}}(2t-2)}}n!}\bigg|\\ {} & =\bigg|\frac{1}{{2^{{n^{2}}t}}-Q}-\frac{1}{{2^{{n^{2}}(2t-2)}}n!}\bigg|=\frac{n!{2^{{n^{2}}(t-2)}}-1+Q\cdot {2^{-{n^{2}}t}}}{({2^{{n^{2}}t}}-Q)n!{2^{{n^{2}}(t-2)}}}.\end{aligned}\]]]></tex-math></alternatives>
</disp-formula> 
Throwing away a negligible term <inline-formula id="j_infor499_ineq_309"><alternatives><mml:math>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$Q\cdot {2^{-{n^{2}}t}}$]]></tex-math></alternatives></inline-formula> and approximating the ratio <inline-formula id="j_infor499_ineq_310"><alternatives><mml:math><mml:mstyle displaystyle="false">
<mml:mfrac>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo stretchy="false">≈</mml:mo>
<mml:mn>1</mml:mn></mml:math><tex-math><![CDATA[$\frac{n!{2^{{n^{2}}(t-2)}}-1}{n!{2^{{n^{2}}(t-2)}}}\approx 1$]]></tex-math></alternatives></inline-formula> we obtain the following result: 
<disp-formula id="j_infor499_eq_053">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">KRadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">&lt;</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{KRadv}[\mathcal{A},\varepsilon ]<\frac{1}{{2^{{n^{2}}t}}-Q},\]]]></tex-math></alternatives>
</disp-formula> 
which is the probability of randomly guessing a working pair <inline-formula id="j_infor499_ineq_311"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbf{M},\mathbf{C})$]]></tex-math></alternatives></inline-formula>. The obtained advantage is negligible which ends the proof.  □</p></statement>
<p>This result is a significant advantage of our cipher over the one-time pad technique. Specifically, as opposed to a one-time pad we do not need to use a different key whenever we use our scheme to encrypt a message. Furthermore, this beneficial property of our cipher greatly outshines the drawback of using a longer key, since it unlocks the implementation of different types of modes, e.g. CBC. This ability follows from the fact that we have to use the same key to encrypt a large number of blocks. As the one-time pad is insecure under key reuse, no encryption mode can ever be constructed on its basis.</p>
</sec>
<sec id="j_infor499_s_013">
<label>6</label>
<title>CBC Mode of the Proposed Block Cipher</title>
<p>The general idea of the CBC mode is to unite encrypted chunks of the message into a chain. To withstand the chosen plaintext attack, our cipher has to be probabilistic. The commonly used solution is to use a randomly generated initialization vector <inline-formula id="j_infor499_ineq_312"><alternatives><mml:math>
<mml:mi mathvariant="bold">IV</mml:mi></mml:math><tex-math><![CDATA[$\mathbf{IV}$]]></tex-math></alternatives></inline-formula>. In our case, we interpret it as a matrix <inline-formula id="j_infor499_ineq_313"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mtext mathvariant="italic">Mat</mml:mtext>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathbf{C}^{(0)}}\in \textit{Mat}({\mathbb{Z}_{{2^{t}}}})$]]></tex-math></alternatives></inline-formula>. We use this matrix together with the secret key <inline-formula id="j_infor499_ineq_314"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}$]]></tex-math></alternatives></inline-formula> to create a chain in the following way: 
<disp-formula id="j_infor499_eq_054">
<label>(44)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<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:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</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[\[ {\mathbf{C}^{(i)}}=\mathrm{Enc}\big(\vec{\mathbf{K}},{\mathbf{M}_{i}}+{\mathbf{C}^{(i-1)}}\big),\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_315"><alternatives><mml:math>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">M</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{Enc}(\vec{\mathbf{K}},\mathbf{M})$]]></tex-math></alternatives></inline-formula> is the encryption function defined by (<xref rid="j_infor499_eq_021">19</xref>). The result of this procedure is the ciphertext 
<disp-formula id="j_infor499_eq_055">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>11</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>12</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo stretchy="false">∥</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo stretchy="false">∥</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ c={c_{11}^{(0)}}\parallel {c_{12}^{(0)}}\parallel \dots \parallel {c_{nn}^{(0)}}\parallel {c_{11}^{(1)}}\parallel {c_{12}^{(1)}}\parallel \dots \parallel {c_{nn}^{(1)}}\parallel \dots \parallel {c_{nn}^{(l)}},\]]]></tex-math></alternatives>
</disp-formula> 
where <italic>l</italic> denotes the number of blocks. The decryption of a ciphertext is performed as follows: 
<disp-formula id="j_infor499_eq_056">
<label>(45)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" maxsize="1.19em" minsize="1.19em">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<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: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:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\mathbf{M}_{i}}=\mathrm{Dec}\big(\vec{\mathbf{K}},{\mathbf{C}^{(i)}}\big)-{\mathbf{C}^{(i-1)}},\]]]></tex-math></alternatives>
</disp-formula> 
where <inline-formula id="j_infor499_ineq_316"><alternatives><mml:math>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="bold">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\mathrm{Dec}(\vec{\mathbf{K}},\mathbf{C})$]]></tex-math></alternatives></inline-formula> is a decryption function defined by (<xref rid="j_infor499_eq_023">21</xref>). The proof of the correctness of CBC mode follows from the result proven in Section <xref rid="j_infor499_s_010">3.4</xref>.</p>
<p>We see that the ciphertext is longer than the plaintext which is a common practice when implementing a CBC mode. As the number of blocks gets larger, the CBC mode of our cipher becomes more efficient as compared to the one-time pad technique. Furthermore, the proof of a perfect secrecy property still holds for a single block <inline-formula id="j_infor499_ineq_317"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{i}}$]]></tex-math></alternatives></inline-formula>. However, we emphasize that when referring to the perfect secrecy property we only consider the initial block cipher. Obviously, as the number of blocks increases, the size of the message surpasses the size of the key and hence the CBC mode is not perfectly secure, which is consistent with the Shannon theorem.</p>
</sec>
<sec id="j_infor499_s_014">
<label>7</label>
<title>Resistance Against Chosen Plaintext Attack</title>
<p>In this section, we consider the security of our scheme. More precisely, we turn our attention to the chosen plaintext attack which is aimed at the newly defined CBC mode. Any efficient adversary capable of successfully executing this attack can distinguish a plaintext corresponding to the received ciphertext based on the obtained responses to his queries. Moreover, the adversary is adaptable, which means that he can base his queries on the received information. The formal description of this attack is presented here as the following game:</p><statement id="j_infor499_stat_013"><label>Attack Game 3.</label>
<p><italic>For a given symmetric cipher</italic> <inline-formula id="j_infor499_ineq_318"><alternatives><mml:math>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="normal">Enc</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="normal">Dec</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">k</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$\varepsilon =(\mathrm{Enc}(k,\mu ),\mathrm{Dec}(k,c))$]]></tex-math></alternatives></inline-formula> <italic>defined over</italic> <inline-formula id="j_infor499_ineq_319"><alternatives><mml:math>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="double-struck">K</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$(\mathbb{K},\mathbb{M},\mathbb{C})$]]></tex-math></alternatives></inline-formula> <italic>define the CBC mode</italic> <inline-formula id="j_infor499_ineq_320"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Enc</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Dec</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\varepsilon ^{\prime }}=({\mathrm{Enc}^{\prime }}(\vec{\mathbf{K}},\mu ),{\mathrm{Dec}^{\prime }}(\vec{\mathbf{K}},c))$]]></tex-math></alternatives></inline-formula> <italic>using encryption and decryption functions</italic> (<xref rid="j_infor499_eq_054">44</xref>) <italic>and</italic> (<xref rid="j_infor499_eq_056">45</xref>) <italic>respectively. Consider the following attack game</italic>: 
<list>
<list-item id="j_infor499_li_027">
<label>1.</label>
<p><italic>The challenger selects a random key</italic> <inline-formula id="j_infor499_ineq_321"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover></mml:math><tex-math><![CDATA[$\vec{\mathbf{K}}$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor499_li_028">
<label>2.</label>
<p><italic>The adversary</italic> <inline-formula id="j_infor499_ineq_322"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>submits a sequence of queries i.e. plaintext pairs</italic> <inline-formula id="j_infor499_ineq_323"><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">i</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mu _{i0}},{\mu _{i1}})$]]></tex-math></alternatives></inline-formula> <italic>of equal lengths, where</italic> <inline-formula id="j_infor499_ineq_324"><alternatives><mml:math>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">Q</mml:mi></mml:math><tex-math><![CDATA[$i=1,2,\dots ,Q$]]></tex-math></alternatives></inline-formula>;</p>
</list-item>
<list-item id="j_infor499_li_029">
<label>3.</label>
<p><italic>For the i-th query the challenger computes</italic> <inline-formula id="j_infor499_ineq_325"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Enc</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<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_{i}}={\mathrm{Enc}^{\prime }}(\vec{\mathbf{K}},{\mu _{i\beta }})$]]></tex-math></alternatives></inline-formula><italic>, where</italic> <inline-formula id="j_infor499_ineq_326"><alternatives><mml:math>
<mml:mi mathvariant="italic">β</mml:mi>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\beta \in \{0,1\}$]]></tex-math></alternatives></inline-formula> <italic>is the Experiment indicator, and sends all the</italic> <inline-formula id="j_infor499_ineq_327"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{C}_{i}}$]]></tex-math></alternatives></inline-formula><italic>’s to an adversary</italic>;</p>
</list-item>
<list-item id="j_infor499_li_030">
<label>4.</label>
<p><inline-formula id="j_infor499_ineq_328"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>outputs</italic> <inline-formula id="j_infor499_ineq_329"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo stretchy="false">∈</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[$\hat{\beta }\in \{0,1\}$]]></tex-math></alternatives></inline-formula><italic>.</italic></p>
</list-item>
</list> 
<italic>Denote by</italic> <inline-formula id="j_infor499_ineq_330"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${W_{\beta }}$]]></tex-math></alternatives></inline-formula> <italic>the random event that in Experiment β</italic> <inline-formula id="j_infor499_ineq_331"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>outputs</italic> 1<italic>. Then</italic> <inline-formula id="j_infor499_ineq_332"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula><italic>’s advantage is defined as</italic> 
<disp-formula id="j_infor499_eq_057">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">CPAadv</mml:mtext>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</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 movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em" stretchy="true">|</mml:mo>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{CPAadv}\big[\mathcal{A},{\varepsilon ^{\prime }}\big]=\big|\Pr ({W_{1}})-\Pr ({W_{0}})\big|.\]]]></tex-math></alternatives>
</disp-formula>
</p></statement>
<p>Note that the challenger of the Attack Game <xref rid="j_infor499_stat_013">3</xref> always encrypts either the first or second messages of each query. The essence of the presented Attack Game is that an adversary can win it with a non-negligible probability if he can somehow relate the received ciphertext <inline-formula id="j_infor499_ineq_333"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${c_{i}}$]]></tex-math></alternatives></inline-formula> to the correct message in the pair <inline-formula id="j_infor499_ineq_334"><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">i</mml:mi>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[$({\mu _{i0}},{\mu _{i1}})$]]></tex-math></alternatives></inline-formula>.</p>
<p>Let us make two important observations. Firstly, the message space of the CBC mode is super-poly. In fact, its size is <inline-formula id="j_infor499_ineq_335"><alternatives><mml:math>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">M</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$|\mathbb{M}|={2^{{n^{2}}t}}$]]></tex-math></alternatives></inline-formula>. Secondly, the number of blocks <italic>l</italic> is poly-bounded and determined by the length of the plaintext as follows: 
<disp-formula id="j_infor499_eq_058">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>=</mml:mo>
<mml:mfenced separators="" open="⌈" close="⌉">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
</mml:mrow>
</mml:mfenced>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ l=\left\lceil \frac{|\mu |}{{n^{2}}t}\right\rceil .\]]]></tex-math></alternatives>
</disp-formula>
</p>
<p>For these reasons we rely on a strategy presented in (Boneh and Shoup, <xref ref-type="bibr" rid="j_infor499_ref_001">2020</xref>) to prove the following claim:</p><statement id="j_infor499_stat_014"><label>Theorem 3.</label>
<p><italic>Consider probabilistic cipher</italic> <inline-formula id="j_infor499_ineq_336"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>=</mml:mo>
<mml:mo fence="true" stretchy="false">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Enc</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">μ</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="normal">Dec</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="bold">K</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">→</mml:mo></mml:mover>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">c</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo fence="true" stretchy="false">}</mml:mo></mml:math><tex-math><![CDATA[${\varepsilon ^{\prime }}=\{{\mathrm{Enc}^{\prime }}(\vec{\mathbf{K}},\mu ),{\mathrm{Dec}^{\prime }}(\vec{\mathbf{K}},c)\}$]]></tex-math></alternatives></inline-formula><italic>. For all efficient adversaries</italic> <inline-formula id="j_infor499_ineq_337"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> <italic>their advantage in Attack Game</italic> <xref rid="j_infor499_stat_013">3</xref> <italic>is expressed as follows</italic>: 
<disp-formula id="j_infor499_eq_059">
<label>(46)</label><alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">CPAadv</mml:mtext>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">l</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">l</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">B</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{CPAadv}\big[\mathcal{A},{\varepsilon ^{\prime }}\big]=\frac{{Q^{2}}{l^{2}}}{(l+1){2^{{n^{2}}t-1}}}+2BCadv[\mathcal{B},\varepsilon ],\]]]></tex-math></alternatives>
</disp-formula> 
<italic>where Q is the number of queries in Attack Game</italic> <xref rid="j_infor499_stat_013">3</xref><italic>, l is the total number of blocks needed to encrypt a plaintext</italic> <inline-formula id="j_infor499_ineq_338"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">b</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{ib}}$]]></tex-math></alternatives></inline-formula> <italic>and</italic> <inline-formula id="j_infor499_ineq_339"><alternatives><mml:math>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">B</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$BCadv[\mathcal{B},\varepsilon ]$]]></tex-math></alternatives></inline-formula> <italic>is the advantage of the adversary</italic> <inline-formula id="j_infor499_ineq_340"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> <italic>in winning the Attack Game</italic> <xref rid="j_infor499_stat_012">2</xref><italic>.</italic></p></statement>
<p>Before presenting the proof for this theorem, we emphasize that the main adversary in the Attack Game <xref rid="j_infor499_stat_013">3</xref> is <inline-formula id="j_infor499_ineq_341"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>. However, he also communicates with adversary <inline-formula id="j_infor499_ineq_342"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula>, who attacks the block cipher <italic>ε</italic> as in Attack Game <xref rid="j_infor499_stat_012">2</xref> and forwards <inline-formula id="j_infor499_ineq_343"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula>’s queries to his challenger.</p><statement id="j_infor499_stat_015"><label>Proof.</label>
<p>Note that before encrypting the first block of the plaintext <inline-formula id="j_infor499_ineq_344"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">μ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">i</mml:mi>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mu _{i\beta }}$]]></tex-math></alternatives></inline-formula> a challenger randomly selects an initialization vector <inline-formula id="j_infor499_ineq_345"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(0)}}$]]></tex-math></alternatives></inline-formula> and hence the intermediate block <inline-formula id="j_infor499_ineq_346"><alternatives><mml:math>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<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:mrow>
</mml:msubsup></mml:math><tex-math><![CDATA[${\mathbf{C}_{1}^{(i)}}$]]></tex-math></alternatives></inline-formula> consists of random uniformly distributed entries. Hence, by the construction of our scheme the advantage <inline-formula id="j_infor499_ineq_347"><alternatives><mml:math>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">P</mml:mi>
<mml:mi mathvariant="italic">A</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$CPAad{v^{\ast }}[\mathcal{A},{\varepsilon ^{\prime }}]$]]></tex-math></alternatives></inline-formula> of adversary <inline-formula id="j_infor499_ineq_348"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> to win a bit-guessing version (i.e. an adversary wins the game if <inline-formula id="j_infor499_ineq_349"><alternatives><mml:math><mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="italic">β</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">ˆ</mml:mo></mml:mover>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="italic">β</mml:mi></mml:math><tex-math><![CDATA[$\hat{\beta }=\beta $]]></tex-math></alternatives></inline-formula>) of the Attack Game <xref rid="j_infor499_stat_013">3</xref> is given by: 
<disp-formula id="j_infor499_eq_060">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:msup>
<mml:mrow>
<mml:mtext mathvariant="italic">CPAadv</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mo>∗</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo>=</mml:mo>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo>
<mml:mo movablelimits="false">Pr</mml:mo>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">W</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo fence="true" maxsize="2.03em" minsize="2.03em" stretchy="true">|</mml:mo>
<mml:mo mathvariant="normal">,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ {\textit{CPAadv}^{\ast }}\big[\mathcal{A},{\varepsilon ^{\prime }}\big]=\bigg|\Pr ({W_{0}})-\frac{1}{2}\bigg|,\]]]></tex-math></alternatives>
</disp-formula> 
i.e. he can do no better than randomly guessing the Experiment indicator <italic>β</italic>.</p>
<p>To improve his chances <inline-formula id="j_infor499_ineq_350"><alternatives><mml:math>
<mml:mi mathvariant="script">A</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{A}$]]></tex-math></alternatives></inline-formula> collaborates with another adversary <inline-formula id="j_infor499_ineq_351"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> whose purpose is to analyse the original block cipher by playing the Attack Game <xref rid="j_infor499_stat_012">2</xref>. Adversary <inline-formula id="j_infor499_ineq_352"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> wins if he can distinguish between the encrypted block and a random permutation. This is where the perfect secrecy property of our cipher plays a significant role. Due to this property, the entries of the ciphertext matrix <inline-formula id="j_infor499_ineq_353"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mi mathvariant="italic">j</mml:mi>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(j)}}$]]></tex-math></alternatives></inline-formula> are statistically independent of the entries of the original message block <inline-formula id="j_infor499_ineq_354"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">j</mml:mi>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathbf{M}_{j}}$]]></tex-math></alternatives></inline-formula>. Hence, this behaviour is indistinguishable from a random permutation and thus the adversary <inline-formula id="j_infor499_ineq_355"><alternatives><mml:math>
<mml:mi mathvariant="script">B</mml:mi></mml:math><tex-math><![CDATA[$\mathcal{B}$]]></tex-math></alternatives></inline-formula> cannot gain any significant advantage.</p>
<p>Moreover, since the initialization matrix <inline-formula id="j_infor499_ineq_356"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\mathbf{C}^{(0)}}$]]></tex-math></alternatives></inline-formula> is selected randomly from a significantly large space of possible values (in fact, the size of this space is super-poly), the responses to multiple queries of the same plaintext are almost always distinct. This claim is based on two facts: choosing the same initialization matrix is practically an impossible random event and the encryption function is a one-to-one mapping. As such, <inline-formula id="j_infor499_ineq_357"><alternatives><mml:math>
<mml:mi mathvariant="italic">B</mml:mi>
<mml:mi mathvariant="italic">C</mml:mi>
<mml:mi mathvariant="italic">a</mml:mi>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mi mathvariant="italic">v</mml:mi>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">B</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$BCadv[\mathcal{B},\varepsilon ]$]]></tex-math></alternatives></inline-formula> can be estimated in the following way: 
<disp-formula id="j_infor499_eq_061">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">BCadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">B</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:mi mathvariant="italic">ε</mml:mi>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>⩽</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="double-struck">K</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>=</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{BCadv}[\mathcal{B},\varepsilon ]\leqslant \frac{1}{|\mathbb{K}|}=\frac{1}{{2^{{n^{2}}(2t-2)}}n!}.\]]]></tex-math></alternatives>
</disp-formula> 
Obviously, this advantage is negligible for all blocks, including the first one. Moreover, it is negligible even compared to the first term of <inline-formula id="j_infor499_ineq_358"><alternatives><mml:math>
<mml:mtext mathvariant="italic">CPAadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\textit{CPAadv}[\mathcal{A},{\varepsilon ^{\prime }}]$]]></tex-math></alternatives></inline-formula> as can be seen from (<xref rid="j_infor499_eq_059">46</xref>).</p>
<p>The strategy now is to introduce Games 2 and 3 as in the proof of Theorem 5.4 of (Boneh and Shoup, <xref ref-type="bibr" rid="j_infor499_ref_001">2020</xref>) and evaluate the appropriate results. These games explore the changes influenced by switching from a permutation to a one-to-one mapping and then to many-to-one mapping. These changes are unnoticeable to the adversary under the assumptions that <italic>ε</italic> is a secure block cipher and the message space is super-poly. Both these assumptions are satisfied for our scheme. We limit ourselves to the essence of these games and leave their detailed description outside of this paper since they are technical and universal for all encryption algorithms. The changes are minor and involve the algebraic structures and actions used in the initial block cipher. In our case – matrix space <inline-formula id="j_infor499_ineq_359"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="italic">Mat</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">Z</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo></mml:math><tex-math><![CDATA[${\mathit{Mat}_{n}}({\mathbb{Z}_{{2^{t}}}})$]]></tex-math></alternatives></inline-formula> and entry-wise addition modulo <inline-formula id="j_infor499_ineq_360"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t}}$]]></tex-math></alternatives></inline-formula>.  □</p></statement>
<p>Note that we used the same Attack Game <xref rid="j_infor499_stat_012">2</xref> in this proof as in Section <xref rid="j_infor499_s_012">5</xref>. This comes from the fact that a good block cipher should be indistinguishable from a random permutation and unpredictable. As it was shown, Attack Game <xref rid="j_infor499_stat_012">2</xref> plays an important role in establishing both of these properties.</p>
<p>Let us end this section by presenting an example of computing the <inline-formula id="j_infor499_ineq_361"><alternatives><mml:math>
<mml:mtext mathvariant="italic">CPAadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">]</mml:mo></mml:math><tex-math><![CDATA[$\textit{CPAadv}[\mathcal{A},{\varepsilon ^{\prime }}]$]]></tex-math></alternatives></inline-formula>. Inspired by the fact that AES encrypts a 128-bit block, we pick the non-commuting group <inline-formula id="j_infor499_ineq_362"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>256</mml:mn>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{256}}$]]></tex-math></alternatives></inline-formula> and consider <inline-formula id="j_infor499_ineq_363"><alternatives><mml:math>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$4\times 4$]]></tex-math></alternatives></inline-formula> matrices, i.e. public parameters <inline-formula id="j_infor499_ineq_364"><alternatives><mml:math>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>8</mml:mn></mml:math><tex-math><![CDATA[$t=8$]]></tex-math></alternatives></inline-formula>, <inline-formula id="j_infor499_ineq_365"><alternatives><mml:math>
<mml:mi mathvariant="italic">n</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>4</mml:mn></mml:math><tex-math><![CDATA[$n=4$]]></tex-math></alternatives></inline-formula> and the size of the block is <inline-formula id="j_infor499_ineq_366"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">n</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="italic">t</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:mn>8</mml:mn>
<mml:mo>=</mml:mo>
<mml:mn>128</mml:mn></mml:math><tex-math><![CDATA[${n^{2}}t={4^{2}}\cdot 8=128$]]></tex-math></alternatives></inline-formula> bits. Furthermore, we limit the message size by <inline-formula id="j_infor499_ineq_367"><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:math><tex-math><![CDATA[${2^{32}}$]]></tex-math></alternatives></inline-formula> blocks and hence can encrypt <inline-formula id="j_infor499_ineq_368"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>39</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{39}}$]]></tex-math></alternatives></inline-formula> bits (64 GB) of information. Then we get the following result: 
<disp-formula id="j_infor499_eq_062">
<alternatives><mml:math display="block">
<mml:mtable displaystyle="true">
<mml:mtr>
<mml:mtd>
<mml:mtext mathvariant="italic">CPAadv</mml:mtext>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" maxsize="1.19em" minsize="1.19em">]</mml:mo>
<mml:mo>⩽</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>64</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mo mathvariant="normal" fence="true" stretchy="false">(</mml:mo>
<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:mo mathvariant="normal" fence="true" stretchy="false">)</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>127</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>+</mml:mo><mml:mstyle displaystyle="true">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>223</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:mn>24</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mstyle>
<mml:mo>⩽</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>·</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>159</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable></mml:math><tex-math><![CDATA[\[ \textit{CPAadv}\big[\mathcal{A},{\varepsilon ^{\prime }}\big]\leqslant \frac{{Q^{2}}\cdot {2^{64}}}{({2^{32}}+1){2^{127}}}+\frac{1}{{2^{223}}\cdot 24}\leqslant {Q^{2}}\cdot {2^{-159}}.\]]]></tex-math></alternatives>
</disp-formula> 
Then by sending <inline-formula id="j_infor499_ineq_369"><alternatives><mml:math>
<mml:mi mathvariant="italic">Q</mml:mi>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>40</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$Q={2^{40}}$]]></tex-math></alternatives></inline-formula> queries, the adversary gains an advantage <inline-formula id="j_infor499_ineq_370"><alternatives><mml:math>
<mml:mtext mathvariant="italic">CPAadv</mml:mtext>
<mml:mo fence="true" stretchy="false">[</mml:mo>
<mml:mi mathvariant="script">A</mml:mi>
<mml:mo mathvariant="normal">,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo fence="true" stretchy="false">]</mml:mo>
<mml:mo>⩽</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>79</mml:mn>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[$\textit{CPAadv}[\mathcal{A},{\varepsilon ^{\prime }}]\leqslant {2^{-79}}$]]></tex-math></alternatives></inline-formula>. Relying on the obtained advantage, a tolerable value may be fixed, thus determining how often must the session key be replaced.</p>
</sec>
<sec id="j_infor499_s_015">
<label>8</label>
<title>Discussion and Conclusions</title>
<p>In this paper, we proposed a new Shannon cipher based on a special case of MPF. Instead of several rounds, our symmetric encryption scheme uses only one round. However, the operations we use are more complex. Moreover, we use a non-commuting platform group in our construction which contributes to the overall security of our cipher.</p>
<p>In our scheme we can manipulate two parameters: the size of square matrices <italic>n</italic> and the size of the platform group determined by <italic>t</italic>. This feature makes our scheme flexible and easy to adapt to messages of any length. However, more investigations are needed to make reasonable recommendations for the values of parameters <italic>n</italic> and <italic>t</italic> depending on the message length. This is one of the possibilities for future work in this research.</p>
<p>We have proven that our cipher has the property of perfect secrecy and hence the encryption algorithm itself does not leak any information about the plaintext. This is one of the essential properties of a good symmetric encryption scheme.</p>
<p>The perfect secrecy of our block cipher also favourably distinguishes it from a widely used AES scheme, whose perfect secrecy property for a single block to our knowledge has not been established. We also think that a significant boost in the performance of our cipher is because matrix operations can be parallelized and hence the encryption of a single block can be executed on multiple processors. Relying on our findings presented in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor499_ref_009">2022</xref>), we expect that the non-commuting platform group used in our paper also contributes to the performance of our scheme. Since all powers of the elements of <inline-formula id="j_infor499_ineq_371"><alternatives><mml:math>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="monospace">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub></mml:math><tex-math><![CDATA[${\mathtt{M}_{{2^{t}}}}$]]></tex-math></alternatives></inline-formula> are reduced modulo <inline-formula id="j_infor499_ineq_372"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">t</mml:mi>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${2^{t}}$]]></tex-math></alternatives></inline-formula>, the reduction process is much simpler than reducing modulo a prime. For this reason, we think that our proposal can produce better results than those presented in Mihalkovich <italic>et al.</italic> (<xref ref-type="bibr" rid="j_infor499_ref_009">2022</xref>). However, verifying this claim requires additional research thus far.</p>
<p>Relying on the fact that our cipher is secure under key reuse, we defined a CBC mode for our cipher. As the message becomes longer, its length surpasses the size of the secret key, and hence due to the Shannon theorem, the perfect secrecy property is lost. However, since perfect secrecy also implies semantic security of a block cipher, we claim that the CBC mode can be considered safe in this weaker sense, i.e. an efficient adversary cannot gain a significant advantage in linking a ciphertext <italic>c</italic> to the correct plaintext.</p>
<p>Moreover, in Section <xref rid="j_infor499_s_014">7</xref> we have shown that the probabilistic cipher <inline-formula id="j_infor499_ineq_373"><alternatives><mml:math>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>′</mml:mo>
</mml:mrow>
</mml:msup></mml:math><tex-math><![CDATA[${\varepsilon ^{\prime }}$]]></tex-math></alternatives></inline-formula> can resist an adaptive chosen plaintext attack, i.e. the previously obtained responses to the sent queries in no way help the efficient adversary to gain a significant advantage in Attack Game <xref rid="j_infor499_stat_013">3</xref>.</p>
</sec>
</body>
<back>
<ref-list id="j_infor499_reflist_001">
<title>References</title>
<ref id="j_infor499_ref_001">
<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> (2020). A Graduate Course in Applied Cryptography.</mixed-citation>
</ref>
<ref id="j_infor499_ref_002">
<mixed-citation publication-type="chapter"><string-name><surname>Grundman</surname>, <given-names>H.G.</given-names></string-name>, <string-name><surname>Smith</surname>, <given-names>T.L.</given-names></string-name> (<year>1996</year>). <chapter-title>Automatic realizability of Galois groups of order 16</chapter-title>. In: <source>Proceedings of the American Mathematical Society, AMS ’96</source>. <publisher-name>AMS</publisher-name>, <publisher-loc>Rhode Island, USA</publisher-loc>, pp. <fpage>2631</fpage>–<lpage>2640</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_003">
<mixed-citation publication-type="journal"><string-name><surname>Grundman</surname>, <given-names>H.G.</given-names></string-name>, <string-name><surname>Smith</surname>, <given-names>T.L.</given-names></string-name> (<year>2010</year>a). <article-title>Galois realizability of groups of order 64</article-title>. <source>Central European Journal of Mathematics</source>, <volume>8(5)</volume>, <fpage>846</fpage>–<lpage>854</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_004">
<mixed-citation publication-type="journal"><string-name><surname>Grundman</surname>, <given-names>H.G.</given-names></string-name>, <string-name><surname>Smith</surname>, <given-names>T.L.</given-names></string-name> (<year>2010</year>b). <article-title>Realizability and automatic realizability of Galois groups of order 32</article-title>. <source>Central European Journal of Mathematics</source>, <volume>8</volume>(<issue>2</issue>), <fpage>244</fpage>–<lpage>260</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_005">
<mixed-citation publication-type="book"><string-name><surname>Katz</surname>, <given-names>J.</given-names></string-name>, <string-name><surname>Lindell</surname>, <given-names>Y.</given-names></string-name> (<year>2007</year>). <source>Introduction to Modern Cryptography</source>. <publisher-name>CRC Press</publisher-name>, <publisher-loc>New York</publisher-loc>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_006">
<mixed-citation publication-type="journal"><string-name><surname>Levinskas</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name> (<year>2021</year>). <article-title>Avalanche effect and bit independence criterion of perfectly secure Shannon cipher based on matrix power</article-title>. <source>Mathematical Models in Engineering</source>, <volume>7</volume>(<issue>3</issue>), <fpage>50</fpage>–<lpage>53</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.21595/mme.2021.22234" xlink:type="simple">https://doi.org/10.21595/mme.2021.22234</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_007">
<mixed-citation publication-type="journal"><string-name><surname>Michailov</surname>, <given-names>I.</given-names></string-name> (<year>2007</year>). <article-title>Groups of order 32 as Galois groups</article-title>. <source>Serdica Mathematical Journal</source>, <volume>33</volume>(<issue>1</issue>), <fpage>1</fpage>–<lpage>34</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_008">
<mixed-citation publication-type="journal"><string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name> (<year>2018</year>). <article-title>On the associativity property of MPF over M16</article-title>. <source>Lietuvos matematikos rinkinys: Lietuvos matematiku draugijos darbai, Serija A</source>, <volume>59</volume>, <fpage>7</fpage>–<lpage>12</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_009">
<mixed-citation publication-type="journal"><string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Levinskas</surname>, <given-names>M.</given-names></string-name>, <string-name><surname>Makauskas</surname>, <given-names>P.</given-names></string-name> (<year>2022</year>). <article-title>MPF based symmetric cipher performance comparison to AES and TDES</article-title>. <source>Mathematical Models in Engineering</source>, <volume>8</volume>(<issue>2</issue>), <fpage>15</fpage>–<lpage>25</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.21595/mme.2022.22517" xlink:type="simple">https://doi.org/10.21595/mme.2022.22517</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_010">
<mixed-citation publication-type="journal"><string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Luksys</surname>, <given-names>K.</given-names></string-name> (<year>2020</year>). <article-title>Key exchange protocol defined over a non-commuting group based on an NP-complete decisional problem</article-title>. <source>Symmetry</source>, <volume>12</volume>, <elocation-id>1389</elocation-id>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3390/sym12091389" xlink:type="simple">https://doi.org/10.3390/sym12091389</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_011">
<mixed-citation publication-type="journal"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Luksys</surname>, <given-names>K.</given-names></string-name> (<year>2012</year>). <article-title>Matrix power function and its application to block cipher s-box construction</article-title>. <source>International Journal of Innovative Computing, Information and Control</source>, <volume>8</volume>(<issue>4</issue>), <fpage>2655</fpage>–<lpage>2664</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_012">
<mixed-citation publication-type="journal"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name> (<year>2018</year>). <article-title>MPF problem over modified medial semigroup is NP-complete</article-title>. <source>Symmetry</source>, <volume>10</volume>(<issue>11</issue>), <fpage>571</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3390/sym10110571" xlink:type="simple">https://doi.org/10.3390/sym10110571</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_013">
<mixed-citation publication-type="journal"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Mihalkovich</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Uselis</surname>, <given-names>A.</given-names></string-name> (<year>2020</year>a). <article-title>Security analysis of KAP based on enhanced MPF</article-title>. <source>IET Information Security</source>, <volume>14</volume>(<issue>4</issue>), <fpage>410</fpage>–<lpage>418</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_014">
<mixed-citation publication-type="journal"><string-name><surname>Sakalauskas</surname>, <given-names>E.</given-names></string-name>, <string-name><surname>Dindiene</surname>, <given-names>L.</given-names></string-name>, <string-name><surname>Kilciauskas</surname>, <given-names>A.</given-names></string-name>, <string-name><surname>Luksys</surname>, <given-names>K.</given-names></string-name> (<year>2020</year>b). <article-title>Perfectly secure Shannon Cipher construction based on the matrix power function</article-title>. <source>Symmetry</source>, <volume>12</volume>, <fpage>860</fpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.3390/sym12050860" xlink:type="simple">https://doi.org/10.3390/sym12050860</ext-link>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_015">
<mixed-citation publication-type="journal"><string-name><surname>Shannon</surname>, <given-names>C.E.</given-names></string-name> (<year>1949</year>). <article-title>Communication theory of secrecy systems</article-title>. <source>The Bell System Technical Journal</source>, <volume>28</volume>(<issue>4</issue>), <fpage>656</fpage>–<lpage>715</lpage>.</mixed-citation>
</ref>
<ref id="j_infor499_ref_016">
<mixed-citation publication-type="journal"><string-name><surname>Sylow</surname>, <given-names>M.L.</given-names></string-name> (<year>1872</year>). <article-title>Théorèmes sur les groupes de substitutions</article-title>. <source>Mathematische Annalen</source>, <volume>5</volume>, <fpage>584</fpage>–<lpage>594</lpage>. <ext-link ext-link-type="doi" xlink:href="https://doi.org/10.1007/BF01442913" xlink:type="simple">https://doi.org/10.1007/BF01442913</ext-link>.</mixed-citation>
</ref>
</ref-list>
</back>
</article>
